From a95f7754b59664ee3864710aa6e41e779d992549 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 29 Apr 2024 00:15:32 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/VideoActivity.java | 27 ++++++++----------- .../android/tv/ui/dialog/SiteDialog.java | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 68f5a9eba..6222b8b1d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -136,7 +136,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private boolean initAuto; private boolean autoMode; private boolean useParse; - private int currentFlag; private int toggleCount; private Runnable mR1; private Runnable mR2; @@ -239,13 +238,18 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private Flag getFlag() { - return (Flag) mFlagAdapter.get(mBinding.flag.getSelectedPosition()); + return (Flag) mFlagAdapter.get(getFlagPosition()); } private Episode getEpisode() { return (Episode) mEpisodeAdapter.get(getEpisodePosition()); } + private int getFlagPosition() { + for (int i = 0; i < mFlagAdapter.size(); i++) if (((Flag) mFlagAdapter.get(i)).isActivated()) return i; + return 0; + } + private int getEpisodePosition() { for (int i = 0; i < mEpisodeAdapter.size(); i++) if (((Episode) mEpisodeAdapter.get(i)).isActivated()) return i; return 0; @@ -577,13 +581,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void setEpisodeActivated(Episode item) { + int flagPosition = getFlagPosition(); if (shouldEnterFullscreen(item)) return; - setCurrentFlag(mBinding.flag.getSelectedPosition()); - for (int i = 0; i < mFlagAdapter.size(); i++) ((Flag) mFlagAdapter.get(i)).toggle(getCurrentFlag() == i, item); + if (isFullscreen()) Notify.show(getString(R.string.play_ready, item.getName())); + for (int i = 0; i < mFlagAdapter.size(); i++) ((Flag) mFlagAdapter.get(i)).toggle(flagPosition == i, item); mBinding.episode.setSelectedPosition(getEpisodePosition()); notifyItemChanged(mBinding.episode, mEpisodeAdapter); - if (mEpisodeAdapter.size() == 0) return; - if (isFullscreen()) Notify.show(getString(R.string.play_ready, item.getName())); onRefresh(); } @@ -670,7 +673,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mBinding.video.requestFocus(); mBinding.video.setForeground(null); mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)); - mBinding.flag.setSelectedPosition(getCurrentFlag()); + mBinding.flag.setSelectedPosition(getFlagPosition()); setSubtitle(Setting.getSubtitle()); mKeyDown.setFull(true); setFullscreen(true); @@ -1224,7 +1227,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void checkFlag() { - int position = isGone(mBinding.flag) ? -1 : mBinding.flag.getSelectedPosition(); + int position = isGone(mBinding.flag) ? -1 : getFlagPosition(); if (position == mFlagAdapter.size() - 1) checkSearch(false); else nextFlag(position); } @@ -1375,14 +1378,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List this.useParse = useParse; } - public int getCurrentFlag() { - return currentFlag; - } - - public void setCurrentFlag(int currentFlag) { - this.currentFlag = currentFlag; - } - public int getToggleCount() { return toggleCount; } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java index 730ba76aa..a366fe36c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java @@ -61,7 +61,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener { } private int getCount() { - return list() ? 1 : Math.max(1, Math.min((int) (Math.ceil(adapter.getItemCount() / 20.0f)), 3)); + return list() ? 1 : Math.max(2, Math.min((int) (Math.ceil(adapter.getItemCount() / 20.0f)), 3)); } private int getIcon() {