From 0f72df6e70e50925adc889e6e601e4cfe4cfc06d Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 27 Dec 2022 18:48:09 +0100 Subject: [PATCH] Turn #1560 into an option --- .../github/libretube/constants/PreferenceKeys.kt | 1 + .../libretube/ui/fragments/PlayerFragment.kt | 2 +- .../libretube/ui/preferences/PlayerSettings.kt | 14 ++++++++++++++ .../java/com/github/libretube/util/PlayerHelper.kt | 6 ++++++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/player_settings.xml | 6 ++++++ 6 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt index 978a7da9d..2e6a9057b 100644 --- a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt +++ b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt @@ -86,6 +86,7 @@ object PreferenceKeys { const val PLAYER_PINCH_CONTROL = "player_pinch_control" const val CAPTIONS_SIZE = "captions_size" const val DOUBLE_TAP_TO_SEEK = "double_tap_seek" + const val PAUSE_ON_QUIT = "pause_on_quit" /** * Background mode diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 04d3fc591..fc1a1433b 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -1442,7 +1442,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions { activity?.enterPictureInPictureMode(getPipParams()) return } - if (!PlayerHelper.pipEnabled) exoPlayer.pause() + if (PlayerHelper.pauseOnQuit) exoPlayer.pause() } @RequiresApi(Build.VERSION_CODES.O) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt index d0666ef87..b3015412a 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt @@ -2,6 +2,8 @@ package com.github.libretube.ui.preferences import android.content.ActivityNotFoundException import android.content.Intent +import android.os.Build +import android.os.Build.VERSION.SDK_INT import android.os.Bundle import android.provider.Settings import android.widget.Toast @@ -59,6 +61,18 @@ class PlayerSettings : BasePreferenceFragment() { } true } + + val pictureInPicture = findPreference( + PreferenceKeys.PICTURE_IN_PICTURE + )!! + val pauseOnQuit = findPreference(PreferenceKeys.PAUSE_ON_QUIT) + pictureInPicture.isVisible = SDK_INT >= Build.VERSION_CODES.O + pauseOnQuit?.isVisible = !pictureInPicture.isVisible || !pictureInPicture.isChecked + + pictureInPicture.setOnPreferenceChangeListener { _, newValue -> + pauseOnQuit?.isVisible = !(newValue as Boolean) + true + } } private fun setupSubtitlePref(preference: ListPreference) { diff --git a/app/src/main/java/com/github/libretube/util/PlayerHelper.kt b/app/src/main/java/com/github/libretube/util/PlayerHelper.kt index 45d7fb076..c4a65a880 100644 --- a/app/src/main/java/com/github/libretube/util/PlayerHelper.kt +++ b/app/src/main/java/com/github/libretube/util/PlayerHelper.kt @@ -320,6 +320,12 @@ object PlayerHelper { true ) + val pauseOnQuit: Boolean + get() = PreferenceHelper.getBoolean( + PreferenceKeys.PAUSE_ON_QUIT, + false + ) + fun getDefaultResolution(context: Context): String { return if (NetworkHelper.isNetworkMobile(context)) { PreferenceHelper.getString( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b059131ab..3711b9453 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -421,6 +421,7 @@ Hide watched videos from feed Don\'t show videos being watched more than 90% in the subscriptions tab. Playlist URL + Pause on quit Download Service diff --git a/app/src/main/res/xml/player_settings.xml b/app/src/main/res/xml/player_settings.xml index 8434460f9..8b9d67fc1 100644 --- a/app/src/main/res/xml/player_settings.xml +++ b/app/src/main/res/xml/player_settings.xml @@ -38,6 +38,12 @@ app:key="picture_in_picture" app:title="@string/picture_in_picture" /> + +