summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Sapperstein <asapperstein@google.com>2013-06-28 00:17:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-06-28 00:17:30 +0000
commitdc81b82410dca8003d968caf148cd35b43f43dab (patch)
treef53a75a73945a2198dab42eb798cd89fcd8f0600
parentc94c80c8b8c92c019f19f2e315dea1ff03ad573f (diff)
parent0c7f1c183c90c14a9920372b71434b9b29bd5b4d (diff)
downloadandroid_packages_apps_UnifiedEmail-dc81b82410dca8003d968caf148cd35b43f43dab.tar.gz
android_packages_apps_UnifiedEmail-dc81b82410dca8003d968caf148cd35b43f43dab.tar.bz2
android_packages_apps_UnifiedEmail-dc81b82410dca8003d968caf148cd35b43f43dab.zip
Merge "Hide Dial&SMS actions if no apps can handle them." into jb-ub-mail-ur10
-rw-r--r--src/com/android/mail/browse/WebViewContextMenu.java40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/com/android/mail/browse/WebViewContextMenu.java b/src/com/android/mail/browse/WebViewContextMenu.java
index 021fac631..247b64732 100644
--- a/src/com/android/mail/browse/WebViewContextMenu.java
+++ b/src/com/android/mail/browse/WebViewContextMenu.java
@@ -53,6 +53,9 @@ import java.nio.charset.Charset;
public class WebViewContextMenu implements OnCreateContextMenuListener,
MenuItem.OnMenuItemClickListener {
+ private final boolean mSupportsDial;
+ private final boolean mSupportsSms;
+
private Activity mActivity;
protected static enum MenuType {
@@ -78,6 +81,18 @@ public class WebViewContextMenu implements OnCreateContextMenuListener,
public WebViewContextMenu(Activity host) {
mActivity = host;
+
+ // Query the package manager to see if the device
+ // has an app that supports ACTION_DIAL or ACTION_SENDTO
+ // with the appropriate uri schemes.
+ final PackageManager pm = mActivity.getPackageManager();
+ mSupportsDial = !pm.queryIntentActivities(
+ new Intent(Intent.ACTION_DIAL, Uri.parse(WebView.SCHEME_TEL)),
+ PackageManager.MATCH_DEFAULT_ONLY).isEmpty();
+ mSupportsSms = !pm.queryIntentActivities(
+ new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:")),
+ PackageManager.MATCH_DEFAULT_ONLY).isEmpty();
+ ;
}
// For our copy menu items.
@@ -201,18 +216,27 @@ public class WebViewContextMenu implements OnCreateContextMenuListener,
// Dial
final MenuItem dialMenuItem =
menu.findItem(getMenuResIdForMenuType(MenuType.DIAL_MENU));
- // remove the on click listener
- dialMenuItem.setOnMenuItemClickListener(null);
- dialMenuItem.setIntent(new Intent(Intent.ACTION_VIEW,
- Uri.parse(WebView.SCHEME_TEL + extra)));
+
+ if (mSupportsDial) {
+ // remove the on click listener
+ dialMenuItem.setOnMenuItemClickListener(null);
+ dialMenuItem.setIntent(new Intent(Intent.ACTION_DIAL,
+ Uri.parse(WebView.SCHEME_TEL + extra)));
+ } else {
+ dialMenuItem.setVisible(false);
+ }
// Send SMS
final MenuItem sendSmsMenuItem =
menu.findItem(getMenuResIdForMenuType(MenuType.SMS_MENU));
- // remove the on click listener
- sendSmsMenuItem.setOnMenuItemClickListener(null);
- sendSmsMenuItem.setIntent(new Intent(Intent.ACTION_SENDTO,
- Uri.parse("smsto:" + extra)));
+ if (mSupportsSms) {
+ // remove the on click listener
+ sendSmsMenuItem.setOnMenuItemClickListener(null);
+ sendSmsMenuItem.setIntent(new Intent(Intent.ACTION_SENDTO,
+ Uri.parse("smsto:" + extra)));
+ } else {
+ sendSmsMenuItem.setVisible(false);
+ }
// Add to contacts
final Intent addIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT);