From cb98dc8b32a5b9dcbaedacbfe766883a2fd26d50 Mon Sep 17 00:00:00 2001 From: yunsehwan Date: Mon, 30 Sep 2024 19:32:34 +0900 Subject: [PATCH] =?UTF-8?q?[FIX]=20=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0=20?= =?UTF-8?q?=EB=82=B4=EC=9A=A9=20=EB=B0=98=EC=98=81=20-=20url=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=EC=9C=A0=ED=9A=A8=EC=84=B1=20=EA=B2=80=EC=A6=9D?= =?UTF-8?q?=EC=8B=9C=20=EC=A1=B0=EA=B1=B4=20=EB=8B=A8=EC=88=9C=ED=99=94=20?= =?UTF-8?q?-=20SDK=2027=20=EC=9D=B4=ED=95=98=EC=9D=BC=20=EB=95=8C=20?= =?UTF-8?q?=ED=81=B4=EB=A6=BD=EB=B3=B4=EB=93=9C=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=ED=99=94=20=EB=88=84=EB=9D=BD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/pokitmons/pokit/MainActivity.kt | 4 ++++ .../pokit/home/model/ClipboardLinkManager.kt | 23 ++++++------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/pokitmons/pokit/MainActivity.kt b/app/src/main/java/pokitmons/pokit/MainActivity.kt index 21b09f3..3c78fe9 100644 --- a/app/src/main/java/pokitmons/pokit/MainActivity.kt +++ b/app/src/main/java/pokitmons/pokit/MainActivity.kt @@ -1,5 +1,6 @@ package pokitmons.pokit +import android.content.ClipData import android.content.ClipboardManager import android.os.Build import android.os.Bundle @@ -73,6 +74,9 @@ class MainActivity : ComponentActivity() { ClipboardLinkManager.setClipboardLink(clipboardTextData) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { clipboardManager.clearPrimaryClip() + } else { + val emptyClip = ClipData.newPlainText("", "") + clipboardManager.setPrimaryClip(emptyClip) } } } diff --git a/feature/home/src/main/java/pokitmons/pokit/home/model/ClipboardLinkManager.kt b/feature/home/src/main/java/pokitmons/pokit/home/model/ClipboardLinkManager.kt index 42550dc..e53f1ff 100644 --- a/feature/home/src/main/java/pokitmons/pokit/home/model/ClipboardLinkManager.kt +++ b/feature/home/src/main/java/pokitmons/pokit/home/model/ClipboardLinkManager.kt @@ -2,16 +2,14 @@ package pokitmons.pokit.home.model import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.launch -import pokitmons.pokit.core.feature.flow.EventFlow -import pokitmons.pokit.core.feature.flow.MutableEventFlow -import pokitmons.pokit.core.feature.flow.asEventFlow -import java.util.Locale -import java.util.regex.Pattern object ClipboardLinkManager { - private val _clipboardLinkUrl: MutableEventFlow = MutableEventFlow() - val clipboardLinkUrl: EventFlow = _clipboardLinkUrl.asEventFlow() + private val _clipboardLinkUrl: MutableSharedFlow = MutableSharedFlow() + val clipboardLinkUrl: SharedFlow = _clipboardLinkUrl.asSharedFlow() fun setClipboardLink(linkUrl: String) { CoroutineScope(Dispatchers.IO).launch { @@ -20,14 +18,7 @@ object ClipboardLinkManager { } fun checkUrlIsValid(url: String): Boolean { - val urlPattern = ( - "^(http://|https://)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}" + - "(:[0-9]{1,5})?(/.*)?$" - ) - - val pattern = Pattern.compile(urlPattern) - val matcher = pattern.matcher(url.lowercase(Locale.getDefault())) - - return matcher.matches() + val isValidUrl = url.startsWith("http://") || url.startsWith("https://") + return isValidUrl } }