Support live group loop

pull/123/head
FongMi 3 years ago
parent d2a1e5bd6b
commit 5cf52f13f9
  1. 28
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 10
      app/src/main/java/com/fongmi/android/tv/bean/Group.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

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

Loading…
Cancel
Save