diff --git a/app/build.gradle b/app/build.gradle
index 8529df532..2b20cfd38 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 223
- versionName "0122"
+ versionName "0123"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
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 07586cb6f..e77b9bc44 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
@@ -639,7 +639,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.episodeVert.setNumColumns(numColumns);
mBinding.episodeVert.setColumnWidth((width - ((numColumns - 1) * ResUtil.dp2px(8))) / numColumns);
mBinding.episodeVert.setLayoutParams(params);
- mBinding.episodeVert.setWindowAlignmentOffsetPercent(6);
+ mBinding.episodeVert.setWindowAlignment(BaseGridView.WINDOW_ALIGN_LOW_EDGE);
+ mBinding.episodeVert.setWindowAlignmentOffset(0);
+ mBinding.episodeVert.setWindowAlignmentOffsetPercent(0f);
+ mBinding.episodeVert.setItemAlignmentOffsetPercent(0f);
mEpisodePresenter.setNumColumns(numColumns);
mEpisodePresenter.setNumRows(rowNum);
}
@@ -1536,11 +1539,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (!isFullscreen() && KeyUtil.isBackKey(event) && getFocus1() != mBinding.video) {
- mBinding.video.requestFocus();
- mFocus1 = null;
- return true;
- }
if (isFullscreen() && KeyUtil.isMenuKey(event)) onToggle();
if (isVisible(mBinding.control.getRoot())) setR1Callback();
if (isVisible(mBinding.control.getRoot())) mFocus2 = getCurrentFocus();
diff --git a/app/src/main/java/com/fongmi/android/tv/Setting.java b/app/src/main/java/com/fongmi/android/tv/Setting.java
index 9b31afd0b..0329cace5 100644
--- a/app/src/main/java/com/fongmi/android/tv/Setting.java
+++ b/app/src/main/java/com/fongmi/android/tv/Setting.java
@@ -332,4 +332,21 @@ public class Setting {
public static boolean hasCaption() {
return new Intent(Settings.ACTION_CAPTIONING_SETTINGS).resolveActivity(App.get().getPackageManager()) != null;
}
+
+ public static boolean isDisplayTime() {
+ return Prefers.getBoolean("display_time", false);
+ }
+
+ public static void putDisplayTime(boolean display) {
+ Prefers.put("display_time", display);
+ }
+
+ public static boolean isDisplaySpeed() {
+ return Prefers.getBoolean("display_speed", false);
+ }
+
+ public static void putDisplaySpeed(boolean display) {
+ Prefers.put("display_speed", display);
+ }
+
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index e44964c8a..2bcf39bd4 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -35,6 +35,8 @@
上集
循环
定时
+ 时间
+ 网速
弹幕
换源
→
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 7eeabf388..b62a32d39 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -35,6 +35,8 @@
上集
循環
定時
+ 时间
+ 网速
彈幕
換源
→
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bf619cd0d..44bb9d253 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -35,6 +35,8 @@
Prev
Loop
Timer
+ Time
+ Net Speed
Danmu
Change
→
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 2fb5b4310..3e8440241 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
@@ -308,7 +308,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mObserveSearch = this::setSearch;
mDialogs = new ArrayList<>();
mBroken = new ArrayList<>();
- mClock = Clock.create();
+ mClock = Clock.create(mBinding.display.time);
mR0 = this::stopService;
mR1 = this::hideControl;
mR2 = this::setTraffic;
@@ -318,6 +318,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
setForeground(true);
setRecyclerView();
setVideoView();
+ setDisplayView();
setDanmuView();
setViewModel();
showProgress();
@@ -427,6 +428,11 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
checkDanmuImg();
}
+ private void setDisplayView() {
+ mBinding.display.getRoot().setVisibility(View.VISIBLE);
+ showDisplayInfo();
+ }
+
@Override
public void setSubtitle(int size) {
getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size);
@@ -919,6 +925,17 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
else onRefresh();
}
+ private void showDisplayInfo() {
+ boolean controlVisible = isVisible(mBinding.control.getRoot());
+ boolean visible = (!controlVisible || isLock());
+ mBinding.display.time.setVisibility(Setting.isDisplayTime() && visible ? View.VISIBLE : View.GONE);
+ mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && visible ? View.VISIBLE : View.GONE);
+ }
+
+ private void onTimeChangeDisplaySpeed() {
+ if (Setting.isDisplaySpeed() && (!isVisible(mBinding.control.getRoot()) || isLock())) Traffic.setSpeed(mBinding.display.netspeed);
+ }
+
private void toggleFullscreen() {
if (isFullscreen()) exitFullscreen();
else enterFullscreen();
@@ -1007,6 +1024,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.bottom.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.top.setVisibility(isLock() ? View.GONE : View.VISIBLE);
mBinding.control.getRoot().setVisibility(View.VISIBLE);
+ showDisplayInfo();
checkPlayImg(mPlayers.isPlaying());
setR1Callback();
}
@@ -1014,6 +1032,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void hideControl() {
mBinding.control.getRoot().setVisibility(View.GONE);
App.removeCallbacks(mR1);
+ showDisplayInfo();
}
private void hideSheet() {
@@ -1154,6 +1173,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
@Override
public void onTimeChanged() {
+ onTimeChangeDisplaySpeed();
long position, duration;
mHistory.setPosition(position = mPlayers.getPosition());
mHistory.setDuration(duration = mPlayers.getDuration());
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
index aa8c9df58..5e0590152 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
@@ -13,6 +13,7 @@ import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
+import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Parse;
import com.fongmi.android.tv.databinding.ActivityVideoBinding;
@@ -95,6 +96,8 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.opening.setText(parent.control.action.opening.getText());
binding.loop.setActivated(parent.control.action.loop.isActivated());
binding.timer.setActivated(Timer.get().isRunning());
+ binding.dptime.setActivated(Setting.isDisplayTime());
+ binding.dpspeed.setActivated(Setting.isDisplaySpeed());
setTrackVisible();
setScaleText();
setParse();
@@ -116,6 +119,22 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.player.setOnLongClickListener(v -> longClick(binding.player, parent.control.action.player));
binding.ending.setOnLongClickListener(v -> longClick(binding.ending, parent.control.action.ending));
binding.opening.setOnLongClickListener(v -> longClick(binding.opening, parent.control.action.opening));
+ binding.dptime.setOnClickListener(v -> displayTime());
+ binding.dpspeed.setOnClickListener(v -> displaySpeed());
+ }
+
+ private void displayTime() {
+ boolean display = Setting.isDisplayTime();
+ parent.display.time.setVisibility(!display ? View.VISIBLE : View.GONE);
+ Setting.putDisplayTime(!display);
+ binding.dptime.setActivated(!display);
+ }
+
+ private void displaySpeed() {
+ boolean display = Setting.isDisplaySpeed();
+ parent.display.netspeed.setVisibility(!display ? View.VISIBLE : View.GONE);
+ Setting.putDisplaySpeed(!display);
+ binding.dpspeed.setActivated(!display);
}
private void onTimer(View view) {
diff --git a/app/src/mobile/res/layout/activity_video.xml b/app/src/mobile/res/layout/activity_video.xml
index 42d4ea850..8c5461329 100644
--- a/app/src/mobile/res/layout/activity_video.xml
+++ b/app/src/mobile/res/layout/activity_video.xml
@@ -56,6 +56,13 @@
android:layout_height="match_parent"
android:visibility="gone" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/mobile/res/values-zh-rCN/strings.xml b/app/src/mobile/res/values-zh-rCN/strings.xml
index f9e72c9f9..7d40b5958 100644
--- a/app/src/mobile/res/values-zh-rCN/strings.xml
+++ b/app/src/mobile/res/values-zh-rCN/strings.xml
@@ -30,6 +30,7 @@
缩放
轨道
其它
+ 屏显
删除全部纪录?
diff --git a/app/src/mobile/res/values-zh-rTW/strings.xml b/app/src/mobile/res/values-zh-rTW/strings.xml
index 82c8f6f22..763d748b4 100644
--- a/app/src/mobile/res/values-zh-rTW/strings.xml
+++ b/app/src/mobile/res/values-zh-rTW/strings.xml
@@ -30,6 +30,7 @@
縮放
軌道
其它
+ 熒幕顯示
刪除全部紀錄?
diff --git a/app/src/mobile/res/values/strings.xml b/app/src/mobile/res/values/strings.xml
index f74a7fd40..7701c0257 100644
--- a/app/src/mobile/res/values/strings.xml
+++ b/app/src/mobile/res/values/strings.xml
@@ -30,6 +30,7 @@
Scale
Track
Other
+ Display
Delete all records?