diff --git a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt index bc6b0d9c..29eef9c9 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt @@ -1302,7 +1302,15 @@ class MainActivity : AppCompatActivity, IWithResultLauncher { finish(); } else { //UIDialogs.toast("Grayjay continues in background because of an open video.") - moveTaskToBack(false); + if(Settings.instance.playback.isBackgroundPictureInPicture()) { + try { + _fragVideoDetail._viewDetail?.startPictureInPicture(); + _fragVideoDetail?.forcePictureInPicture(); + } catch (ex: Throwable) { + } //Fail silently + } + else + moveTaskToBack(false); /* UIDialogs.showConfirmationDialog(this, "There is a video playing, are you sure you want to exit the app?", { finish(); 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 26a2577b..d9274e7a 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 @@ -50,7 +50,7 @@ class VideoDetailFragment() : MainFragment() { private var _isActive: Boolean = false; - private var _viewDetail : VideoDetailView? = null; + var _viewDetail : VideoDetailView? = null; private var _view : SingleViewTouchableMotionLayout? = null; var isFullscreen : Boolean = false; @@ -450,7 +450,8 @@ class VideoDetailFragment() : MainFragment() { if (viewDetail.shouldEnterPictureInPicture) { _leavingPiP = false } - if(Build.VERSION.SDK_INT < Build.VERSION_CODES.S && viewDetail.preventPictureInPicture == false && !StateCasting.instance.isCasting && Settings.instance.playback.isBackgroundPictureInPicture() && !viewDetail.isAudioOnlyUserAction) { + val shouldPiP = Settings.instance.playback.isBackgroundPictureInPicture() + if(Build.VERSION.SDK_INT < Build.VERSION_CODES.S && viewDetail.preventPictureInPicture == false && !StateCasting.instance.isCasting && shouldPiP && !viewDetail.isAudioOnlyUserAction) { val params = _viewDetail?.getPictureInPictureParams(); if(params != null) { Logger.i(TAG, "enterPictureInPictureMode")