From b99a5f37ba8559e731dcac3cc6c1332fa1d0a529 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 31 Oct 2022 11:46:24 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/LiveActivity.java | 14 +++++++------- .../android/tv/ui/custom/CustomLiveListView.java | 8 ++++---- .../java/com/fongmi/android/tv/bean/Group.java | 4 ++++ 3 files changed, 15 insertions(+), 11 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 a1ecd1369..5f22f49fb 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 @@ -141,7 +141,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick List items = new ArrayList<>(); items.add(Group.create(ResUtil.getString(R.string.keep))); for (Group group : LiveConfig.get().getHome().getGroups()) (group.isHidden() ? mHides : items).add(group); - items.add(Group.create(ResUtil.getString(R.string.live_setting))); + //items.add(Group.create(ResUtil.getString(R.string.live_setting))); mGroupAdapter.setItems(items, null); LiveConfig.get().setKeep(items); setPosition(LiveConfig.get().getKeep(items)); @@ -272,24 +272,24 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } @Override - public boolean nextGroup() { + public boolean nextGroup(boolean skip) { int position = mBinding.group.getSelectedPosition() + 1; if (position > mGroupAdapter.size() - 1) position = 0; mGroup = (Group) mGroupAdapter.get(position); mBinding.group.setSelectedPosition(position); - if (mGroup.getChannel().isEmpty()) return nextGroup(); + if (skip && mGroup.skip()) return nextGroup(true); mChannelAdapter.setItems(mGroup.getChannel(), null); mGroup.setPosition(0); return true; } @Override - public boolean prevGroup() { + public boolean prevGroup(boolean skip) { int position = mBinding.group.getSelectedPosition() - 1; if (position < 0) position = mGroupAdapter.size() - 1; mGroup = (Group) mGroupAdapter.get(position); mBinding.group.setSelectedPosition(position); - if (mGroup.getChannel().isEmpty()) return prevGroup(); + if (skip && mGroup.skip()) return prevGroup(true); mChannelAdapter.setItems(mGroup.getChannel(), null); mGroup.setPosition(mGroup.getChannel().size() - 1); return true; @@ -322,7 +322,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onKeyUp() { int position = mGroup.getPosition() - 1; - if (position < 0) prevGroup(); + if (position < 0) prevGroup(true); else mGroup.setPosition(position); setChannel(mGroup.current()); } @@ -330,7 +330,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onKeyDown() { int position = mGroup.getPosition() + 1; - if (position > mGroup.getChannel().size() - 1) nextGroup(); + if (position > mGroup.getChannel().size() - 1) nextGroup(true); else mGroup.setPosition(position); setChannel(mGroup.current()); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java index a6f1b98df..a16db73c7 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java @@ -36,7 +36,7 @@ public class CustomLiveListView extends VerticalGridView { listener.setUITimer(); if (getSelectedPosition() != getAdapter().getItemCount() - 1) return false; if (getId() == R.id.channel) setSelectedPosition(0); - else listener.nextGroup(); + else listener.nextGroup(false); return true; } @@ -44,7 +44,7 @@ public class CustomLiveListView extends VerticalGridView { listener.setUITimer(); if (getSelectedPosition() != 0) return false; if (getId() == R.id.channel) setSelectedPosition(getAdapter().getItemCount()); - else listener.prevGroup(); + else listener.prevGroup(false); return true; } @@ -60,8 +60,8 @@ public class CustomLiveListView extends VerticalGridView { void setUITimer(); - boolean nextGroup(); + boolean nextGroup(boolean skip); - boolean prevGroup(); + boolean prevGroup(boolean skip); } } 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 c5d7f9fb4..78246de10 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 { return getName().equals(ResUtil.getString(R.string.live_setting)); } + public boolean skip() { + return isKeep() || isSetting(); + } + public int getVisible() { return getLogo().isEmpty() ? View.GONE : View.VISIBLE; }