From 209e02c09e1287177a52bc6fa2755f76a5061745 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 5 Jun 2024 01:12:07 +0800 Subject: [PATCH] Optimize pip mode --- .../com/fongmi/android/tv/ui/activity/LiveActivity.java | 2 +- .../com/fongmi/android/tv/ui/activity/VideoActivity.java | 2 +- app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java | 7 +++++-- 3 files changed, 7 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 fb27b029f..b5e1c516b 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 @@ -1039,7 +1039,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List super.onUserLeaveHint(); if (isRedirect()) return; if (isLock()) App.post(this::onLock, 500); - if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, Setting.getLiveScale() == 2); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.get().getVideoSize(), Setting.getLiveScale()); } @Override 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 e65ebedc5..51840d2ce 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 @@ -1490,7 +1490,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo super.onUserLeaveHint(); if (isRedirect()) return; if (isLock()) App.post(this::onLock, 500); - if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, getScale() == 2); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.get().getVideoSize(), getScale()); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java index e3392fe3e..5aef92cd0 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java +++ b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java @@ -13,6 +13,7 @@ import android.view.View; import androidx.annotation.DrawableRes; import androidx.annotation.StringRes; +import androidx.media3.common.VideoSize; import androidx.media3.ui.R; import com.fongmi.android.tv.App; @@ -71,12 +72,14 @@ public class PiP { } } - public void enter(Activity activity, boolean four) { + public void enter(Activity activity, VideoSize size, int scale) { try { if (noPiP() || activity.isInPictureInPictureMode() || !Setting.isBackgroundPiP()) return; - builder.setAspectRatio(new Rational(four ? 4 : 16, four ? 3 : 9)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) builder.setAutoEnterEnabled(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) builder.setSeamlessResizeEnabled(true); + if (scale == 1) builder.setAspectRatio(new Rational(16, 9)); + else if (scale == 2) builder.setAspectRatio(new Rational(4, 3)); + else builder.setAspectRatio(new Rational(size.width, size.height)); activity.enterPictureInPictureMode(builder.build()); } catch (Exception e) { e.printStackTrace();