From a73871f42180995f1b87af3a67e0b779eb0abaa4 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 15 Nov 2021 22:34:14 +0530 Subject: [PATCH] android: add support for links in recents --- .../kotlin/dev/msfjarvis/claw/android/MainActivity.kt | 10 +++++++++- .../dev/msfjarvis/claw/android/ui/LobstersApp.kt | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) 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 d3344930..8a287aee 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/MainActivity.kt @@ -1,5 +1,7 @@ package dev.msfjarvis.claw.android +import android.app.assist.AssistContent +import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -14,6 +16,7 @@ import javax.inject.Inject class MainActivity : ComponentActivity() { @Inject lateinit var urlLauncher: UrlLauncher + private var webUri: String? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -22,7 +25,12 @@ class MainActivity : ComponentActivity() { setContent { LobstersApp( urlLauncher = urlLauncher, - ) + ) { url -> webUri = url } } } + + override fun onProvideAssistContent(outContent: AssistContent?) { + super.onProvideAssistContent(outContent) + webUri?.let { outContent?.webUri = Uri.parse(it) } + } } 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 f9ea1454..248232e4 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 @@ -44,6 +44,7 @@ private const val ScrollDelta = 50 fun LobstersApp( viewModel: ClawViewModel = viewModel(), urlLauncher: UrlLauncher, + setWebUri: (String) -> Unit, ) { val copydown = remember { CopyDown() } val systemUiController = rememberSystemUiController() @@ -117,6 +118,7 @@ fun LobstersApp( ) { paddingValues -> NavHost(navController, startDestination = Destinations.Hottest) { composable(Destinations.Hottest) { + setWebUri("https://lobste.rs/") HottestPosts( items, listState, @@ -127,8 +129,10 @@ fun LobstersApp( ) } composable(Destinations.Comments.format("{postId}")) { backStackEntry -> + val postId = requireNotNull(backStackEntry.arguments?.getString("postId")) + setWebUri("https://lobste.rs/s/$postId") CommentsPage( - postId = requireNotNull(backStackEntry.arguments?.getString("postId")), + postId = postId, getDetails = viewModel::getPostComments, htmlToMarkdown = { source -> copydown.convert(source) }, paddingValues = paddingValues,