From 8de35a7e9d2bbf06d08c14b995908e1c0c87a73f Mon Sep 17 00:00:00 2001 From: FongMi Date: Fri, 21 Jun 2024 20:03:16 +0800 Subject: [PATCH] Fix pip mode for pad --- .../android/tv/ui/activity/LiveActivity.java | 6 +++++- .../android/tv/ui/activity/VideoActivity.java | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index f0501f9bd..3238a4812 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -209,7 +209,11 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List mBinding.control.action.decode.setText(mPlayers.getDecodeText()); mBinding.control.action.speed.setEnabled(mPlayers.canAdjustSpeed()); mBinding.control.action.home.setVisibility(LiveConfig.isOnly() ? View.GONE : View.VISIBLE); - mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> mPiP.update(getActivity(), view)); + mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + if (left != oldLeft || right != oldRight || top != oldTop || bottom != oldBottom) { + mPiP.update(getActivity(), view); + } + }); } private void setSubtitleView() { 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 a4c76fa7b..69518e78b 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 @@ -367,12 +367,15 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private void setVideoView() { mPlayers.setup(mBinding.exo); + if (isPort() && ResUtil.isLand(this)) enterFullscreen(); mBinding.control.action.decode.setText(mPlayers.getDecodeText()); mBinding.control.action.speed.setEnabled(mPlayers.canAdjustSpeed()); 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)); - if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setPlayer(); - if (isPort() && ResUtil.isLand(this)) enterFullscreen(); + mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + if (left != oldLeft || right != oldRight || top != oldTop || bottom != oldBottom) { + mPiP.update(getActivity(), view); + } + }); } private void setSubtitleView() { @@ -1279,6 +1282,13 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mPlayers.play(); } + private void setVideoMargins(int margin) { + if (!ResUtil.isPad() || isFullscreen()) return; + RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mBinding.video.getLayoutParams(); + params.setMargins(margin, margin, margin, margin); + mBinding.video.setLayoutParams(params); + } + public boolean isForeground() { return foreground; } @@ -1495,6 +1505,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo super.onPictureInPictureModeChanged(isInPictureInPictureMode); if (isInPictureInPictureMode) { PlaybackService.start(mPlayers); + setVideoMargins(0); setSubtitle(10); hideControl(); hideSheet(); @@ -1502,6 +1513,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setForeground(true); PlaybackService.stop(); setSubtitle(Setting.getSubtitle()); + setVideoMargins(ResUtil.dp2px(16)); if (isStop()) finish(); } }