mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-20 18:50:54 -05:00
fix back nav in bottom bar
This commit is contained in:
@@ -71,7 +71,7 @@ dependencies {
|
|||||||
def compose = composeVersion
|
def compose = composeVersion
|
||||||
def compose_material3 = "1.0.0-alpha13"
|
def compose_material3 = "1.0.0-alpha13"
|
||||||
def compose_accompanist = "0.24.10-beta"
|
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_paging = "1.0.0-alpha16"
|
||||||
def compose_constraint_layout = "1.0.1"
|
def compose_constraint_layout = "1.0.1"
|
||||||
def compose_activity = "1.4.0"
|
def compose_activity = "1.4.0"
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.owenlejeune.tvtime
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.compose.animation.rememberSplineBasedDecay
|
import androidx.compose.animation.rememberSplineBasedDecay
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
@@ -22,6 +23,7 @@ import androidx.compose.ui.res.stringResource
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
|
import androidx.navigation.NavGraph.Companion.findStartDestination
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.NavType
|
import androidx.navigation.NavType
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
@@ -31,6 +33,7 @@ import androidx.navigation.compose.rememberNavController
|
|||||||
import androidx.navigation.navArgument
|
import androidx.navigation.navArgument
|
||||||
import com.kieronquinn.monetcompat.app.MonetCompatActivity
|
import com.kieronquinn.monetcompat.app.MonetCompatActivity
|
||||||
import com.owenlejeune.tvtime.extensions.WindowSizeClass
|
import com.owenlejeune.tvtime.extensions.WindowSizeClass
|
||||||
|
import com.owenlejeune.tvtime.extensions.navigateInBottomBar
|
||||||
import com.owenlejeune.tvtime.extensions.rememberWindowSizeClass
|
import com.owenlejeune.tvtime.extensions.rememberWindowSizeClass
|
||||||
import com.owenlejeune.tvtime.preferences.AppPreferences
|
import com.owenlejeune.tvtime.preferences.AppPreferences
|
||||||
import com.owenlejeune.tvtime.ui.navigation.BottomNavItem
|
import com.owenlejeune.tvtime.ui.navigation.BottomNavItem
|
||||||
@@ -206,18 +209,10 @@ class MainActivity : MonetCompatActivity() {
|
|||||||
appBarTitle: MutableState<String>,
|
appBarTitle: MutableState<String>,
|
||||||
item: BottomNavItem
|
item: BottomNavItem
|
||||||
) {
|
) {
|
||||||
navigateToRoute(navController, item.route)
|
navController.navigateInBottomBar(item.route)
|
||||||
appBarTitle.value = item.name
|
appBarTitle.value = item.name
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun navigateToRoute(navController: NavController, route: String) {
|
|
||||||
navController.navigate(route) {
|
|
||||||
popUpTo(route)
|
|
||||||
launchSingleTop = true
|
|
||||||
restoreState = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun MainContent(
|
private fun MainContent(
|
||||||
windowSize: WindowSizeClass,
|
windowSize: WindowSizeClass,
|
||||||
@@ -338,8 +333,9 @@ class MainActivity : MonetCompatActivity() {
|
|||||||
mainNavStartRoute: String = BottomNavItem.SortedItems[0].route
|
mainNavStartRoute: String = BottomNavItem.SortedItems[0].route
|
||||||
) {
|
) {
|
||||||
Column {
|
Column {
|
||||||
val navBackStackEntry by navController.currentBackStackEntryAsState()
|
BackHandler(enabled = true) {
|
||||||
val currentRoute = navBackStackEntry?.destination?.route
|
finish()
|
||||||
|
}
|
||||||
|
|
||||||
MainNavGraph(
|
MainNavGraph(
|
||||||
activity = this@MainActivity,
|
activity = this@MainActivity,
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ class TvTimeApplication: Application() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
MonetCompat.enablePaletteCompat()
|
|
||||||
MonetCompat.chromaMultiplier = preferences.chromaMultiplier
|
MonetCompat.chromaMultiplier = preferences.chromaMultiplier
|
||||||
|
|
||||||
MonetCompat.wallpaperColorPicker = {
|
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