From 446672b10e5874c0a6bda803a6cafc8365809344 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Wed, 7 Jun 2023 18:13:30 +0800 Subject: [PATCH] Fix bug with Android save URL regex --- .../app/omnivore/omnivore/ui/save/SaveViewModel.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/save/SaveViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/save/SaveViewModel.kt index de4eea0d6..b2376d051 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/save/SaveViewModel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/save/SaveViewModel.kt @@ -18,6 +18,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import java.util.* +import java.util.regex.Pattern import javax.inject.Inject enum class SaveState { @@ -46,9 +47,14 @@ class SaveViewModel @Inject constructor( datastoreRepo.getString(DatastoreKeys.omnivoreAuthToken) } - fun cleanUrl(url: String): String? { - return Regex("https?:\\/\\/(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)") - .findAll(url).map { it.value }.first() + fun cleanUrl(text: String): String? { + val pattern = Pattern.compile("\\b(?:https?|ftp)://\\S+") + val matcher = pattern.matcher(text) + + if (matcher.find()) { + return matcher.group() + } + return null } fun saveURL(url: String) {