make GURLs working

gugelfrei
yova 3 months ago
parent 6817039178
commit 7721eec35a

@ -61,7 +61,6 @@ internal class WebClient(private val mUrlBarController: UrlBarController) : WebV
|| !TextUtils.equals(url, webViewExt.lastLoadedUrl)) || !TextUtils.equals(url, webViewExt.lastLoadedUrl))
if (!webViewExt.isIncognito if (!webViewExt.isIncognito
&& needsLookup && needsLookup
&& !request.isRedirect
&& startActivityForUrl(view, url)) { && startActivityForUrl(view, url)) {
return true return true
} else if (webViewExt.requestHeaders.isNotEmpty()) { } else if (webViewExt.requestHeaders.isNotEmpty()) {
@ -106,7 +105,6 @@ internal class WebClient(private val mUrlBarController: UrlBarController) : WebV
} catch (ex: URISyntaxException) { } catch (ex: URISyntaxException) {
return false return false
} }
intent.setPackage(null)
intent.addCategory(Intent.CATEGORY_BROWSABLE) intent.addCategory(Intent.CATEGORY_BROWSABLE)
intent.component = null 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 // If there only are browsers for this URL, handle it ourselves
intent = makeHandlerChooserIntent(context, intent, url) ?: return false intent = makeHandlerChooserIntent(context, intent, url) ?: return false
} else { } else {
val packageName = intent.getPackage() var packageName = intent.getPackage()
if (packageName != null if (packageName != null
&& context.packageManager.resolveActivity(intent, 0) == null) { && context.packageManager.resolveActivity(intent, 0) == null) {
// Explicit intent, but app is not installed - try to redirect to Play Store // 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) intent = Intent(Intent.ACTION_VIEW, storeUri)
.addCategory(Intent.CATEGORY_BROWSABLE) .addCategory(Intent.CATEGORY_BROWSABLE)
} }
} }
try { try {
context.startActivity(intent) context.startActivity(intent)
return true
} catch (e: ActivityNotFoundException) { } catch (e: ActivityNotFoundException) {
Snackbar.make(view, context.getString(R.string.error_no_activity_found), Snackbar.make(view, context.getString(R.string.error_no_activity_found),
Snackbar.LENGTH_LONG).show() Snackbar.LENGTH_LONG).show()
} }
return false return true
} }
private fun makeHandlerChooserIntent(context: Context, intent: Intent, url: String): Intent? { private fun makeHandlerChooserIntent(context: Context, intent: Intent, url: String): Intent? {

Loading…
Cancel
Save