mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-13 23:32:46 -05:00
fix back nav in bottom bar
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -34,7 +34,6 @@ class TvTimeApplication: Application() {
|
||||
)
|
||||
}
|
||||
|
||||
MonetCompat.enablePaletteCompat()
|
||||
MonetCompat.chromaMultiplier = preferences.chromaMultiplier
|
||||
|
||||
MonetCompat.wallpaperColorPicker = {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user