From 7f54e6ff1bd36a2cc0ee0820e3e1e347c7dbdf1d Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 4 Oct 2021 16:56:21 +0530 Subject: [PATCH] android: add comments destination --- .../kotlin/dev/msfjarvis/claw/android/ui/HottestPosts.kt | 2 ++ .../kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt | 8 ++++++++ .../kotlin/dev/msfjarvis/claw/android/ui/NetworkPosts.kt | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/HottestPosts.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/HottestPosts.kt index 0c79c13d..3cb07f20 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/HottestPosts.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/HottestPosts.kt @@ -24,6 +24,7 @@ fun HottestPosts( toggleSave: suspend (SavedPost) -> Unit, reloadPosts: () -> Unit, launchUrl: (String) -> Unit, + viewComments: (String) -> Unit, modifier: Modifier, ) { val coroutineScope = rememberCoroutineScope() @@ -40,6 +41,7 @@ fun HottestPosts( launchUrl = launchUrl, listState = listState, isSaved = isPostSaved, + viewComments = viewComments, toggleSave = { coroutineScope.launch { toggleSave(it) } }, modifier = Modifier.padding(top = 16.dp).then(modifier), ) 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 a18a440d..bcbca4cf 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 @@ -28,6 +28,7 @@ import com.google.accompanist.insets.ProvideWindowInsets import com.google.accompanist.insets.navigationBarsPadding import com.google.accompanist.insets.statusBarsPadding import com.google.accompanist.systemuicontroller.rememberSystemUiController +import dev.msfjarvis.claw.android.comments.CommentsPage import dev.msfjarvis.claw.android.viewmodel.ClawViewModel import dev.msfjarvis.claw.common.theme.LobstersTheme import dev.msfjarvis.claw.common.urllauncher.UrlLauncher @@ -92,9 +93,16 @@ fun LobstersApp( viewModel::toggleSave, viewModel::reloadPosts, urlLauncher::launch, + { navController.navigate("comments/$it") }, Modifier.nestedScroll(nestedScrollConnection), ) } + composable("comments/{postId}") { backStackEntry -> + CommentsPage( + postId = requireNotNull(backStackEntry.arguments?.getString("postId")), + getDetails = viewModel::getPostComments, + ) + } } } } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/NetworkPosts.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/NetworkPosts.kt index 8c3e7143..31d58df7 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/NetworkPosts.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/NetworkPosts.kt @@ -26,6 +26,7 @@ fun NetworkPosts( launchUrl: (String) -> Unit, isSaved: suspend (SavedPost) -> Boolean, toggleSave: (SavedPost) -> Unit, + viewComments: (String) -> Unit, modifier: Modifier = Modifier, ) { val coroutineScope = rememberCoroutineScope() @@ -42,7 +43,7 @@ fun NetworkPosts( post = dbModel, isSaved = saved, viewPost = { launchUrl(item.url.ifEmpty { item.commentsUrl }) }, - viewComments = { launchUrl(item.commentsUrl) }, + viewComments = { viewComments(item.shortId) }, toggleSave = { toggleSave(dbModel) }, modifier = Modifier.padding(bottom = 16.dp, start = 16.dp, end = 16.dp), )