From 738a9ce93cba97fbf50ae0af262ebd788c6e7e39 Mon Sep 17 00:00:00 2001 From: okjack Date: Sun, 18 Feb 2024 21:30:07 +0800 Subject: [PATCH 1/7] fix JianPian --- .../android/tv/player/extractor/JianPian.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java index 2437b0712..2adddf437 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java @@ -3,15 +3,19 @@ package com.fongmi.android.tv.player.extractor; import android.net.Uri; import com.fongmi.android.tv.player.Source; +import com.github.catvod.utils.Path; import com.p2p.P2PClass; import java.net.URLDecoder; import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Map; public class JianPian implements Source.Extractor { private P2PClass p2p; private String path; + private Map pathPaused; @Override public boolean match(String scheme, String host) { @@ -20,6 +24,7 @@ public class JianPian implements Source.Extractor { private void init() { if (p2p == null) p2p = new P2PClass(); + if (pathPaused == null) pathPaused = new HashMap<>(); } @Override @@ -39,7 +44,9 @@ public class JianPian implements Source.Extractor { path = path.replace("xg://", "ftp://").replace("xgplay://", "ftp://"); if (lastPath != null && !lastPath.equals(path)) p2p.P2Pdoxdel(lastPath.getBytes("GBK")); p2p.P2Pdoxstart(path.getBytes("GBK")); - p2p.P2Pdoxadd(path.getBytes("GBK")); + if (lastPath != null && !lastPath.equals(path)) p2p.P2Pdoxadd(lastPath.getBytes("GBK")); + if (lastPath != null && !lastPath.equals(path) && pathPaused.containsKey(lastPath)) pathPaused.remove(lastPath); + pathPaused.put(path, false); } catch (Exception e) { e.printStackTrace(); } @@ -48,7 +55,10 @@ public class JianPian implements Source.Extractor { @Override public void stop() { try { - if (p2p != null && path != null) p2p.P2Pdoxpause(path.getBytes("GBK")); + if (p2p == null || path == null) return; + if (pathPaused.containsKey(path) && pathPaused.get(path)) return; + p2p.P2Pdoxpause(path.getBytes("GBK")); + pathPaused.put(path, true); } catch (Exception e) { e.printStackTrace(); } @@ -56,10 +66,6 @@ public class JianPian implements Source.Extractor { @Override public void exit() { - try { - if (p2p != null && path != null) p2p.P2Pdoxpause(path.getBytes("GBK")); - } catch (Exception e) { - e.printStackTrace(); - } + Path.clear(Path.jpa()); } } From 39d546c1fc8d0974f1488c920b52afeb9659a67c Mon Sep 17 00:00:00 2001 From: okjack Date: Sun, 18 Feb 2024 21:39:03 +0800 Subject: [PATCH 2/7] fix JianPian --- .../com/fongmi/android/tv/player/extractor/JianPian.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java index 2adddf437..06e80719e 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java @@ -42,10 +42,11 @@ public class JianPian implements Source.Extractor { path = path.replace("jianpian://pathtype=url&path=", ""); path = path.replace("tvbox-xg://", "").replace("tvbox-xg:", ""); path = path.replace("xg://", "ftp://").replace("xgplay://", "ftp://"); - if (lastPath != null && !lastPath.equals(path)) p2p.P2Pdoxdel(lastPath.getBytes("GBK")); + boolean isDiff = lastPath != null && !lastPath.equals(path); + if (isDiff) p2p.P2Pdoxdel(lastPath.getBytes("GBK")); p2p.P2Pdoxstart(path.getBytes("GBK")); - if (lastPath != null && !lastPath.equals(path)) p2p.P2Pdoxadd(lastPath.getBytes("GBK")); - if (lastPath != null && !lastPath.equals(path) && pathPaused.containsKey(lastPath)) pathPaused.remove(lastPath); + if (isDiff) p2p.P2Pdoxadd(lastPath.getBytes("GBK")); + if (isDiff && pathPaused.containsKey(lastPath)) pathPaused.remove(lastPath); pathPaused.put(path, false); } catch (Exception e) { e.printStackTrace(); From d9aae9bcd172eea761590801f18f846e55535e81 Mon Sep 17 00:00:00 2001 From: okjack Date: Sun, 18 Feb 2024 22:51:14 +0800 Subject: [PATCH 3/7] 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 From 049659b2fca215dfc0214dbe412d8fe144daaf5b Mon Sep 17 00:00:00 2001 From: okjack Date: Mon, 19 Feb 2024 09:21:17 +0800 Subject: [PATCH 4/7] content copy notify --- .../java/com/fongmi/android/tv/ui/activity/VideoActivity.java | 1 + app/src/mobile/res/values-zh-rCN/strings.xml | 1 + app/src/mobile/res/values-zh-rTW/strings.xml | 1 + app/src/mobile/res/values/strings.xml | 1 + 4 files changed, 4 insertions(+) diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 648e44901..0424313e1 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -721,6 +721,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private boolean onCopy() { Util.copy(mBinding.content.getText().toString()); + Notify.show(getString(R.string.copy_success)); return true; } diff --git a/app/src/mobile/res/values-zh-rCN/strings.xml b/app/src/mobile/res/values-zh-rCN/strings.xml index 7d40b5958..a2b0a9cf3 100644 --- a/app/src/mobile/res/values-zh-rCN/strings.xml +++ b/app/src/mobile/res/values-zh-rCN/strings.xml @@ -47,6 +47,7 @@ 已于主萤幕新增捷径。 + 复制成功 关闭 diff --git a/app/src/mobile/res/values-zh-rTW/strings.xml b/app/src/mobile/res/values-zh-rTW/strings.xml index e37ed3200..6892efa1c 100644 --- a/app/src/mobile/res/values-zh-rTW/strings.xml +++ b/app/src/mobile/res/values-zh-rTW/strings.xml @@ -47,6 +47,7 @@ 已於主螢幕新增捷徑。 + 拷貝成功 關閉 diff --git a/app/src/mobile/res/values/strings.xml b/app/src/mobile/res/values/strings.xml index 7701c0257..bcf4a370e 100644 --- a/app/src/mobile/res/values/strings.xml +++ b/app/src/mobile/res/values/strings.xml @@ -47,6 +47,7 @@ Shortcut has been added. + Copy success Off From 2aeafefa65ada21af0cda38354f2c4ded8d13c0a Mon Sep 17 00:00:00 2001 From: okjack Date: Mon, 19 Feb 2024 09:38:45 +0800 Subject: [PATCH 5/7] fix JianPian --- .../java/com/fongmi/android/tv/player/extractor/JianPian.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java index 06e80719e..5eaf3ca75 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java +++ b/app/src/main/java/com/fongmi/android/tv/player/extractor/JianPian.java @@ -45,7 +45,7 @@ public class JianPian implements Source.Extractor { boolean isDiff = lastPath != null && !lastPath.equals(path); if (isDiff) p2p.P2Pdoxdel(lastPath.getBytes("GBK")); p2p.P2Pdoxstart(path.getBytes("GBK")); - if (isDiff) p2p.P2Pdoxadd(lastPath.getBytes("GBK")); + if (lastPath == null || isDiff) p2p.P2Pdoxadd(path.getBytes("GBK")); if (isDiff && pathPaused.containsKey(lastPath)) pathPaused.remove(lastPath); pathPaused.put(path, false); } catch (Exception e) { From 68e9940aa7ef0781fc00ec7dd41acb783c462d6f Mon Sep 17 00:00:00 2001 From: okjack Date: Mon, 19 Feb 2024 10:58:47 +0800 Subject: [PATCH 6/7] small window back key --- .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 e5e91fe6b..7b744949f 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 @@ -378,7 +378,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List getEpisodeView().addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { @Override public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { - if (child != null && mBinding.video != mFocus1) mFocus1 = child.itemView; + if (child != null) mFocus1 = child.itemView; } }); mBinding.array.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { @@ -1583,9 +1583,9 @@ 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(); + if (!isFullscreen() && KeyUtil.isBackKey(event) && Setting.getSmallWindowBackKey() == 1 && getCurrentFocus() != mBinding.video) { mFocus1 = mBinding.video; + getFocus1().requestFocus(); return true; } if (isFullscreen() && KeyUtil.isMenuKey(event) && Setting.getFullscreenMenuKey() == 0) onToggle(); From 1fe4a0de667515d682d569bbfce1be670d5a1900 Mon Sep 17 00:00:00 2001 From: okjack Date: Mon, 19 Feb 2024 11:19:28 +0800 Subject: [PATCH 7/7] build.gradle --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index cb9c5d7c4..3bc2e70ba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdk 21 targetSdk 28 versionCode 227 - versionName "2.2.7" + versionName "0219" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]