From ced89f6f74b7380a1974fa23af18c83743e67d23 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 15 Jul 2022 22:26:22 +0200 Subject: [PATCH] fix backstack --- .../libretube/activities/MainActivity.kt | 3 +- .../libretube/activities/SettingsActivity.kt | 33 ++++++++++++------- 2 files changed, 24 insertions(+), 12 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 67b11515c..2e6046bef 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -275,7 +275,8 @@ class MainActivity : AppCompatActivity() { minimizePlayer() } catch (e: Exception) { if (navController.currentDestination?.id == startFragmentId) { - super.onBackPressed() + // close app + moveTaskToBack(true) } else { navController.popBackStack() } diff --git a/app/src/main/java/com/github/libretube/activities/SettingsActivity.kt b/app/src/main/java/com/github/libretube/activities/SettingsActivity.kt index 5adea738a..433317ff2 100644 --- a/app/src/main/java/com/github/libretube/activities/SettingsActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/SettingsActivity.kt @@ -3,9 +3,10 @@ package com.github.libretube.activities import android.os.Build import android.os.Bundle import androidx.appcompat.app.AppCompatActivity -import com.github.libretube.Globals import com.github.libretube.R import com.github.libretube.databinding.ActivitySettingsBinding +import com.github.libretube.preferences.AboutFragment +import com.github.libretube.preferences.CommunityFragment import com.github.libretube.preferences.MainSettings import com.github.libretube.util.ThemeHelper @@ -22,6 +23,8 @@ class SettingsActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = ActivitySettingsBinding.inflate(layoutInflater) + + // animate the layout transition if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { overridePendingTransition(50, 50) } @@ -43,16 +46,24 @@ class SettingsActivity : AppCompatActivity() { } override fun onBackPressed() { - if (Globals.isCurrentViewMainSettings) { - super.onBackPressed() - finishAndRemoveTask() - } else { - Globals.isCurrentViewMainSettings = true - supportFragmentManager - .beginTransaction() - .replace(R.id.settings, MainSettings()) - .commit() - changeTopBarText(getString(R.string.settings)) + when (supportFragmentManager.findFragmentById(R.id.settings)) { + is MainSettings -> { + super.onBackPressed() + finishAndRemoveTask() + } + is CommunityFragment -> { + supportFragmentManager + .beginTransaction() + .replace(R.id.settings, AboutFragment()) + .commit() + } + else -> { + supportFragmentManager + .beginTransaction() + .replace(R.id.settings, MainSettings()) + .commit() + changeTopBarText(getString(R.string.settings)) + } } }