Fix tel: protocol to handle special character
Change-Id: I866ff02f85bb09e8a13bf095c4a136b0b833a86b
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 4d75a5f..457b1c4 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1579,7 +1579,7 @@
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 dfdc3bf..eb8dc53 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -580,7 +580,7 @@
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 8ecffe4..40f08f0 100755
--- a/src/com/android/browser/UrlHandler.java
+++ b/src/com/android/browser/UrlHandler.java
@@ -60,13 +60,20 @@
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