From 7721eec35ae5ec8f764a0c44dfc7887ae2ef17b1 Mon Sep 17 00:00:00 2001 From: yova Date: Thu, 22 Feb 2024 22:12:37 +0100 Subject: [PATCH] make GURLs working --- .../main/java/org/lineageos/jelly/webview/WebClient.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/lineageos/jelly/webview/WebClient.kt b/app/src/main/java/org/lineageos/jelly/webview/WebClient.kt index f149754..2083255 100644 --- a/app/src/main/java/org/lineageos/jelly/webview/WebClient.kt +++ b/app/src/main/java/org/lineageos/jelly/webview/WebClient.kt @@ -61,7 +61,6 @@ internal class WebClient(private val mUrlBarController: UrlBarController) : WebV || !TextUtils.equals(url, webViewExt.lastLoadedUrl)) if (!webViewExt.isIncognito && needsLookup - && !request.isRedirect && startActivityForUrl(view, url)) { return true } else if (webViewExt.requestHeaders.isNotEmpty()) { @@ -106,7 +105,6 @@ internal class WebClient(private val mUrlBarController: UrlBarController) : WebV } catch (ex: URISyntaxException) { return false } - intent.setPackage(null) intent.addCategory(Intent.CATEGORY_BROWSABLE) intent.component = null @@ -116,23 +114,23 @@ internal class WebClient(private val mUrlBarController: UrlBarController) : WebV // If there only are browsers for this URL, handle it ourselves intent = makeHandlerChooserIntent(context, intent, url) ?: return false } else { - val packageName = intent.getPackage() + var packageName = intent.getPackage() if (packageName != null && context.packageManager.resolveActivity(intent, 0) == null) { // Explicit intent, but app is not installed - try to redirect to Play Store - val storeUri = Uri.parse("market://search?q=pname:$packageName") + if (packageName.equals("com.android.vending")) packageName = Uri.parse(url).getQueryParameter("id") + val storeUri = Uri.parse("https://play.google.com/store/apps/details?id=$packageName") intent = Intent(Intent.ACTION_VIEW, storeUri) .addCategory(Intent.CATEGORY_BROWSABLE) } } try { context.startActivity(intent) - return true } catch (e: ActivityNotFoundException) { Snackbar.make(view, context.getString(R.string.error_no_activity_found), Snackbar.LENGTH_LONG).show() } - return false + return true } private fun makeHandlerChooserIntent(context: Context, intent: Intent, url: String): Intent? {