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()]
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..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,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 && getCurrentFocus() != mBinding.video) {
+ mFocus1 = mBinding.video;
+ getFocus1().requestFocus();
+ 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">
+
+
+
+
+
+
+
+
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
@@ -37,9 +42,12 @@ 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"));
- p2p.P2Pdoxadd(path.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) {
e.printStackTrace();
}
@@ -48,7 +56,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 +67,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());
}
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index e1ce33d56..c3807b5c2 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -79,6 +79,7 @@
全屏菜单键
首页源锁定
无痕模式
+ 小窗返回键
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
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