Support auto next when error

pull/123/head
FongMi 3 years ago
parent 73c79ce4ea
commit 108c498f66
  1. 14
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 19
      app/src/leanback/res/layout/activity_live.xml
  3. 9
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  4. 4
      app/src/main/java/com/fongmi/android/tv/bean/Group.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());

@ -28,6 +28,25 @@
layout="@layout/view_progress"
android:visibility="gone" />
<TextView
android:id="@+id/digital"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|end"
android:layout_margin="16dp"
android:includeFontPadding="false"
android:letterSpacing="0.05"
android:shadowColor="@color/black"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="4"
android:textColor="@color/white"
android:textSize="30sp"
android:textStyle="bold"
android:visibility="gone"
tools:text="05"
tools:visibility="visible" />
<LinearLayout
android:id="@+id/recycler"
android:layout_width="wrap_content"

@ -66,6 +66,15 @@ public class LiveConfig {
return new int[]{-1, -1};
}
public int[] find(String number) {
List<Group> 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");
}

@ -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));
}

Loading…
Cancel
Save