fix backstack

This commit is contained in:
Bnyro 2022-07-15 22:26:22 +02:00
parent 49848be904
commit ced89f6f74
2 changed files with 24 additions and 12 deletions

View File

@ -275,7 +275,8 @@ class MainActivity : AppCompatActivity() {
minimizePlayer() minimizePlayer()
} catch (e: Exception) { } catch (e: Exception) {
if (navController.currentDestination?.id == startFragmentId) { if (navController.currentDestination?.id == startFragmentId) {
super.onBackPressed() // close app
moveTaskToBack(true)
} else { } else {
navController.popBackStack() navController.popBackStack()
} }

View File

@ -3,9 +3,10 @@ package com.github.libretube.activities
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.github.libretube.Globals
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.databinding.ActivitySettingsBinding 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.preferences.MainSettings
import com.github.libretube.util.ThemeHelper import com.github.libretube.util.ThemeHelper
@ -22,6 +23,8 @@ class SettingsActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = ActivitySettingsBinding.inflate(layoutInflater) binding = ActivitySettingsBinding.inflate(layoutInflater)
// animate the layout transition
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
overridePendingTransition(50, 50) overridePendingTransition(50, 50)
} }
@ -43,16 +46,24 @@ class SettingsActivity : AppCompatActivity() {
} }
override fun onBackPressed() { override fun onBackPressed() {
if (Globals.isCurrentViewMainSettings) { when (supportFragmentManager.findFragmentById(R.id.settings)) {
super.onBackPressed() is MainSettings -> {
finishAndRemoveTask() super.onBackPressed()
} else { finishAndRemoveTask()
Globals.isCurrentViewMainSettings = true }
supportFragmentManager is CommunityFragment -> {
.beginTransaction() supportFragmentManager
.replace(R.id.settings, MainSettings()) .beginTransaction()
.commit() .replace(R.id.settings, AboutFragment())
changeTopBarText(getString(R.string.settings)) .commit()
}
else -> {
supportFragmentManager
.beginTransaction()
.replace(R.id.settings, MainSettings())
.commit()
changeTopBarText(getString(R.string.settings))
}
} }
} }