diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt
index 7875c80b15..5a69d282b4 100644
--- a/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt
+++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/MainActivity.kt
@@ -19,6 +19,7 @@ import chat.simplex.common.views.chatlist.*
import chat.simplex.common.views.helpers.*
import chat.simplex.common.views.onboarding.*
import chat.simplex.common.platform.*
+import chat.simplex.res.MR
import kotlinx.coroutines.*
import java.lang.ref.WeakReference
@@ -149,7 +150,12 @@ fun processIntent(intent: Intent?) {
"android.intent.action.VIEW" -> {
val uri = intent.data
if (uri != null) {
- chatModel.appOpenUrl.value = null to uri.toURI()
+ val transformedUri = uri.toURIOrNull()
+ if (transformedUri != null) {
+ chatModel.appOpenUrl.value = null to transformedUri
+ } else {
+ AlertManager.shared.showAlertMsg(generalGetString(MR.strings.error_parsing_uri_title), generalGetString(MR.strings.error_parsing_uri_desc))
+ }
}
}
}
diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/helpers/Extensions.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/helpers/Extensions.kt
index eb87dd1e28..540533e5ad 100644
--- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/helpers/Extensions.kt
+++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/helpers/Extensions.kt
@@ -18,5 +18,6 @@ val NotificationsMode.requiresIgnoringBattery
lateinit var APPLICATION_ID: String
fun Uri.toURI(): URI = URI(toString().replace("\n", ""))
+fun Uri.toURIOrNull(): URI? = try { toURI() } catch (e: Exception) { null }
fun URI.toUri(): Uri = Uri.parse(toString())
diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt
index 9ee816bb76..9d1e0c4e97 100644
--- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt
+++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt
@@ -241,10 +241,15 @@ private fun calculateInSampleSize(options: BitmapFactory.Options, reqWidth: Int,
}
actual fun getFileName(uri: URI): String? {
- return androidAppContext.contentResolver.query(uri.toUri(), null, null, null, null)?.use { cursor ->
- val nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
- cursor.moveToFirst()
- cursor.getString(nameIndex)
+ return try {
+ androidAppContext.contentResolver.query(uri.toUri(), null, null, null, null)?.use { cursor ->
+ val nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
+ cursor.moveToFirst()
+ // Can make an exception
+ cursor.getString(nameIndex)
+ }
+ } catch (e: Exception) {
+ null
}
}
diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
index 13daeef91e..f5272ce7fc 100644
--- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
+++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml
@@ -13,6 +13,8 @@
You will connect to all group members.
Connect
Connect incognito
+ Invalid link
+ Please check that SimpleX link is correct.
Opening database…