common: catch errors when opening URLs

This commit is contained in:
Harsh Shandilya 2022-04-07 17:49:34 +05:30
parent 944b220905
commit 7604b776b3
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 16 additions and 2 deletions

View file

@ -1,7 +1,10 @@
package dev.msfjarvis.claw.common.urllauncher
import android.content.ActivityNotFoundException
import android.content.Context
import android.net.Uri
import android.util.Log
import android.widget.Toast
import androidx.browser.customtabs.CustomTabsIntent
import androidx.compose.ui.platform.UriHandler
@ -13,6 +16,12 @@ class UrlLauncher(private val context: Context) : UriHandler {
.setShowTitle(true)
.setColorScheme(CustomTabsIntent.COLOR_SCHEME_DARK)
.build()
customTabsIntent.launchUrl(context, Uri.parse(uri))
try {
customTabsIntent.launchUrl(context, Uri.parse(uri))
} catch (e: ActivityNotFoundException) {
val error = "Failed to open URL: $uri"
Log.d("UrlLauncher", error)
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
}
}
}

View file

@ -2,6 +2,7 @@ package dev.msfjarvis.claw.common.urllauncher
import androidx.compose.ui.platform.UriHandler
import java.awt.Desktop
import java.io.IOException
import java.net.URI
class UrlLauncher : UriHandler {
@ -9,7 +10,11 @@ class UrlLauncher : UriHandler {
if (Desktop.isDesktopSupported()) {
val desktop = Desktop.getDesktop()
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(URI(uri))
try {
desktop.browse(URI(uri))
} catch (e: IOException) {
println("Failed to open URL: $uri")
}
}
}
}