summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivek Sekhar <vsekhar@codeaurora.org>2016-02-05 13:59:50 +0100
committerjrizzoli <joey@cyanogenmoditalia.it>2016-02-05 15:26:21 +0100
commit6b2768961fe0c55b412711c6cab19232184c5e39 (patch)
treec0a2b26b5e55313231f267dc6a63c49da4069454
parent5fb7614ab614d478c567005d17e77fbffca7fe3e (diff)
downloadandroid_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-xsrc/com/android/browser/UrlHandler.java24
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