Merge "Fix TelecomManager.isVoicemailNumber" into mnc-dev

This commit is contained in:
Yorke Lee
2015-06-30 17:47:08 +00:00
committed by Android (Google) Code Review

View File

@@ -2080,14 +2080,35 @@ public class PhoneNumberUtils
* @hide * @hide
*/ */
public static boolean isVoiceMailNumber(int subId, String number) { public static boolean isVoiceMailNumber(int subId, String number) {
String vmNumber; return isVoiceMailNumber(null, subId, number);
}
/**
* isVoiceMailNumber: checks a given number against the voicemail
* number provided by the RIL and SIM card. The caller must have
* the READ_PHONE_STATE credential.
*
* @param context a non-null {@link Context}.
* @param subId the subscription id of the SIM.
* @param number the number to look up.
* @return true if the number is in the list of voicemail. False
* otherwise, including if the caller does not have the permission
* to read the VM number.
* @hide
*/
public static boolean isVoiceMailNumber(Context context, int subId, String number) {
String vmNumber;
try { try {
vmNumber = TelephonyManager.getDefault().getVoiceMailNumber(subId); final TelephonyManager tm;
if (context == null) {
tm = TelephonyManager.getDefault();
} else {
tm = TelephonyManager.from(context);
}
vmNumber = tm.getVoiceMailNumber(subId);
} catch (SecurityException ex) { } catch (SecurityException ex) {
return false; return false;
} }
// Strip the separators from the number before comparing it // Strip the separators from the number before comparing it
// to the list. // to the list.
number = extractNetworkPortionAlt(number); number = extractNetworkPortionAlt(number);