diff options
author | Nancy Chen <nancychen@google.com> | 2015-01-17 01:03:20 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-01-17 01:03:20 +0000 |
commit | ae26de34750d9c796720985a80f5273f35f195c5 (patch) | |
tree | 17052c70fb030e56cb7d8a5d6468b2aa510a7d8a /src | |
parent | 77ab79c8e9302252f19fd605e30af905c94571c9 (diff) | |
parent | 8dd7ab8dd07641dd1b82ef39127f2f5c8edd341b (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.java | 19 |
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."); |