summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNancy Chen <nancychen@google.com>2015-01-17 01:03:20 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-01-17 01:03:20 +0000
commitae26de34750d9c796720985a80f5273f35f195c5 (patch)
tree17052c70fb030e56cb7d8a5d6468b2aa510a7d8a /src
parent77ab79c8e9302252f19fd605e30af905c94571c9 (diff)
parent8dd7ab8dd07641dd1b82ef39127f2f5c8edd341b (diff)
am 8dd7ab8d: am ac54b6f5: am 1eb16ea1: When dialing voicemail, check voicemail number of correct default SIM.
* commit '8dd7ab8dd07641dd1b82ef39127f2f5c8edd341b': When dialing voicemail, check voicemail number of correct default SIM.
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index ce6475ec2..f1112f175 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -924,9 +924,10 @@ public class DialpadFragment extends Fragment
PhoneAccountUtils.getSubscriptionPhoneAccounts(getActivity());
boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
getTelecomManager().getUserSelectedOutgoingPhoneAccount());
- boolean multiSim = subscriptionAccountHandles.size() > 1;
+ boolean needsAccountDisambiguation = subscriptionAccountHandles.size() > 1
+ && !hasUserSelectedDefault;
- if ((multiSim && !hasUserSelectedDefault) || isVoicemailAvailable()) {
+ if (needsAccountDisambiguation || isVoicemailAvailable()) {
// On a multi-SIM phone, if the user has not selected a default
// subscription, initiate a call to voicemail so they can select an account
// from the "Call with" dialog.
@@ -1519,13 +1520,21 @@ public class DialpadFragment extends Fragment
/**
* Check if voicemail is enabled/accessible.
*
- * @return true if voicemail is enabled and accessibly. Note that this can be false
+ * @return true if voicemail is enabled and accessible. Note that this can be false
* "temporarily" after the app boot.
- * @see TelephonyManager#getVoiceMailNumber()
+ * @see TelecomManager#hasVoiceMailNumber(PhoneAccountHandle)
*/
private boolean isVoicemailAvailable() {
try {
- return getTelephonyManager().getVoiceMailNumber() != null;
+ PhoneAccountHandle defaultUserSelectedAccount =
+ getTelecomManager().getUserSelectedOutgoingPhoneAccount();
+ if (defaultUserSelectedAccount == null) {
+ // In a single-SIM phone, there is no default outgoing phone account selected by
+ // the user, so just call TelephonyManager#getVoicemailNumber directly.
+ return getTelephonyManager().getVoiceMailNumber() != null;
+ } else {
+ return getTelecomManager().hasVoiceMailNumber(defaultUserSelectedAccount);
+ }
} catch (SecurityException se) {
// Possibly no READ_PHONE_STATE privilege.
Log.w(TAG, "SecurityException is thrown. Maybe privilege isn't sufficient.");