From 94a76d52eb05b1dfef169e3b6d86f4d031dadc6d Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 24 Feb 2023 18:49:01 +0800 Subject: [PATCH] [mobile] fix some bug --- .../android/tv/ui/activity/DetailActivity.java | 2 +- .../android/tv/ui/activity/DetailActivity.java | 7 ++++--- .../android/tv/ui/activity/MainActivity.java | 14 ++++---------- .../android/tv/ui/custom/FragmentStateManager.java | 3 ++- 4 files changed, 11 insertions(+), 15 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 0b140e9b8..690b48d05 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 @@ -416,7 +416,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis onRefresh(); } - private void reverseEpisode() { + private void reverseEpisode(boolean scroll) { for (int i = 0; i < mFlagAdapter.size(); i++) Collections.reverse(((Vod.Flag) mFlagAdapter.get(i)).getEpisodes()); setEpisodeAdapter(getFlag().getEpisodes()); mBinding.episode.setSelectedPosition(getEpisodePosition()); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 69299c0f4..379b2a399 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -398,9 +398,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis onItemClick(episode); } - private void reverseEpisode() { + private void reverseEpisode(boolean scroll) { mFlagAdapter.reverse(); setEpisodeAdapter(getFlag().getEpisodes()); + if (scroll) mBinding.episode.scrollToPosition(mEpisodeAdapter.getPosition()); } private void onMore() { @@ -411,7 +412,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onReverse() { mHistory.setRevSort(!mHistory.isRevSort()); - reverseEpisode(); + reverseEpisode(false); } private void onFull() { @@ -659,7 +660,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mHistory = History.find(getHistoryKey()); mHistory = mHistory == null ? createHistory(item) : mHistory; onItemClick(mHistory.getFlag()); - if (mHistory.isRevSort()) reverseEpisode(); + if (mHistory.isRevSort()) reverseEpisode(true); mBinding.control.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening())); mBinding.control.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding())); mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java index b43da0878..72dce5ec4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java @@ -105,16 +105,10 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { - switch (item.getItemId()) { - case R.id.vod: - mManager.change(0); - return true; - case R.id.setting: - mManager.change(1); - return true; - default: - return false; - } + if (mBinding.navigation.getSelectedItemId() == item.getItemId()) return false; + if (item.getItemId() == R.id.vod) return mManager.change(0); + if (item.getItemId() == R.id.setting) return mManager.change(1); + return false; } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/FragmentStateManager.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/FragmentStateManager.java index b51c66fb9..a36e8aeee 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/FragmentStateManager.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/FragmentStateManager.java @@ -20,7 +20,7 @@ public abstract class FragmentStateManager { public abstract Fragment getItem(int position); - public void change(int position) { + public boolean change(int position) { FragmentTransaction ft = fm.beginTransaction(); Fragment fragment = fm.findFragmentByTag(getTag(position)); if (fragment == null) ft.add(container.getId(), fragment = getItem(position), getTag(position)); @@ -30,6 +30,7 @@ public abstract class FragmentStateManager { ft.setPrimaryNavigationFragment(fragment); ft.setReorderingAllowed(true); ft.commitNowAllowingStateLoss(); + return true; } private String getTag(int position) {