summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVivek Sekhar <vsekhar@codeaurora.org>2015-12-10 20:02:46 -0800
committerjrizzoli <joey@cyanogenmoditalia.it>2016-01-11 22:03:22 +0100
commitcb3f72377d4dee4ae859feda9b3c613c9d36f94e (patch)
treed71411126de9d4c0647418c61928323cbf67062f
parent0c609cd66619f21a45597275c466748c94445097 (diff)
downloadandroid_packages_apps_Gello-cb3f72377d4dee4ae859feda9b3c613c9d36f94e.tar.gz
android_packages_apps_Gello-cb3f72377d4dee4ae859feda9b3c613c9d36f94e.tar.bz2
android_packages_apps_Gello-cb3f72377d4dee4ae859feda9b3c613c9d36f94e.zip
Fix tel: protocol to handle special character
Change-Id: I866ff02f85bb09e8a13bf095c4a136b0b833a86b
-rw-r--r--src/com/android/browser/Controller.java2
-rw-r--r--src/com/android/browser/NavigationBarBase.java2
-rwxr-xr-xsrc/com/android/browser/UrlHandler.java9
3 files changed, 10 insertions, 3 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 4d75a5ff..457b1c47 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1579,7 +1579,7 @@ public class Controller
menu.setHeaderTitle(Uri.decode(extra));
menu.findItem(R.id.dial_context_menu_id).setIntent(
new Intent(Intent.ACTION_VIEW, Uri
- .parse(WebView.SCHEME_TEL + extra)));
+ .parse(WebView.SCHEME_TEL + Uri.encode(extra))));
Intent addIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
addIntent.putExtra(Insert.PHONE, Uri.decode(extra));
addIntent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index dfdc3bf0..eb8dc537 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -580,7 +580,7 @@ public class NavigationBarBase extends LinearLayout implements
if (url.startsWith(UrlHandler.SCHEME_WTAI_MC)) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(WebView.SCHEME_TEL +
- url.substring(UrlHandler.SCHEME_WTAI_MC.length())));
+ Uri.encode(url.substring(UrlHandler.SCHEME_WTAI_MC.length()))));
getContext().startActivity(intent);
// before leaving BrowserActivity, close the empty child tab.
// If a new tab is created through JavaScript open to load this
diff --git a/src/com/android/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java
index 8ecffe46..40f08f00 100755
--- a/src/com/android/browser/UrlHandler.java
+++ b/src/com/android/browser/UrlHandler.java
@@ -60,13 +60,20 @@ public class UrlHandler {
return false;
}
+ if (url.startsWith(WebView.SCHEME_TEL)) {
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(WebView.SCHEME_TEL +
+ Uri.encode(url.substring(WebView.SCHEME_TEL.length()))));
+ mActivity.startActivity(intent);
+ return true;
+ }
if (url.startsWith(SCHEME_WTAI)) {
// wtai://wp/mc;number
// number=string(phone-number)
if (url.startsWith(SCHEME_WTAI_MC)) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(WebView.SCHEME_TEL +
- url.substring(SCHEME_WTAI_MC.length())));
+ Uri.encode(url.substring(SCHEME_WTAI_MC.length()))));
mActivity.startActivity(intent);
// before leaving BrowserActivity, close the empty child tab.
// If a new tab is created through JavaScript open to load this