Merge pull request #1428 from DennisBauer/1411-Fix_bug_when_starting_video_in_external_player

Do not stat pip when open video externally
This commit is contained in:
Bnyro 2022-10-01 11:08:35 +02:00 committed by GitHub
commit d57ec17662
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -166,6 +166,7 @@ class PlayerFragment : BaseFragment() {
private var sponsorBlockNotifications = true
private var skipButtonsEnabled = false
private var pipEnabled = true
private var videoShownInExternalPlayer = false
private var skipSegmentsManually = false
private var progressiveLoadingIntervalSize = "64"
@ -666,6 +667,13 @@ class PlayerFragment : BaseFragment() {
if (!commentsLoaded!!) fetchComments()
}
override fun onStart() {
super.onStart()
// Assuming the video is not playing in external player when returning to app
videoShownInExternalPlayer = false
}
override fun onPause() {
// pauses the player if the screen is turned off
@ -1049,6 +1057,9 @@ class PlayerFragment : BaseFragment() {
if (response.hls != null) {
binding.relPlayerOpen.setOnClickListener {
// Do not start picture in picture when playing in external player
videoShownInExternalPlayer = true
// start an intent with video as mimetype using the hls stream
val uri: Uri = Uri.parse(response.hls)
val intent = Intent()
@ -1523,7 +1534,12 @@ class PlayerFragment : BaseFragment() {
}
private fun shouldStartPiP(): Boolean {
if (!pipEnabled || exoPlayer.playbackState == PlaybackState.STATE_PAUSED) return false
if (!pipEnabled ||
exoPlayer.playbackState == PlaybackState.STATE_PAUSED ||
videoShownInExternalPlayer
) {
return false
}
val bounds = Rect()
binding.playerScrollView.getHitRect(bounds)