common: add UrlLauncher

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-06-04 09:40:06 +05:30
parent a5473af699
commit b166755afa
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
5 changed files with 40 additions and 1 deletions

View file

@ -26,7 +26,7 @@ kotlin {
}
}
val commonTest by getting { dependencies { implementation(kotlin("test")) } }
val androidMain by getting
val androidMain by getting { dependencies { implementation(libs.androidx.browser) } }
val androidTest by getting
val desktopMain by getting
val desktopTest by getting

View file

@ -0,0 +1,17 @@
package dev.msfjarvis.claw.common.urllauncher
import android.content.Context
import android.net.Uri
import androidx.browser.customtabs.CustomTabsIntent
actual class UrlLauncher(private val context: Context) {
actual fun launch(url: String) {
val customTabsIntent =
CustomTabsIntent.Builder()
.setShareState(CustomTabsIntent.SHARE_STATE_ON)
.setShowTitle(true)
.setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK)
.build()
customTabsIntent.launchUrl(context, Uri.parse(url))
}
}

View file

@ -0,0 +1,5 @@
package dev.msfjarvis.claw.common.urllauncher
expect class UrlLauncher {
fun launch(url: String)
}

View file

@ -0,0 +1,15 @@
package dev.msfjarvis.claw.common.urllauncher
import java.awt.Desktop
import java.net.URI
actual class UrlLauncher {
actual fun launch(url: String) {
if (Desktop.isDesktopSupported()) {
val desktop = Desktop.getDesktop()
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(URI(url))
}
}
}
}