fix back nav in bottom bar

This commit is contained in:
Owen LeJeune
2023-06-02 18:58:15 -04:00
parent fbc1719523
commit 918a13d75a
4 changed files with 20 additions and 13 deletions

View File

@@ -71,7 +71,7 @@ dependencies {
def compose = composeVersion
def compose_material3 = "1.0.0-alpha13"
def compose_accompanist = "0.24.10-beta"
def compose_navigation = "2.4.2"
def compose_navigation = "2.5.3"
def compose_paging = "1.0.0-alpha16"
def compose_constraint_layout = "1.0.1"
def compose_activity = "1.4.0"

View File

@@ -2,6 +2,7 @@ package com.owenlejeune.tvtime
import android.os.Bundle
import android.util.Log
import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent
import androidx.compose.animation.rememberSplineBasedDecay
import androidx.compose.foundation.layout.*
@@ -22,6 +23,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.NavHost
@@ -31,6 +33,7 @@ import androidx.navigation.compose.rememberNavController
import androidx.navigation.navArgument
import com.kieronquinn.monetcompat.app.MonetCompatActivity
import com.owenlejeune.tvtime.extensions.WindowSizeClass
import com.owenlejeune.tvtime.extensions.navigateInBottomBar
import com.owenlejeune.tvtime.extensions.rememberWindowSizeClass
import com.owenlejeune.tvtime.preferences.AppPreferences
import com.owenlejeune.tvtime.ui.navigation.BottomNavItem
@@ -206,18 +209,10 @@ class MainActivity : MonetCompatActivity() {
appBarTitle: MutableState<String>,
item: BottomNavItem
) {
navigateToRoute(navController, item.route)
navController.navigateInBottomBar(item.route)
appBarTitle.value = item.name
}
private fun navigateToRoute(navController: NavController, route: String) {
navController.navigate(route) {
popUpTo(route)
launchSingleTop = true
restoreState = true
}
}
@Composable
private fun MainContent(
windowSize: WindowSizeClass,
@@ -338,8 +333,9 @@ class MainActivity : MonetCompatActivity() {
mainNavStartRoute: String = BottomNavItem.SortedItems[0].route
) {
Column {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route
BackHandler(enabled = true) {
finish()
}
MainNavGraph(
activity = this@MainActivity,

View File

@@ -34,7 +34,6 @@ class TvTimeApplication: Application() {
)
}
MonetCompat.enablePaletteCompat()
MonetCompat.chromaMultiplier = preferences.chromaMultiplier
MonetCompat.wallpaperColorPicker = {

View File

@@ -0,0 +1,12 @@
package com.owenlejeune.tvtime.extensions
import androidx.navigation.NavController
import androidx.navigation.NavGraph.Companion.findStartDestination
fun NavController.navigateInBottomBar(route: String) = navigate(route) {
popUpTo(graph.findStartDestination().id) {
inclusive = true
}
launchSingleTop = true
restoreState = true
}