From 6c46958bc26637de09911976060135b1c8d3b6bf Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 5 Jul 2022 17:54:42 +0200 Subject: [PATCH 1/4] fix back behavior --- .../libretube/activities/MainActivity.kt | 58 +++++++++---------- app/src/main/res/values/array.xml | 2 +- 2 files changed, 29 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/github/libretube/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/activities/MainActivity.kt index 967ab1cfc..3613db970 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -45,6 +45,7 @@ class MainActivity : AppCompatActivity() { lateinit var binding: ActivityMainBinding lateinit var navController: NavController + private var startFragmentId = R.id.homeFragment override fun onCreate(savedInstanceState: Bundle?) { DynamicColors.applyToActivityIfAvailable(this) @@ -91,7 +92,7 @@ class MainActivity : AppCompatActivity() { false // save start tab fragment id - val fragmentId = when (PreferenceHelper.getString(this, "default_tab", "home")) { + startFragmentId = when (PreferenceHelper.getString(this, "default_tab", "home")) { "home" -> R.id.homeFragment "subscriptions" -> R.id.subscriptionsFragment "library" -> R.id.libraryFragment @@ -99,23 +100,23 @@ class MainActivity : AppCompatActivity() { } // set default tab as start fragment - navController.graph.setStartDestination(fragmentId) + navController.graph.setStartDestination(startFragmentId) // navigate to the default fragment - navController.navigate(fragmentId) + navController.navigate(startFragmentId) binding.bottomNav.setOnItemSelectedListener { + // clear backstack if it's the start fragment + if (startFragmentId == it.itemId) navController.backQueue.clear() + // set menu item on click listeners when (it.itemId) { R.id.homeFragment -> { - navController.backQueue.clear() navController.navigate(R.id.homeFragment) } R.id.subscriptionsFragment -> { - // navController.backQueue.clear() navController.navigate(R.id.subscriptionsFragment) } R.id.libraryFragment -> { - // navController.backQueue.clear() navController.navigate(R.id.libraryFragment) } } @@ -268,33 +269,30 @@ class MainActivity : AppCompatActivity() { } override fun onBackPressed() { - try { - val mainMotionLayout = binding.mainMotionLayout - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - findViewById(R.id.main_container).isClickable = false - val motionLayout = findViewById(R.id.playerMotionLayout) - motionLayout.transitionToEnd() - requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT - with(motionLayout) { - getConstraintSet(R.id.start).constrainHeight(R.id.player, 0) - enableTransition(R.id.yt_transition, true) - } - findViewById(R.id.linLayout).visibility = View.VISIBLE - isFullScreen = false - } else { - navController.popBackStack() - } - } catch (e: Exception) { - try { - navController.popBackStack() - moveTaskToBack(true) - } catch (e: Exception) { - super.onBackPressed() - } + if (binding.mainMotionLayout.progress == 0F) { + try { minimizePlayer() } catch (e: Exception) {} + } else if (navController.currentDestination?.id == startFragmentId) { + navController.popBackStack() + super.onBackPressed() + } else { + navController.popBackStack() } } + private fun minimizePlayer() { + binding.mainMotionLayout.transitionToEnd() + findViewById(R.id.main_container).isClickable = false + val motionLayout = findViewById(R.id.playerMotionLayout) + motionLayout.transitionToEnd() + requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT + with(motionLayout) { + getConstraintSet(R.id.start).constrainHeight(R.id.player, 0) + enableTransition(R.id.yt_transition, true) + } + findViewById(R.id.linLayout).visibility = View.VISIBLE + isFullScreen = false + } + override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) val orientation = newConfig.orientation diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index d74739d74..a1e632a28 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -608,7 +608,7 @@ @string/birdIcon - MainActivity + .activities.MainActivity IconLegacy IconGradient IconFire From 07c6513374e917e7608cc107c60c457869127078 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 5 Jul 2022 17:55:51 +0200 Subject: [PATCH 2/4] fix icon change not working --- app/src/main/res/values/array.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index a1e632a28..f4bf67ff9 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -608,7 +608,7 @@ @string/birdIcon - .activities.MainActivity + activities.MainActivity IconLegacy IconGradient IconFire From 9d7e4548bd5648abf4e48cbded6932dc57e79764 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 5 Jul 2022 17:56:55 +0200 Subject: [PATCH 3/4] fix fullcreen button color --- app/src/main/res/layout/exo_styled_player_control_view.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/exo_styled_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml index b9d23d34b..ddb5a8a18 100644 --- a/app/src/main/res/layout/exo_styled_player_control_view.xml +++ b/app/src/main/res/layout/exo_styled_player_control_view.xml @@ -180,7 +180,8 @@ + android:src="@drawable/ic_fullscreen" + app:tint="@android:color/white" /> From 67bbf0104bb3ce33b1abb2231da397c19a23ab52 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 5 Jul 2022 17:58:18 +0200 Subject: [PATCH 4/4] fix string --- .../java/com/github/libretube/preferences/PlayerSettings.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt b/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt index c4d98e939..f2fdc3fca 100644 --- a/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt +++ b/app/src/main/java/com/github/libretube/preferences/PlayerSettings.kt @@ -12,6 +12,6 @@ class PlayerSettings : PreferenceFragmentCompat() { setPreferencesFromResource(R.xml.player_settings, rootKey) val settingsActivity = activity as SettingsActivity - settingsActivity.changeTopBarText(getString(R.string.player)) + settingsActivity.changeTopBarText(getString(R.string.audio_video)) } }