From 5b0d953210358005de5764024ef83a9c9bbcd85b Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 2 Mar 2022 23:50:14 +0530 Subject: [PATCH] Revert "android: inline routes" This makes the handling in `PostActions#viewComments` slightly weird and isn't worth it until that abstraction is removed. This reverts commit de28ae2d955ac2473a26de436272889214a99d9b. --- .../dev/msfjarvis/claw/android/ui/LobstersApp.kt | 12 ++++++------ .../android/ui/decorations/ClawNavigationBar.kt | 2 +- .../kotlin/dev/msfjarvis/claw/android/ui/ext.kt | 2 +- .../claw/android/ui/navigation/Destinations.kt | 14 ++++++++++---- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index bdce22fb..10c91adc 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -84,12 +84,12 @@ fun LobstersApp( listOf( NavigationItem( label = "Hottest", - route = Destinations.Hottest.route, + route = Destinations.Hottest.getRoute(), icon = painterResource(R.drawable.ic_whatshot_24dp), ) { coroutineScope.launch { networkListState.animateScrollToItem(index = 0) } }, NavigationItem( label = "Saved", - route = Destinations.Saved.route, + route = Destinations.Saved.getRoute(), icon = painterResource(commonR.drawable.ic_favorite_24dp), ) { coroutineScope.launch { savedListState.animateScrollToItem(index = 0) } }, ) @@ -139,11 +139,11 @@ fun LobstersApp( ) { paddingValues -> NavHost( navController, - startDestination = Destinations.startDestination.route, + startDestination = Destinations.startDestination.getRoute(), ) { val uri = LobstersApi.BASE_URL composable( - route = Destinations.Hottest.route, + route = Destinations.Hottest.getRoute(), deepLinks = listOf(navDeepLink { uriPattern = uri }, navDeepLink { uriPattern = "$uri/" }), ) { @@ -157,7 +157,7 @@ fun LobstersApp( modifier = Modifier.padding(bottom = paddingValues.calculateBottomPadding()), ) } - composable(Destinations.Saved.route) { + composable(Destinations.Saved.getRoute()) { setWebUri(null) DatabasePosts( items = savedPosts, @@ -168,7 +168,7 @@ fun LobstersApp( ) } composable( - route = Destinations.Comments.route, + route = Destinations.Comments.getRoute("{postId}"), arguments = listOf(navArgument("postId") { type = NavType.StringType }), deepLinks = listOf( diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt index b5494d92..3c796c2d 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt @@ -38,7 +38,7 @@ fun ClawNavigationBar( return@NavigationBarItem } navController.popBackStack(navController.graph.startDestinationRoute!!, false) - if (navItem.route != Destinations.startDestination.route) { + if (navItem.route != Destinations.startDestination.getRoute()) { navController.navigate(navItem.route) } } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt index 17cfb8a5..54727ad4 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/ext.kt @@ -91,7 +91,7 @@ fun rememberPostActions( } override fun viewComments(postId: String) { - navController.navigate(Destinations.Comments.route) + navController.navigate(Destinations.Comments.getRoute(postId)) } override fun viewCommentsPage(commentsUrl: String) { diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt index 29cd9a53..e1f6b309 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt @@ -1,11 +1,17 @@ package dev.msfjarvis.claw.android.ui.navigation -sealed class Destinations(val route: String) { - object Hottest : Destinations("hottest") +sealed class Destinations(internal val route: String) { + object Hottest : Destinations("hottest") { + fun getRoute() = route + } - object Saved : Destinations("saved") + object Saved : Destinations("saved") { + fun getRoute() = route + } - object Comments : Destinations("comments/{postId}") + object Comments : Destinations("comments/%s") { + fun getRoute(postId: String) = route.format(postId) + } companion object { val startDestination