From 8c6fa7ac1cf6fe32841cee86a1ce9669358d2335 Mon Sep 17 00:00:00 2001 From: Infi Date: Sun, 5 Mar 2023 04:11:20 +0100 Subject: [PATCH] fix: stop polluting backstack with unlive channels --- .../screens/chat/drawer/channel/ChannelList.kt | 10 +++++++--- .../java/chat/revolt/screens/chat/ChatRouterScreen.kt | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt index 7f071cd8..c276b3dd 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt @@ -67,7 +67,11 @@ fun RowScope.ChannelList( ) } ?: false, onClick = { - navController.navigate("channel/${channel.id}") + navController.navigate("channel/${channel.id}") { + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) + } + } coroutineScope.launch { drawerState.focusCenter() } }, onLongClick = { @@ -109,8 +113,8 @@ fun RowScope.ChannelList( onClick = { coroutineScope.launch { drawerState.focusCenter() } navController.navigate("channel/${ch.id}") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } }, diff --git a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt index 0efdead4..4b2172e0 100644 --- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt @@ -64,8 +64,8 @@ class ChatRouterViewModel : ViewModel() { if (serverId == "home") { navController.navigate("home") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } return @@ -73,8 +73,8 @@ class ChatRouterViewModel : ViewModel() { val channelId = RevoltAPI.serverCache[serverId]?.channels?.firstOrNull() navController.navigate("channel/$channelId") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } }