From 108c498f66e7eaec90a7fb2936d338569cb5eba3 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 23 Oct 2022 01:32:33 +0800 Subject: [PATCH] Support auto next when error --- .../android/tv/ui/activity/LiveActivity.java | 14 ++++++++------ app/src/leanback/res/layout/activity_live.xml | 19 +++++++++++++++++++ .../com/fongmi/android/tv/api/LiveConfig.java | 9 +++++++++ .../com/fongmi/android/tv/bean/Group.java | 4 ++++ 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index ae1e555d7..8954edc9f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -107,10 +107,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick int[] position = LiveConfig.get().getKeep(); mGroupAdapter.setItems(LiveConfig.get().getHome().getGroups(), null); if (position[0] == -1) mBinding.recycler.setVisibility(View.VISIBLE); - else setKeep(position); + else setPosition(position); } - private void setKeep(int[] position) { + private void setPosition(int[] position) { mBinding.group.setSelectedPosition(position[0]); getGroup().setPosition(position[1]); onItemClick(getGroup()); @@ -139,12 +139,15 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onShow(String number) { - + mBinding.digital.setText(number); + mBinding.digital.setVisibility(View.VISIBLE); } @Override public void onFind(String number) { - + mBinding.digital.setVisibility(View.GONE); + int[] position = LiveConfig.get().find(number); + if (position[0] != -1) setPosition(position); } @Override @@ -214,8 +217,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick int size = getChannel().getUrls().size(); mPlayers.setRetry(0); if (index == size) { - //TODO Auto Next - mBinding.progress.getRoot().setVisibility(View.GONE); + onKeyDown(); } else { getChannel().setIndex(index); mPlayers.start(getChannel()); diff --git a/app/src/leanback/res/layout/activity_live.xml b/app/src/leanback/res/layout/activity_live.xml index f934fb7b3..7daccf6a5 100644 --- a/app/src/leanback/res/layout/activity_live.xml +++ b/app/src/leanback/res/layout/activity_live.xml @@ -28,6 +28,25 @@ layout="@layout/view_progress" android:visibility="gone" /> + + items = getHome().getGroups(); + for (int i = 0; i < items.size(); i++) { + int j = items.get(i).find(Integer.parseInt(number)); + if (j != -1) return new int[]{i, j}; + } + return new int[]{-1, -1}; + } + private boolean isProxy(Live live) { return live.getGroup().equals("redirect") && live.getChannels().size() > 0 && live.getChannels().get(0).getUrls().size() > 0 && live.getChannels().get(0).getUrls().get(0).startsWith("proxy"); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Group.java b/app/src/main/java/com/fongmi/android/tv/bean/Group.java index 84bd0c458..075144a42 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Group.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Group.java @@ -89,6 +89,10 @@ public class Group { if (!getIcon().isEmpty()) ImgUtil.load(getIcon(), view); } + public int find(int number) { + return getChannel().lastIndexOf(Channel.create(number)); + } + public int find(String name) { return getChannel().lastIndexOf(Channel.create(name)); }