From 48ed3c8f312cbe244ee8eddff6fac8eaf9b41d9f Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 11 Jan 2023 14:07:44 +0800 Subject: [PATCH] Avoid webview reentry --- .../com/hippo/ehviewer/ui/compose/WebviewSignInScreen.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/compose/WebviewSignInScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/compose/WebviewSignInScreen.kt index 0ebb424f1..84ff3626f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/compose/WebviewSignInScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/compose/WebviewSignInScreen.kt @@ -46,6 +46,7 @@ fun WebviewSignInScreen(navController: NavController) { javaScriptEnabled = true } webViewClient = object : WebViewClient() { + private var present = false fun parseCookies(url: HttpUrl?, cookieStrings: String?): List { if (cookieStrings == null) { return emptyList() @@ -77,6 +78,10 @@ fun WebviewSignInScreen(navController: NavController) { } override fun onPageFinished(view: WebView, url: String) { + if (present) { + view.destroy() + return + } val httpUrl = url.toHttpUrlOrNull() ?: return val cookieString = CookieManager.getInstance().getCookie(EhUrl.HOST_E) val cookies = parseCookies(httpUrl, cookieString) @@ -92,6 +97,7 @@ fun WebviewSignInScreen(navController: NavController) { addCookie(EhUrl.DOMAIN_E, cookie) } if (getId && getHash) { + present = true navController.navigate(SELECT_SITE_ROUTE_NAME) launchIO { getProfile()