Avoids crashing the app in weird urls.

This commit is contained in:
Vitor Pamplona
2026-03-24 13:30:36 -04:00
parent 09054d6ac5
commit 2a2c61973e
@@ -22,9 +22,11 @@ package com.vitorpamplona.amethyst.commons.richtext
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import com.vitorpamplona.quartz.utils.DualCase import com.vitorpamplona.quartz.utils.DualCase
import com.vitorpamplona.quartz.utils.Log
import com.vitorpamplona.quartz.utils.startsWithAny import com.vitorpamplona.quartz.utils.startsWithAny
import com.vitorpamplona.quartz.utils.urldetector.Url import com.vitorpamplona.quartz.utils.urldetector.Url
import com.vitorpamplona.quartz.utils.urldetector.detection.UrlDetector import com.vitorpamplona.quartz.utils.urldetector.detection.UrlDetector
import kotlinx.coroutines.CancellationException
@Stable @Stable
class Urls( class Urls(
@@ -77,6 +79,7 @@ class UrlParser {
val blossom = mutableSetOf<String>() val blossom = mutableSetOf<String>()
urls.forEach { url -> urls.forEach { url ->
try {
if (url.isValidTopLevelDomain()) { if (url.isValidTopLevelDomain()) {
if (url.wroteWithSchema()) { if (url.wroteWithSchema()) {
if (url.originalUrl.startsWithAny(httpScheme)) { if (url.originalUrl.startsWithAny(httpScheme)) {
@@ -102,6 +105,10 @@ class UrlParser {
} }
} }
} }
} catch (e: Exception) {
if (e is CancellationException) throw e
Log.e("UrlParser", "Trying to parse url `${url.originalUrl}` from `$content`", e)
}
} }
return Urls( return Urls(