diff --git a/app/build.gradle b/app/build.gradle index 0c3cc51ef..9d5a9b083 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 210 - versionName "20231205" + versionName "20231205#2" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java index 16c55ab70..d4d7b8b5d 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java @@ -42,6 +42,7 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi private ActivityVodBinding mBinding; private ArrayObjectAdapter mAdapter; private PageAdapter mPageAdapter; + private boolean coolDown; private View mOldView; public static void start(Activity activity, Result result) { @@ -149,6 +150,11 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi return (VodFragment) mPageAdapter.instantiateItem(mBinding.pager, mBinding.pager.getCurrentItem()); } + private void setCoolDown() { + App.post(() -> coolDown = false, 2000); + coolDown = true; + } + @Override public void onItemClick(Class item) { updateFilter(item); @@ -161,8 +167,8 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi @Override public boolean dispatchKeyEvent(KeyEvent event) { - if (KeyUtil.isBackKey(event) && event.isLongPress()) getFragment().goRoot(); if (KeyUtil.isMenuKey(event)) updateFilter((Class) mAdapter.get(mBinding.pager.getCurrentItem())); + if (KeyUtil.isBackKey(event) && event.isLongPress() && getFragment().goRoot()) setCoolDown(); return super.dispatchKeyEvent(event); } @@ -171,7 +177,7 @@ public class VodActivity extends BaseActivity implements TypePresenter.OnClickLi Class item = (Class) mAdapter.get(mBinding.pager.getCurrentItem()); if (item.getFilter() != null && item.getFilter()) updateFilter(item); else if (getFragment().canBack()) getFragment().goBack(); - else super.onBackPressed(); + else if (!coolDown) super.onBackPressed(); } class PageAdapter extends FragmentStatePagerAdapter { diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 5226789c8..22b6c2338 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -268,10 +268,11 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback onRefresh(); } - public void goRoot() { - if (mPages.isEmpty()) return; + public boolean goRoot() { + if (mPages.isEmpty()) return false; mPages.clear(); getVideo(); + return true; } @Override