From d9aae9bcd172eea761590801f18f846e55535e81 Mon Sep 17 00:00:00 2001 From: okjack Date: Sun, 18 Feb 2024 22:51:14 +0800 Subject: [PATCH] small window back key --- .../tv/ui/activity/SettingCustomActivity.java | 13 ++++++-- .../android/tv/ui/activity/VideoActivity.java | 5 ++++ .../res/layout/activity_setting_custom.xml | 30 +++++++++++++++++++ .../java/com/fongmi/android/tv/Setting.java | 8 +++++ app/src/main/res/values-zh-rCN/strings.xml | 6 ++++ app/src/main/res/values-zh-rTW/strings.xml | 6 ++++ app/src/main/res/values/strings.xml | 6 ++++ 7 files changed, 72 insertions(+), 2 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java index 1f63e7ea3..d9d8d39cd 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java @@ -20,6 +20,7 @@ public class SettingCustomActivity extends BaseActivity { private String[] size; private String[] episode; private String[] fullscreenMenuKey; + private String[] smallWindowBackKey; @Override protected ViewBinding getBinding() { @@ -48,6 +49,7 @@ public class SettingCustomActivity extends BaseActivity { mBinding.fullscreenMenuKeyText.setText((fullscreenMenuKey = ResUtil.getStringArray(R.array.select_fullscreen_menu_key))[Setting.getFullscreenMenuKey()]); mBinding.homeSiteLockText.setText(getSwitch(Setting.isHomeSiteLock())); mBinding.incognitoText.setText(getSwitch(Setting.isIncognito())); + mBinding.smallWindowBackKeyText.setText((smallWindowBackKey = ResUtil.getStringArray(R.array.select_small_window_back_key))[Setting.getSmallWindowBackKey()]); } @Override @@ -61,9 +63,10 @@ public class SettingCustomActivity extends BaseActivity { mBinding.displayMiniProgress.setOnClickListener(this::setDisplayMiniProgress); mBinding.speed.setOnClickListener(this::setSpeed); mBinding.speed.setOnLongClickListener(this::resetSpeed); - mBinding.fullscreenMenuKey.setOnClickListener(this::setfullscreenMenuKey); + mBinding.fullscreenMenuKey.setOnClickListener(this::setFullscreenMenuKey); mBinding.homeSiteLock.setOnClickListener(this::setHomeSiteLock); mBinding.incognito.setOnClickListener(this::setIncognito); + mBinding.smallWindowBackKey.setOnClickListener(this::setSmallWindowBackKey); } private void setQuality(View view) { @@ -120,7 +123,7 @@ public class SettingCustomActivity extends BaseActivity { return true; } - private void setfullscreenMenuKey(View view) { + private void setFullscreenMenuKey(View view) { int index = Setting.getFullscreenMenuKey(); Setting.putFullscreenMenuKey(index = index == fullscreenMenuKey.length - 1 ? 0 : ++index); mBinding.fullscreenMenuKeyText.setText(fullscreenMenuKey[index]); @@ -136,4 +139,10 @@ public class SettingCustomActivity extends BaseActivity { mBinding.incognitoText.setText(getSwitch(Setting.isIncognito())); } + private void setSmallWindowBackKey(View view) { + int index = Setting.getSmallWindowBackKey(); + Setting.putSmallWindowBackKey(index = index == smallWindowBackKey.length - 1 ? 0 : ++index); + mBinding.smallWindowBackKeyText.setText(smallWindowBackKey[index]); + } + } 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 d3baeecfc..e5e91fe6b 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 @@ -1583,6 +1583,11 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override public boolean dispatchKeyEvent(KeyEvent event) { hasKeyEvent = true; + if (!isFullscreen() && KeyUtil.isBackKey(event) && Setting.getSmallWindowBackKey() == 1 && getFocus1() != mBinding.video) { + mBinding.video.requestFocus(); + mFocus1 = mBinding.video; + return true; + } if (isFullscreen() && KeyUtil.isMenuKey(event) && Setting.getFullscreenMenuKey() == 0) onToggle(); if (isFullscreen() && KeyUtil.isMenuKey(event) && Setting.getFullscreenMenuKey() == 1) onEpisodes(); if (isVisible(mBinding.control.getRoot())) setR1Callback(); diff --git a/app/src/leanback/res/layout/activity_setting_custom.xml b/app/src/leanback/res/layout/activity_setting_custom.xml index 75b0718c6..f9dd0e1b1 100644 --- a/app/src/leanback/res/layout/activity_setting_custom.xml +++ b/app/src/leanback/res/layout/activity_setting_custom.xml @@ -352,6 +352,36 @@ android:layout_marginTop="16dp" android:orientation="horizontal"> + + + + + + + + 全屏菜单键 首页源锁定 无痕模式 + 小窗返回键 DoH Proxy 缓存 @@ -219,6 +220,11 @@ 选集 + + 返回 + 焦点移动 + + 预设 系统 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index e346a2394..5bfc150f1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -79,6 +79,7 @@ 全屏選單鍵 首頁源鎖定 無痕模式 + 小窗返回鍵 DoH Proxy 暫存 @@ -219,6 +220,11 @@ 選集 + + 返回 + 焦點移動 + + 預設 系統 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d6369cef6..69fc8b3e7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,6 +79,7 @@ Fullscreen menu key Home site lock Incognito mode + Small window back key DoH Proxy Cache @@ -224,6 +225,11 @@ Episodes + + Back + Focus move + + Default System