From 6f4e57c65ba6cd6dce42ff8a0a52f9eff14f2e39 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 8 Jan 2023 00:41:42 +0800 Subject: [PATCH] Optimize UX --- .../fongmi/android/tv/ui/activity/DetailActivity.java | 10 +++++++++- .../fongmi/android/tv/ui/activity/LiveActivity.java | 4 ++-- .../tv/danmaku/ijk/media/player/ui/IjkVideoView.java | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 70841de85..da47682ea 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -183,6 +183,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.desc.setOnClickListener(view -> onDesc()); mBinding.keep.setOnClickListener(view -> onKeep()); mBinding.video.setOnClickListener(view -> onVideo()); + mBinding.video.setOnLongClickListener(view -> onLong()); mBinding.control.text.setOnClickListener(this::onTrack); mBinding.control.audio.setOnClickListener(this::onTrack); mBinding.control.next.setOnClickListener(view -> checkNext()); @@ -488,10 +489,16 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void onVideo() { - if (mFullscreen) onToggle(); + if (isVisible(mBinding.control.getRoot())) hideControl(); + else if (mFullscreen) onKeyCenter(); else enterFullscreen(); } + private boolean onLong() { + if (mFullscreen) onKeyDown(); + return true; + } + private void checkNext() { if (mHistory.isRevPlay()) onPrev(); else onNext(); @@ -847,6 +854,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis public void onKeyCenter() { if (mPlayers.isPlaying()) onPause(true); else onPlay(0); + hideControl(); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 8dce5c6c5..bbee9c053 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -266,9 +266,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void onToggle() { - if (isVisible(mBinding.recycler)) hideUI(); + if (isVisible(mBinding.control.getRoot())) hideControl(); + else if (isVisible(mBinding.recycler)) hideUI(); else showUI(); - hideControl(); hideInfo(); } diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java index 5bfb2cb7a..c60230fe1 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java @@ -179,9 +179,9 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl private void fixTextureView() { if (mCurrentRender != RENDER_TEXTURE_VIEW) return; mRenderView.removeRenderCallback(mSHCallback); + contentFrame.removeView(mRenderView.getView()); TextureRenderView texture = new TextureRenderView(getContext()); texture.getSurfaceHolder().bindToMediaPlayer(mIjkPlayer); - contentFrame.removeView(mRenderView.getView()); setRenderView(texture); }