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

Loading…
Cancel
Save