From 9b11f470722559e271ded4af6c87e9ea560603d4 Mon Sep 17 00:00:00 2001 From: Kai Date: Fri, 18 Apr 2025 10:38:19 -0500 Subject: [PATCH] prevent PiP for audio only playback Changelog: changed --- .../fragment/mainactivity/main/VideoDetailFragment.kt | 2 +- .../fragment/mainactivity/main/VideoDetailView.kt | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt index 6477fa1f..954c71ce 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt @@ -446,7 +446,7 @@ class VideoDetailFragment() : MainFragment() { val viewDetail = _viewDetail; Logger.i(TAG, "onUserLeaveHint preventPictureInPicture=${viewDetail?.preventPictureInPicture} isCasting=${StateCasting.instance.isCasting} isBackgroundPictureInPicture=${Settings.instance.playback.isBackgroundPictureInPicture()} allowBackground=${viewDetail?.allowBackground}"); - if(viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground) { + if(viewDetail?.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.allowBackground && !viewDetail.audioOnly) { _leavingPiP = false; val params = _viewDetail?.getPictureInPictureParams(); diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index 7af5c541..cec74c94 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -194,6 +194,8 @@ class VideoDetailView : ConstraintLayout { val currentUrl get() = video?.url ?: _searchVideo?.url ?: _url; + val audioOnly get() = _lastVideoSource == null; + private var _liveChat: LiveChatManager? = null; private var _videoResumePositionMilliseconds : Long = 0L; @@ -1084,13 +1086,13 @@ class VideoDetailView : ConstraintLayout { if(StateCasting.instance.isCasting) return; - if(allowBackground) - StatePlayer.instance.startOrUpdateMediaSession(context, video); - else { + if (allowBackground) { + StatePlayer.instance.startOrUpdateMediaSession(context, video) + } else { when (Settings.instance.playback.backgroundPlay) { 0 -> handlePause(); 1 -> { - if (video?.isLive != true && Settings.instance.playback.backgroundSwitchToAudio && _lastVideoSource !== null) { + if (video?.isLive != true && Settings.instance.playback.backgroundSwitchToAudio && audioOnly) { _player.switchToAudioMode() } StatePlayer.instance.startOrUpdateMediaSession(context, video);