From f6949a5e2a04604c807c90faa8b4fbccf96b14e5 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 7 Mar 2024 20:53:41 +0800 Subject: [PATCH] home --- .../android/tv/ui/activity/HomeActivity.java | 19 +++++++++---------- .../android/tv/ui/custom/CustomViewPager.java | 7 +++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index d27f1223a..601efb2bb 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -215,6 +215,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen private void setPager() { mBinding.pager.setAdapter(mPageAdapter = new HomeActivity.PageAdapter(getSupportFragmentManager())); + mBinding.pager.setNoScrollItem(0); } private void onChildSelected(@Nullable RecyclerView.ViewHolder child) { @@ -461,17 +462,15 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public boolean dispatchKeyEvent(KeyEvent event) { boolean isHomeFragment = mBinding.pager.getCurrentItem() == 0; - if (isHomeFragment && !hasSettingButton()) { - MenuDialog.create(this).show(); - } else if (isHomeFragment && KeyUtil.isMenuKey(event)) { + if (isHomeFragment && KeyUtil.isMenuKey(event)) { if (Setting.getHomeMenuKey() == 0) MenuDialog.create(this).show(); - if (Setting.getHomeMenuKey() == 1) SiteDialog.create(this).show(); - if (Setting.getHomeMenuKey() == 2) HistoryDialog.create(this).type(0).show(); - if (Setting.getHomeMenuKey() == 3) HistoryActivity.start(this); - if (Setting.getHomeMenuKey() == 4) SearchActivity.start(this); - if (Setting.getHomeMenuKey() == 5) PushActivity.start(this); - if (Setting.getHomeMenuKey() == 6) KeepActivity.start(this); - if (Setting.getHomeMenuKey() == 7) SettingActivity.start(this); + else if (Setting.getHomeMenuKey() == 1) SiteDialog.create(this).show(); + else if (Setting.getHomeMenuKey() == 2) HistoryDialog.create(this).type(0).show(); + else if (Setting.getHomeMenuKey() == 3) HistoryActivity.start(this); + else if (Setting.getHomeMenuKey() == 4) SearchActivity.start(this); + else if (Setting.getHomeMenuKey() == 5) PushActivity.start(this); + else if (Setting.getHomeMenuKey() == 6) KeepActivity.start(this); + else if (Setting.getHomeMenuKey() == 7) SettingActivity.start(this); } if (!isHomeFragment && KeyUtil.isMenuKey(event)) updateFilter((Class) mAdapter.get(mBinding.pager.getCurrentItem())); if (!isHomeFragment && KeyUtil.isBackKey(event) && event.isLongPress() && getFragment().goRoot()) setCoolDown(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java index d14b586c8..af9b391f9 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomViewPager.java @@ -23,6 +23,7 @@ public class CustomViewPager extends ViewPager { private Animation shake; private Rect rect; + private int noScrollItem; public CustomViewPager(@NonNull Context context) { super(context); @@ -36,6 +37,11 @@ public class CustomViewPager extends ViewPager { private void init() { this.rect = new Rect(); this.shake = ResUtil.getAnim(R.anim.shake); + this.noScrollItem = -1; + } + + public void setNoScrollItem(int item) { + this.noScrollItem = item; } @Override @@ -46,6 +52,7 @@ public class CustomViewPager extends ViewPager { @Override public boolean executeKeyEvent(@NonNull KeyEvent event) { if (findFocus() instanceof TextView) return false; + if (getCurrentItem() == noScrollItem) return false; if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT) return arrowScroll(FOCUS_LEFT); if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT) return arrowScroll(FOCUS_RIGHT); return false;