diff options
| author | 2019-11-25 21:40:14 +0000 | |
|---|---|---|
| committer | 2019-11-25 21:40:14 +0000 | |
| commit | 6052ca74cd066054b9b5f1a7891585cb1564f4b6 (patch) | |
| tree | 5963199641618790fbedd7817348aac821b479f2 | |
| parent | d9bcf564489a33c292b3043e8bd9d9e50a0a1135 (diff) | |
| parent | 2863aa48febe1ad6d0d64e63308a8b22586b637a (diff) | |
Merge "SmsNumberUtils: Remove usage of the following hidden APIs"
| -rw-r--r-- | telephony/common/com/android/internal/telephony/SmsNumberUtils.java | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/telephony/common/com/android/internal/telephony/SmsNumberUtils.java b/telephony/common/com/android/internal/telephony/SmsNumberUtils.java index 0d33af639113..367aad1837ce 100644 --- a/telephony/common/com/android/internal/telephony/SmsNumberUtils.java +++ b/telephony/common/com/android/internal/telephony/SmsNumberUtils.java @@ -359,15 +359,41 @@ public class SmsNumberUtils { return NP_NONE; } + /** + * This function checks if the passed in string conforms to the NANP format + * i.e. NXX-NXX-XXXX, N is any digit 2-9 and X is any digit 0-9 + */ private static boolean isNANP(String number) { + boolean retVal = false; + if (number.length() == NANP_MEDIUM_LENGTH || (number.length() == NANP_LONG_LENGTH && number.startsWith(NANP_NDD))) { + if (number.length() == NANP_LONG_LENGTH) { number = number.substring(1); } - return (PhoneNumberUtils.isNanp(number)); + + if (isTwoToNine(number.charAt(0)) && + isTwoToNine(number.charAt(3))) { + retVal = true; + for (int i=1; i<NANP_MEDIUM_LENGTH; i++ ) { + char c=number.charAt(i); + if (!PhoneNumberUtils.isISODigit(c)) { + retVal = false; + break; + } + } + } + } + return retVal; + } + + private static boolean isTwoToNine (char c) { + if (c >= '2' && c <= '9') { + return true; + } else { + return false; } - return false; } /** @@ -573,9 +599,9 @@ public class SmsNumberUtils { int networkType = -1; int phoneType = telephonyManager.getPhoneType(); - if (phoneType == PhoneConstants.PHONE_TYPE_GSM) { + if (phoneType == TelephonyManager.PHONE_TYPE_GSM) { networkType = GSM_UMTS_NETWORK; - } else if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) { + } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) { if (isInternationalRoaming(telephonyManager)) { networkType = CDMA_ROAMING_NETWORK; } else { |