From a7e1898881f5a2e30d7907e8487e10a9831bdcdb Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 13 Feb 2023 23:52:59 +0800 Subject: [PATCH] Fix crash --- .../android/tv/ui/activity/DetailActivity.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index a1ccd3fbe..ac779832a 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -142,6 +142,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis 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; @@ -322,12 +326,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis getDetail(); } - private void getPlayer(boolean replay) { - Vod.Flag.Episode item = (Vod.Flag.Episode) mEpisodeAdapter.get(getEpisodePosition()); - mBinding.widget.title.setText(getString(R.string.detail_title, mBinding.name.getText(), item.getName())); - mViewModel.playerContent(getKey(), getFlag().getFlag(), item.getUrl()); + private void getPlayer(Vod.Flag flag, Vod.Flag.Episode episode, boolean replay) { + mBinding.widget.title.setText(getString(R.string.detail_title, mBinding.name.getText(), episode.getName())); + mViewModel.playerContent(getKey(), flag.getFlag(), episode.getUrl()); Clock.get().setCallback(null); - updateHistory(item, replay); + updateHistory(episode, replay); showProgress(); } @@ -535,13 +538,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onRefresh() { if (mFlagAdapter.size() == 0) return; if (mEpisodeAdapter.size() == 0) return; - getPlayer(false); + getPlayer(getFlag(), getEpisode(), false); } private void onReset() { if (mFlagAdapter.size() == 0) return; if (mEpisodeAdapter.size() == 0) return; - getPlayer(isReplay()); + getPlayer(getFlag(), getEpisode(), isReplay()); } private boolean onResetToggle() {