From 8f6b7c953e01ff822ce9725667000fee2f9db4b5 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 20 Feb 2023 23:54:39 +0800 Subject: [PATCH] [mobile] fix back bug --- .../android/tv/ui/activity/MainActivity.java | 22 ++++++++++++++----- .../tv/ui/fragment/SettingFragment.java | 1 - .../android/tv/ui/fragment/VodFragment.java | 8 +++++-- .../tv/ui/fragment/child/SiteFragment.java | 3 ++- 4 files changed, 25 insertions(+), 9 deletions(-) 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 a2acdb370..81c856ac1 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 @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.viewbinding.ViewBinding; +import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.api.LiveConfig; @@ -27,6 +28,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt private ActivityMainBinding mBinding; private List mFragments; + private boolean confirm; @Override protected ViewBinding getBinding() { @@ -64,7 +66,6 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt return new Callback() { @Override public void success() { - RefreshEvent.history(); RefreshEvent.video(); } @@ -80,6 +81,16 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt return (VodFragment) getSupportFragmentManager().findFragmentByTag("0"); } + private SettingFragment getSettingFragment() { + return (SettingFragment) getSupportFragmentManager().findFragmentByTag("1"); + } + + private void setConfirm() { + confirm = true; + Notify.show(R.string.app_exit); + App.post(() -> confirm = false, 2000); + } + @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { @@ -96,10 +107,11 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt @Override public void onBackPressed() { - if (getVodFragment().isVisible()) { - if (getVodFragment().canBack()) super.onBackPressed(); - } else { - super.onBackPressed(); + if (getSettingFragment().isVisible()) { + mBinding.navigation.setSelectedItemId(R.id.vod); + } else if (getVodFragment().canBack()) { + if (!confirm) setConfirm(); + else super.onBackPressed(); } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index df06886eb..205af1434 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -134,7 +134,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit case 0: Notify.dismiss(); RefreshEvent.video(); - RefreshEvent.history(); mBinding.liveUrl.setText(LiveConfig.getUrl()); mBinding.wallUrl.setText(WallConfig.getUrl()); break; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index a14deea86..10754a0b1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -170,8 +170,12 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal } public boolean canBack() { - if (mBinding.pager.getCurrentItem() > 0) return true; - return getSiteFragment().canBack(); + try { + if (mBinding.pager.getCurrentItem() > 0) return true; + return getSiteFragment().canBack(); + } catch (Exception e) { + return true; + } } class PageAdapter extends FragmentStatePagerAdapter { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java index 94ce651d1..bebfc3b08 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java @@ -86,7 +86,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList @Override public boolean onLongClick() { - setHistoryDelete(true); + setHistoryDelete(!mHistoryAdapter.isDelete()); return true; } @@ -105,6 +105,7 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList public void onResult(Result result) { mBinding.progressLayout.showContent(); mVodAdapter.addAll(result.getList()); + getHistory(); } @Subscribe(threadMode = ThreadMode.MAIN)