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 b9ed646a2..f9ccf5a31 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 @@ -376,6 +376,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List ExoUtil.setSubtitleView(mBinding.exo); mPlayers.setDanmakuView(mBinding.danmaku); mBinding.control.decode.setText(mPlayers.getDecodeText()); + mBinding.control.danmaku.setVisibility(Setting.isDanmakuLoad() ? View.VISIBLE : View.GONE); mBinding.control.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]); } @@ -1095,7 +1096,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mBinding.control.text.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_TEXT) || mPlayers.isVod() ? View.VISIBLE : View.GONE); mBinding.control.audio.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); mBinding.control.video.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); - mBinding.control.danmaku.setVisibility(mPlayers.haveDanmaku() ? View.VISIBLE : View.GONE); } private void setMetadata() { diff --git a/app/src/leanback/res/layout/dialog_danmaku.xml b/app/src/leanback/res/layout/dialog_danmaku.xml index 9bade521b..6a68cbc76 100644 --- a/app/src/leanback/res/layout/dialog_danmaku.xml +++ b/app/src/leanback/res/layout/dialog_danmaku.xml @@ -22,6 +22,14 @@ android:textColor="@color/grey_900" android:textSize="16sp" /> + + @@ -37,6 +38,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="?attr/selectableItemBackgroundBorderless" + android:focusable="true" android:src="@drawable/ic_action_subtitle" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 39b581abc..953f0665b 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -235,10 +235,6 @@ public class Players implements Player.Listener, ParseCallback, DrawHandler.Call return exoPlayer != null && ExoUtil.haveTrack(exoPlayer.getCurrentTracks(), type); } - public boolean haveDanmaku() { - return danmakus != null && !danmakus.isEmpty(); - } - public boolean isDanmakuPrepared() { return (danmaku != null && danmaku.isPrepared()); } 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 850432d6e..bc8b749db 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 @@ -370,6 +370,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mPlayers.setDanmakuView(mBinding.danmaku); if (isPort() && ResUtil.isLand(this)) enterFullscreen(); mBinding.control.action.decode.setText(mPlayers.getDecodeText()); + mBinding.control.action.danmaku.setVisibility(Setting.isDanmakuLoad() ? View.VISIBLE : View.GONE); mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]); mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> mPiP.update(getActivity(), view)); } @@ -1149,7 +1150,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mBinding.control.action.text.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_TEXT) || mPlayers.isVod() ? View.VISIBLE : View.GONE); mBinding.control.action.audio.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); mBinding.control.action.video.setVisibility(mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); - mBinding.control.action.danmaku.setVisibility(mPlayers.haveDanmaku() ? View.VISIBLE : View.GONE); if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setTrackVisible(); } 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 31902babc..953ab5ea9 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 @@ -178,6 +178,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.speed.setValue(Math.max(player.getSpeed(), 0.5f)); binding.player.setText(parent.control.action.player.getText()); binding.decode.setVisibility(parent.control.action.decode.getVisibility()); + binding.danmaku.setVisibility(parent.control.action.danmaku.getVisibility()); } public void setParseVisible(boolean visible) { @@ -189,7 +190,6 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.text.setVisibility(parent.control.action.text.getVisibility()); binding.audio.setVisibility(parent.control.action.audio.getVisibility()); binding.video.setVisibility(parent.control.action.video.getVisibility()); - binding.danmaku.setVisibility(parent.control.action.danmaku.getVisibility()); binding.track.setVisibility(binding.text.getVisibility() == View.GONE && binding.audio.getVisibility() == View.GONE && binding.video.getVisibility() == View.GONE ? View.GONE : View.VISIBLE); }