[leanback] optimize folder ux

pull/137/head
FongMi 3 years ago
parent e89216d709
commit 885993065c
  1. 20
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  3. 5
      app/src/main/java/com/fongmi/android/tv/bean/History.java

@ -130,7 +130,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
public static void cast(Activity activity, History history) {
start(activity, history.getSiteKey(), history.getVodId(), history.getVodName(), true, true);
start(activity, history.getSiteKey(), history.getVodId(), history.getVodName(), null, true, true);
}
public static void push(Activity activity, String url, boolean clear) {
@ -145,15 +145,24 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
start(activity, key, id, name, false);
}
public static void start(Activity activity, String key, String id, String name, String mark) {
start(activity, key, id, name, mark, false);
}
public static void start(Activity activity, String key, String id, String name, boolean clear) {
start(activity, key, id, name, clear, false);
start(activity, key, id, name, null, clear, false);
}
public static void start(Activity activity, String key, String id, String name, String mark, boolean clear) {
start(activity, key, id, name, mark, clear, false);
}
public static void start(Activity activity, String key, String id, String name, boolean clear, boolean cast) {
public static void start(Activity activity, String key, String id, String name, String mark, boolean clear, boolean cast) {
Intent intent = new Intent(activity, DetailActivity.class);
if (clear) intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("cast", cast);
intent.putExtra("name", name);
intent.putExtra("mark", mark);
intent.putExtra("key", key);
intent.putExtra("id", id);
activity.startActivityForResult(intent, 1000);
@ -167,6 +176,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
return getIntent().getStringExtra("name");
}
private String getMark() {
return getIntent().getStringExtra("mark");
}
private String getKey() {
return getIntent().getStringExtra("key");
}
@ -811,6 +824,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private History createHistory(Vod item) {
History history = new History();
history.setKey(getHistoryKey());
history.setVodRemarks(getMark());
history.setCid(ApiConfig.getCid());
history.setVodPic(item.getVodPic());
history.setVodName(item.getVodName());

@ -242,10 +242,14 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
@Override
public void onItemClick(Vod item) {
if (item.isFolder()) mBinding.recycler.setMoveTop(false);
if (item.isFolder()) mPages.add(Page.get(item.getVodId(), mBinding.recycler.getSelectedPosition()));
if (item.isFolder()) getVideo(item.getVodId(), "1");
else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName());
if (item.isFolder()) {
mPages.add(Page.get(item.getVodId(), mBinding.recycler.getSelectedPosition()));
mBinding.recycler.setMoveTop(false);
getVideo(item.getVodId(), "1");
} else {
if (!isFolder()) DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName());
else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodName());
}
}
@Override

@ -65,7 +65,8 @@ public class History {
}
public static List<History> arrayFrom(String str) {
Type listType = new TypeToken<List<History>>() {}.getType();
Type listType = new TypeToken<List<History>>() {
}.getType();
List<History> items = new Gson().fromJson(str, listType);
return items == null ? Collections.emptyList() : items;
}
@ -310,7 +311,7 @@ public class History {
public void findEpisode(List<Vod.Flag> flags) {
if (flags.size() > 0) {
setVodFlag(flags.get(0).getFlag());
if (flags.get(0).getEpisodes().size() > 0) {
if (getVodRemarks().isEmpty() && flags.get(0).getEpisodes().size() > 0) {
setVodRemarks(flags.get(0).getEpisodes().get(0).getName());
}
}

Loading…
Cancel
Save