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 6ad54f2fd..d46f511d3 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
@@ -289,6 +289,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mR4 = this::showEmpty;
setRecyclerView();
setDanmakuView();
+ checkDanmaku();
setVideoView();
setViewModel();
checkCast();
@@ -324,6 +325,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.control.decode.setOnClickListener(view -> onDecode());
mBinding.control.ending.setOnClickListener(view -> onEnding());
mBinding.control.change2.setOnClickListener(view -> onChange());
+ mBinding.control.danmaku.setOnClickListener(view -> onDanmaku());
mBinding.control.opening.setOnClickListener(view -> onOpening());
mBinding.control.speed.setOnLongClickListener(view -> onSpeedLong());
mBinding.control.reset.setOnLongClickListener(view -> onResetToggle());
@@ -799,6 +801,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
return true;
}
+ private void onDanmaku() {
+ Setting.putDanmakuShow(!Setting.isDanmakuShow());
+ mBinding.control.danmaku.setActivated(Setting.isDanmakuShow());
+ toggleDanmaku();
+ }
+
private void onOpening() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
@@ -911,15 +919,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.widget.center.setVisibility(View.GONE);
}
- private void showDanmaku() {
- mBinding.danmaku.setVisibility(View.VISIBLE);
- }
-
- private void hideDanmaku() {
- mBinding.danmaku.setVisibility(View.GONE);
+ private void toggleDanmaku() {
+ if (Setting.isDanmakuShow()) mBinding.danmaku.show();
+ else mBinding.danmaku.hide();
}
private void showControl(View view) {
+ mBinding.control.danmaku.setVisibility(mBinding.danmaku.isPrepared() ? View.VISIBLE : View.GONE);
mBinding.control.getRoot().setVisibility(View.VISIBLE);
view.requestFocus();
setR1Callback();
@@ -1022,6 +1028,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.keep.setCompoundDrawablesWithIntrinsicBounds(Keep.find(getHistoryKey()) == null ? R.drawable.ic_detail_keep_off : R.drawable.ic_detail_keep_on, 0, 0, 0);
}
+ private void checkDanmaku() {
+ mBinding.control.danmaku.setActivated(Setting.isDanmakuShow());
+ }
+
private void createKeep() {
Keep keep = new Keep();
keep.setKey(getHistoryKey());
diff --git a/app/src/leanback/res/layout/view_control_vod.xml b/app/src/leanback/res/layout/view_control_vod.xml
index 853bee8d8..ceb345456 100644
--- a/app/src/leanback/res/layout/view_control_vod.xml
+++ b/app/src/leanback/res/layout/view_control_vod.xml
@@ -214,6 +214,19 @@
android:textSize="14sp"
tools:text="00:00" />
+
+
{
if (isPlaying()) danmakuView.start(getPosition());
else danmakuView.pause();
- danmakuView.show();
+ if (Setting.isDanmakuShow()) danmakuView.show();
+ else danmakuView.hide();
});
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 6d8ddceae..9355c55c5 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -36,6 +36,7 @@
循环
定时
换源
+ 弹幕
→
←
反转
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index d6ee97b41..57cccc41a 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -36,6 +36,7 @@
循環
定時
換源
+ 彈幕
→
←
反轉
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ec667c38d..227447045 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -36,6 +36,7 @@
Loop
Timer
Change
+ Danmaku
→
←
Invert
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 442c81d5b..e93c6b411 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
@@ -296,6 +296,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mR4 = this::showEmpty;
mPiP = new PiP();
setRecyclerView();
+ checkDanmakuImg();
setDanmakuView();
setVideoView();
setViewModel();
@@ -320,6 +321,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.play.setOnClickListener(view -> checkPlay());
mBinding.control.next.setOnClickListener(view -> checkNext());
mBinding.control.prev.setOnClickListener(view -> checkPrev());
+ mBinding.control.danmaku.setOnClickListener(view -> onDanmaku());
mBinding.control.setting.setOnClickListener(view -> onSetting());
mBinding.control.title.setOnLongClickListener(view -> onChange());
mBinding.control.right.back.setOnClickListener(view -> onFull());
@@ -718,6 +720,12 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
else Notify.show(R.string.error_play_prev);
}
+ private void onDanmaku() {
+ Setting.putDanmakuShow(!Setting.isDanmakuShow());
+ checkDanmakuImg();
+ toggleDanmaku();
+ }
+
private void onSetting() {
mControlDialog = ControlDialog.create().parent(mBinding).history(mHistory).player(mPlayers).parse(isUseParse()).show(this);
}
@@ -919,6 +927,11 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.widget.text.setText("");
}
+ private void toggleDanmaku() {
+ if (Setting.isDanmakuShow()) mBinding.danmaku.show();
+ else mBinding.danmaku.hide();
+ }
+
private void showDanmaku() {
mBinding.danmaku.setVisibility(View.VISIBLE);
}
@@ -929,6 +942,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void showControl() {
if (mPiP.isInMode(this)) return;
+ mBinding.control.danmaku.setVisibility(isLock() || !mBinding.danmaku.isPrepared() ? View.GONE : View.VISIBLE);
mBinding.control.setting.setVisibility(mHistory == null || isFullscreen() ? View.GONE : View.VISIBLE);
mBinding.control.right.rotate.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
mBinding.control.keep.setVisibility(mHistory == null || isFullscreen() ? View.GONE : View.VISIBLE);
@@ -1044,6 +1058,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.right.lock.setImageResource(isLock() ? R.drawable.ic_control_lock_on : R.drawable.ic_control_lock_off);
}
+ private void checkDanmakuImg() {
+ mBinding.control.danmaku.setImageResource(Setting.isDanmakuShow() ? R.drawable.ic_control_danmaku_on : R.drawable.ic_control_danmaku_off);
+ }
+
private void createKeep() {
Keep keep = new Keep();
keep.setKey(getHistoryKey());
diff --git a/app/src/mobile/res/drawable/ic_control_danmaku_off.xml b/app/src/mobile/res/drawable/ic_control_danmaku_off.xml
new file mode 100644
index 000000000..d53a8dc1b
--- /dev/null
+++ b/app/src/mobile/res/drawable/ic_control_danmaku_off.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/mobile/res/drawable/ic_control_danmaku_on.xml b/app/src/mobile/res/drawable/ic_control_danmaku_on.xml
new file mode 100644
index 000000000..05a81f11b
--- /dev/null
+++ b/app/src/mobile/res/drawable/ic_control_danmaku_on.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/mobile/res/layout/view_control_vod.xml b/app/src/mobile/res/layout/view_control_vod.xml
index b74b0c591..756234bd3 100644
--- a/app/src/mobile/res/layout/view_control_vod.xml
+++ b/app/src/mobile/res/layout/view_control_vod.xml
@@ -141,6 +141,28 @@
+
+
+
+
+
+