From 23366e4536e09f647e5d32f567a515409bd907c4 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sat, 23 Sep 2023 01:15:02 +0530 Subject: [PATCH] feat(android): navigate to a specific comments page via intent --- .../kotlin/dev/msfjarvis/claw/android/MainActivity.kt | 4 ++++ .../dev/msfjarvis/claw/android/ui/LobstersApp.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt index f2369f3c..0cb585e6 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt @@ -63,4 +63,8 @@ class MainActivity : ComponentActivity() { } } } + + companion object { + const val NAVIGATION_KEY = "postId" + } } 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 34e9c895..55366158 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 @@ -32,6 +32,7 @@ import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.Text import androidx.compose.material3.windowsizeclass.WindowSizeClass import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.remember @@ -52,6 +53,7 @@ import androidx.navigation.navArgument import androidx.navigation.navDeepLink import androidx.paging.compose.collectAsLazyPagingItems import com.deliveryhero.whetstone.compose.injectedViewModel +import dev.msfjarvis.claw.android.MainActivity import dev.msfjarvis.claw.android.R import dev.msfjarvis.claw.android.ui.datatransfer.DataTransferScreen import dev.msfjarvis.claw.android.ui.decorations.ClawAppBar @@ -101,6 +103,15 @@ fun LobstersApp( val navigationType = ClawNavigationType.fromSize(windowSizeClass.widthSizeClass) + val postIdOverride = context.getActivity()?.intent?.extras?.getString(MainActivity.NAVIGATION_KEY) + LaunchedEffect(false) { + if (postIdOverride != null) { + navController.navigate( + Destinations.Comments.route.replace(Destinations.Comments.placeholder, postIdOverride) + ) + } + } + val navItems = persistentListOf( NavigationItem(