diff options
author | Vivek Sekhar <vsekhar@codeaurora.org> | 2016-02-05 13:59:50 +0100 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2016-02-05 15:26:21 +0100 |
commit | 6b2768961fe0c55b412711c6cab19232184c5e39 (patch) | |
tree | c0a2b26b5e55313231f267dc6a63c49da4069454 | |
parent | 5fb7614ab614d478c567005d17e77fbffca7fe3e (diff) | |
download | android_packages_apps_Gello-6b2768961fe0c55b412711c6cab19232184c5e39.tar.gz android_packages_apps_Gello-6b2768961fe0c55b412711c6cab19232184c5e39.tar.bz2 android_packages_apps_Gello-6b2768961fe0c55b412711c6cab19232184c5e39.zip |
Fix issues with shouldOverrideUrlLoading
- Add support for support deeplinking fallback
- Fix lookup of item based on package name directly on play store
- Fix mailto protocol to return true always
- Fix log tags
Change-Id: I1abd30b12df3dd5c7077097834a2ce284f2d7a36
CR-Fixed: SWE-6553
-rwxr-xr-x | src/com/android/browser/UrlHandler.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/com/android/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java index 40f08f00..d372ec3d 100755 --- a/src/com/android/browser/UrlHandler.java +++ b/src/com/android/browser/UrlHandler.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.regex.Matcher; import org.codeaurora.swe.WebView; +import org.codeaurora.swe.util.SWEUrlUtils; public class UrlHandler { @@ -45,6 +46,7 @@ public class UrlHandler { /* package */ final static String SCHEME_WTAI_SD = "wtai://wp/sd;"; /* package */ final static String SCHEME_WTAI_AP = "wtai://wp/ap;"; /* package */ final static String SCHEME_MAILTO = "mailto:"; + public static final String EXTRA_BROWSER_FALLBACK_URL = "browser_fallback_url"; Controller mController; Activity mActivity; @@ -139,11 +141,10 @@ public class UrlHandler { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); mActivity.startActivity(intent); } catch (URISyntaxException ex) { - Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage()); + Log.w(TAG, "Bad URI " + url + ": " + ex.getMessage()); return false; } catch (ActivityNotFoundException ex) { - Log.w("Browser", "No Activity Found for " + url); - return false; + Log.w(TAG, "No Activity Found for " + url); } return true; @@ -168,7 +169,7 @@ public class UrlHandler { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); mActivity.startActivity(intent); } catch (URISyntaxException ex) { - Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage()); + Log.w(TAG, "Bad URI " + url + ": " + ex.getMessage()); return false; } catch (ActivityNotFoundException ex) { String downloadUrl = mActivity.getResources().getString(R.string.estore_homepage); @@ -186,10 +187,19 @@ public class UrlHandler { try { intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME); } catch (URISyntaxException ex) { - Log.w("Browser", "Bad URI " + url + ": " + ex.getMessage()); + Log.w(TAG, "Bad URI " + url + ": " + ex.getMessage()); return false; } + // handle fallback url for deep linking apps + String browserFallbackUrl = intent.getStringExtra(EXTRA_BROWSER_FALLBACK_URL); + if (browserFallbackUrl != null + && SWEUrlUtils.isValidForIntentFallbackNavigation(browserFallbackUrl)) { + mController.loadUrl(mController.getCurrentTab(), browserFallbackUrl); + mController.closeEmptyTab(); + return true; + } + // check whether the intent can be resolved. If not, we will see // whether we can download it from the Market. if (mActivity.getPackageManager().resolveActivity(intent, 0) == null) { @@ -197,9 +207,11 @@ public class UrlHandler { if (packagename != null) { try { intent = new Intent(Intent.ACTION_VIEW, Uri - .parse("market://search?q=pname:" + packagename)); + .parse("market://details?id=" + packagename)); intent.addCategory(Intent.CATEGORY_BROWSABLE); + intent.setPackage("com.android.vending"); mActivity.startActivity(intent); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // before leaving BrowserActivity, close the empty child tab. // If a new tab is created through JavaScript open to load this // url, we would like to close it as we will load this url in a |