Auto play next

pull/21/head
FongMi 3 years ago
parent cdd10fdc50
commit 89efc81ae3
  1. 25
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java

@ -79,10 +79,6 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
return (Vod.Flag) mFlagAdapter.get(mBinding.flag.getSelectedPosition());
}
private Vod.Flag.Episode getEpisode() {
return (Vod.Flag.Episode) mEpisodeAdapter.get(getEpisodePosition());
}
private int getEpisodePosition() {
for (int i = 0; i < mEpisodeAdapter.size(); i++) if (((Vod.Flag.Episode) mEpisodeAdapter.get(i)).isActivated()) return i;
return 0;
@ -166,7 +162,11 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
}
private void getPlayer() {
Vod.Flag.Episode item = getEpisode();
getPlayer(getEpisodePosition());
}
private void getPlayer(int position) {
Vod.Flag.Episode item = (Vod.Flag.Episode) mEpisodeAdapter.get(position);
if (mFullscreen) Notify.show(ResUtil.getString(R.string.play_ready, item.getName()));
mSiteViewModel.playerContent(getKey(), getVodFlag().getFlag(), item.getUrl());
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
@ -209,11 +209,10 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
for (int i = 0; i < mFlagAdapter.size(); i++) {
Vod.Flag flag = (Vod.Flag) mFlagAdapter.get(i);
flag.setActivated(flag.equals(item));
if (flag.isActivated()) {
mBinding.flag.setSelectedPosition(i);
mEpisodeAdapter.setItems(flag.getEpisodes(), null);
setGroup(flag.getEpisodes().size());
}
if (!flag.isActivated()) continue;
mBinding.flag.setSelectedPosition(i);
mEpisodeAdapter.setItems(flag.getEpisodes(), null);
setGroup(flag.getEpisodes().size());
}
mFlagAdapter.notifyArrayItemRangeChanged(0, mFlagAdapter.size());
}
@ -226,8 +225,9 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
else flag.deactivated();
}
mEpisodeAdapter.notifyArrayItemRangeChanged(0, mEpisodeAdapter.size());
mHandler.post(() -> mBinding.episode.setSelectedPosition(getEpisodePosition()));
getPlayer();
int position = getEpisodePosition();
mHandler.post(() -> mBinding.episode.setSelectedPosition(position));
getPlayer(position);
}
private void setGroup(int size) {
@ -316,6 +316,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPlaybackStateChanged(PlayerEvent event) {
mBinding.progress.getRoot().setVisibility(event.getState() == Player.STATE_BUFFERING ? View.VISIBLE : View.GONE);
if (event.getState() == Player.STATE_ENDED) onNext();
Notify.show(event.getMsg());
}

Loading…
Cancel
Save