From f261ca8b45a25048dd91836fed5a7b81172e88ec Mon Sep 17 00:00:00 2001 From: janisslsm <97699850+janisslsm@users.noreply.github.com> Date: Sat, 14 May 2022 14:31:33 +0300 Subject: [PATCH] Prevent PIP from opening in mini player --- .../main/java/com/github/libretube/MainActivity.kt | 8 ++------ .../main/java/com/github/libretube/PlayerFragment.kt | 11 ++++++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/github/libretube/MainActivity.kt b/app/src/main/java/com/github/libretube/MainActivity.kt index 03187e31a..455b411c6 100644 --- a/app/src/main/java/com/github/libretube/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/MainActivity.kt @@ -319,12 +319,8 @@ class MainActivity : AppCompatActivity() { override fun onUserLeaveHint() { super.onUserLeaveHint() - for(fragment in supportFragmentManager.fragments) - { - if(fragment is PlayerFragment) - { - fragment.onUserLeaveHint(); - } + supportFragmentManager.fragments.forEach { fragment -> + (fragment as? PlayerFragment)?.onUserLeaveHint() } } diff --git a/app/src/main/java/com/github/libretube/PlayerFragment.kt b/app/src/main/java/com/github/libretube/PlayerFragment.kt index 4462b8e7f..794932dc7 100644 --- a/app/src/main/java/com/github/libretube/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/PlayerFragment.kt @@ -2,12 +2,12 @@ package com.github.libretube import android.Manifest import android.annotation.SuppressLint -import android.app.Activity import android.content.Context import android.content.DialogInterface import android.content.Intent import android.content.pm.ActivityInfo import android.content.pm.PackageManager +import android.graphics.Rect import android.net.Uri import android.os.Build import android.os.Build.VERSION.SDK_INT @@ -15,7 +15,6 @@ import android.os.Bundle import android.os.Environment import android.text.Html import android.util.Log -import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -816,6 +815,8 @@ class PlayerFragment : Fragment() { view?.findViewById(R.id.main_container)?.isClickable = true view?.findViewById(R.id.linLayout)?.visibility = View.GONE view?.findViewById(R.id.top_bar)?.visibility = View.GONE + val mainActivity = activity as MainActivity + mainActivity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT } else { with(motionLayout) { getConstraintSet(R.id.start).constrainHeight(R.id.player, 0) @@ -828,7 +829,11 @@ class PlayerFragment : Fragment() { } fun onUserLeaveHint() { - if (SDK_INT >= Build.VERSION_CODES.N && exoPlayer.isPlaying) { + val bounds = Rect() + val scrollView = view?.findViewById(R.id.player_scrollView) + scrollView?.getHitRect(bounds) + + if (SDK_INT >= Build.VERSION_CODES.N && exoPlayer.isPlaying && (scrollView?.getLocalVisibleRect(bounds) == true || isFullScreen)) { requireActivity().enterPictureInPictureMode() }; }