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 cee1e7a53..9ad76f5dd 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 @@ -215,6 +215,24 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick showInfo(item); } + private void nextGroup() { + int position = mBinding.group.getSelectedPosition() + 1; + if (position > mGroupAdapter.size() - 1) position = 0; + mGroup = (Group) mGroupAdapter.get(position); + mBinding.group.setSelectedPosition(position); + mChannelAdapter.setItems(mGroup.getChannel(), null); + mGroup.setPosition(0); + } + + private void prevGroup() { + int position = mBinding.group.getSelectedPosition() - 1; + if (position < 0) position = mGroupAdapter.size() - 1; + mGroup = (Group) mGroupAdapter.get(position); + mBinding.group.setSelectedPosition(position); + mChannelAdapter.setItems(mGroup.getChannel(), null); + mGroup.setPosition(mGroup.getChannel().size() - 1); + } + private void getUrl(Channel item) { mBinding.progress.getRoot().setVisibility(View.VISIBLE); mViewModel.getUrl(item); @@ -241,12 +259,18 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onKeyUp() { - setChannel(mChannel = mGroup.prev()); + int position = mGroup.getPosition() - 1; + if (position < 0) prevGroup(); + else mGroup.setPosition(position); + setChannel(mChannel = mGroup.current()); } @Override public void onKeyDown() { - setChannel(mChannel = mGroup.next()); + int position = mGroup.getPosition() + 1; + if (position > mGroup.getChannel().size() - 1) nextGroup(); + else mGroup.setPosition(position); + setChannel(mChannel = mGroup.current()); } @Override 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 aee1be4ca..d25793548 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 @@ -109,16 +109,6 @@ public class Group { return channel; } - public Channel next() { - setPosition(getPosition() < getChannel().size() - 1 ? getPosition() + 1 : 0); - return current(); - } - - public Channel prev() { - setPosition(getPosition() > 0 ? getPosition() - 1 : getChannel().size() - 1); - return current(); - } - public Channel current() { return getChannel().get(getPosition()).group(this); }