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 b398cc43..199803cd 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 @@ -70,7 +70,7 @@ fun LobstersApp( val postActions = remember { object : PostActions { override fun viewPost(postUrl: String, commentsUrl: String) { - urlLauncher.launch(postUrl.ifEmpty { commentsUrl }) + urlLauncher.openUri(postUrl.ifEmpty { commentsUrl }) } override fun viewComments(postId: String) { @@ -78,7 +78,7 @@ fun LobstersApp( } override fun viewCommentsPage(commentsUrl: String) { - urlLauncher.launch(commentsUrl) + urlLauncher.openUri(commentsUrl) } override fun toggleSave(post: SavedPost) { diff --git a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt b/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt index 48f1f7ab..f605a167 100644 --- a/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt +++ b/common/src/androidMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt @@ -3,15 +3,16 @@ package dev.msfjarvis.claw.common.urllauncher import android.content.Context import android.net.Uri import androidx.browser.customtabs.CustomTabsIntent +import androidx.compose.ui.platform.UriHandler -actual class UrlLauncher(private val context: Context) { - actual fun launch(url: String) { +class UrlLauncher(private val context: Context) : UriHandler { + override fun openUri(uri: String) { val customTabsIntent = CustomTabsIntent.Builder() .setShareState(CustomTabsIntent.SHARE_STATE_ON) .setShowTitle(true) .setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK) .build() - customTabsIntent.launchUrl(context, Uri.parse(url)) + customTabsIntent.launchUrl(context, Uri.parse(uri)) } } diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt b/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt deleted file mode 100644 index 44b8772d..00000000 --- a/common/src/commonMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt +++ /dev/null @@ -1,5 +0,0 @@ -package dev.msfjarvis.claw.common.urllauncher - -expect class UrlLauncher { - fun launch(url: String) -} diff --git a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt b/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt index 646d2f1c..4ef49534 100644 --- a/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt +++ b/common/src/desktopMain/kotlin/dev/msfjarvis/claw/common/urllauncher/UrlLauncher.kt @@ -1,14 +1,15 @@ package dev.msfjarvis.claw.common.urllauncher +import androidx.compose.ui.platform.UriHandler import java.awt.Desktop import java.net.URI -actual class UrlLauncher { - actual fun launch(url: String) { +class UrlLauncher : UriHandler { + override fun openUri(uri: String) { if (Desktop.isDesktopSupported()) { val desktop = Desktop.getDesktop() if (desktop.isSupported(Desktop.Action.BROWSE)) { - desktop.browse(URI(url)) + desktop.browse(URI(uri)) } } } diff --git a/desktop/src/jvmMain/kotlin/main.kt b/desktop/src/jvmMain/kotlin/main.kt index 6ae95940..f662e06c 100644 --- a/desktop/src/jvmMain/kotlin/main.kt +++ b/desktop/src/jvmMain/kotlin/main.kt @@ -37,15 +37,15 @@ fun main() = application { val postActions = remember { object : PostActions { override fun viewPost(postUrl: String, commentsUrl: String) { - urlLauncher.launch(postUrl.ifEmpty { commentsUrl }) + urlLauncher.openUri(postUrl.ifEmpty { commentsUrl }) } override fun viewComments(postId: String) { - urlLauncher.launch("${LobstersApi.BASE_URL}/s/${postId}") + urlLauncher.openUri("${LobstersApi.BASE_URL}/s/${postId}") } override fun viewCommentsPage(commentsUrl: String) { - urlLauncher.launch(commentsUrl) + urlLauncher.openUri(commentsUrl) } override fun toggleSave(post: SavedPost) {}