From 7c5f1da1fc999b101c88b2817563af4bfbe3acb8 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 3 May 2023 19:31:17 +0800 Subject: [PATCH] Cleanup code --- .../java/com/hippo/ehviewer/ui/UrlOpener.kt | 21 +++++++------------ .../hippo/ehviewer/ui/login/SignInScreen.kt | 13 +++--------- .../ehviewer/ui/scene/GalleryCommentsScene.kt | 4 ++-- .../ehviewer/ui/scene/GalleryDetailScene.kt | 12 +++++------ .../com/hippo/preference/UrlPreference.kt | 6 ++++-- 5 files changed, 22 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt b/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt index e4d223549..ab70a79fe 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt @@ -34,19 +34,14 @@ import com.hippo.ehviewer.ui.scene.GalleryListScene import com.hippo.ehviewer.ui.scene.ProgressScene import eu.kanade.tachiyomi.ui.reader.ReaderActivity -object UrlOpener { - fun openUrl(context: Context, url: String?) { - if (url.isNullOrEmpty()) { - return - } - val uri = Uri.parse(url) - val customTabsIntent = CustomTabsIntent.Builder() - customTabsIntent.setShowTitle(true) - try { - customTabsIntent.build().launchUrl(context, uri) - } catch (e: ActivityNotFoundException) { - Toast.makeText(context, R.string.no_browser_installed, Toast.LENGTH_LONG).show() - } +private val intent = CustomTabsIntent.Builder().apply { setShowTitle(true) }.build() + +fun Context.openBrowser(url: String) { + if (url.isEmpty()) return + try { + intent.launchUrl(this, Uri.parse(url)) + } catch (e: ActivityNotFoundException) { + Toast.makeText(this, R.string.no_browser_installed, Toast.LENGTH_LONG).show() } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt index 4e0ec1ae6..0348cc7d2 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/login/SignInScreen.kt @@ -61,13 +61,12 @@ import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.EhUtils -import com.hippo.ehviewer.ui.UrlOpener +import com.hippo.ehviewer.ui.openBrowser import com.hippo.util.ExceptionUtils import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.lang.withUIContext import kotlinx.coroutines.Job -import rikka.core.util.ContextUtils.requireActivity @Composable fun SignInScreen(windowSizeClass: WindowSizeClass) { @@ -207,10 +206,7 @@ fun SignInScreen(windowSizeClass: WindowSizeClass) { Row { FilledTonalButton( onClick = { - UrlOpener.openUrl( - requireActivity(context), - EhUrl.URL_REGISTER, - ) + context.openBrowser(EhUrl.URL_REGISTER) }, Modifier .weight(1f) @@ -403,10 +399,7 @@ fun SignInScreen(windowSizeClass: WindowSizeClass) { } FilledTonalButton( onClick = { - UrlOpener.openUrl( - requireActivity(context), - EhUrl.URL_REGISTER, - ) + context.openBrowser(EhUrl.URL_REGISTER) }, Modifier .padding(horizontal = 4.dp) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt index 8c74e1fbd..118462e63 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.kt @@ -74,9 +74,9 @@ import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.parser.VoteCommentParser import com.hippo.ehviewer.dao.Filter -import com.hippo.ehviewer.ui.UrlOpener import com.hippo.ehviewer.ui.jumpToReaderByPage import com.hippo.ehviewer.ui.navWithUrl +import com.hippo.ehviewer.ui.openBrowser import com.hippo.ehviewer.ui.scene.GalleryListScene.Companion.toStartArgs import com.hippo.text.URLImageGetter import com.hippo.util.ExceptionUtils @@ -490,7 +490,7 @@ class GalleryCommentsScene : BaseToolbarScene(), View.OnClickListener, OnRefresh if (span is URLSpan) { if (!activity.jumpToReaderByPage(span.url, detail)) { if (!findNavController().navWithUrl(span.url)) { - UrlOpener.openUrl(activity, span.url) + activity.openBrowser(span.url) } } } else { diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index c1a6744d3..1e7477300 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -154,9 +154,9 @@ import com.hippo.ehviewer.spider.SpiderQueen.Companion.MODE_READ import com.hippo.ehviewer.ui.CommonOperations import com.hippo.ehviewer.ui.GalleryInfoBottomSheet import com.hippo.ehviewer.ui.MainActivity -import com.hippo.ehviewer.ui.UrlOpener import com.hippo.ehviewer.ui.addToFavorites import com.hippo.ehviewer.ui.login.LocalNavController +import com.hippo.ehviewer.ui.openBrowser import com.hippo.ehviewer.ui.removeFromFavorites import com.hippo.ehviewer.ui.scene.GalleryListScene.Companion.toStartArgs import com.hippo.ehviewer.ui.widget.CrystalCard @@ -348,11 +348,9 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener { } private fun actionOpenInOtherApp() { - val url = galleryDetailUrl - val activity: Activity? = mainActivity - if (null != url && null != activity) { - UrlOpener.openUrl(activity, url) - } + val url = galleryDetailUrl ?: return + val activity: Activity = mainActivity ?: return + activity.openBrowser(url) } private fun actionRefresh() { @@ -1377,7 +1375,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener { } R.id.show_definition -> { - UrlOpener.openUrl(context, EhUrl.getTagDefinitionUrl(temp)) + context.openBrowser(EhUrl.getTagDefinitionUrl(temp)) } R.id.add_filter -> { diff --git a/app/src/main/java/com/hippo/preference/UrlPreference.kt b/app/src/main/java/com/hippo/preference/UrlPreference.kt index eddd56774..5fd2dc9fa 100644 --- a/app/src/main/java/com/hippo/preference/UrlPreference.kt +++ b/app/src/main/java/com/hippo/preference/UrlPreference.kt @@ -19,7 +19,7 @@ import android.content.Context import android.util.AttributeSet import androidx.preference.Preference import com.hippo.ehviewer.R -import com.hippo.ehviewer.ui.UrlOpener +import com.hippo.ehviewer.ui.openBrowser class UrlPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : Preference(context, attrs) { @@ -36,6 +36,8 @@ class UrlPreference @JvmOverloads constructor(context: Context, attrs: Attribute } override fun onClick() { - UrlOpener.openUrl(context, mUrl) + if (mUrl != null) { + context.openBrowser(mUrl) + } } }