From 1249bdbe90102172f6e678993516203bb3a493bf Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Tue, 30 Jun 2015 10:07:40 -0700 Subject: Fix TelecomManager.isVoicemailNumber Provide an overload of PhoneNumberUtil.isVoiceMailNumber that takes a context to prevent an NPE. This does not fix PhoneNumberUtil.isVoicemailNumber(String number), that will require a follow up CL. Bug: 22184528 Change-Id: I300b70948e5ff7230989bb887ad17e222c61685d --- .../java/android/telephony/PhoneNumberUtils.java | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'telephony/java') diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 3fcd7d9..d18b86a 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -2080,14 +2080,35 @@ public class PhoneNumberUtils * @hide */ 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 { - 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) { return false; } - // Strip the separators from the number before comparing it // to the list. number = extractNetworkPortionAlt(number); -- cgit v1.1