diff options
| author | 2019-03-29 11:39:42 -0700 | |
|---|---|---|
| committer | 2019-03-29 11:39:42 -0700 | |
| commit | b18e114c415fde2dda82302d4c132dc1be5d9291 (patch) | |
| tree | 7be9eebc42e958f0a791a5ca0f26ba08e0d52a96 | |
| parent | a438bd2611992a10acb7e80ad43c6dc758a245e5 (diff) | |
| parent | 9c9d146ab44f335e4f4d6766caf257467282ed68 (diff) | |
Merge "Emergency Number format" am: e5709bf75f
am: 9c9d146ab4
Change-Id: I5f06b1955814144fd2e86092bbb9b8b85cbf54c9
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 11 | ||||
| -rw-r--r-- | telephony/java/android/telephony/emergency/EmergencyNumber.java | 14 |
2 files changed, 20 insertions, 5 deletions
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 455fe00469bf..07a91c1d0d50 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -10277,15 +10277,20 @@ public class TelephonyManager { } /** - * Checks if the supplied number is an emergency number based on current locale, sim, default, - * modem and network. + * Identifies if the supplied phone number is an emergency number that matches a known + * emergency number based on current locale, SIM card(s), Android database, modem, network, + * or defaults. + * + * <p>This method assumes that only dialable phone numbers are passed in; non-dialable + * numbers are not considered emergency numbers. A dialable phone number consists only + * of characters/digits identified by {@link PhoneNumberUtils#isDialable(char)}. * * <p>The subscriptions which the identification would be based on, are all the active * subscriptions, no matter which subscription could be used to create TelephonyManager. * * @param number - the number to look up * @return {@code true} if the given number is an emergency number based on current locale, - * sim, modem and network; {@code false} otherwise. + * SIM card(s), Android database, modem, network or defaults; {@code false} otherwise. */ public boolean isEmergencyNumber(@NonNull String number) { try { diff --git a/telephony/java/android/telephony/emergency/EmergencyNumber.java b/telephony/java/android/telephony/emergency/EmergencyNumber.java index 397975fe58cf..dba220718818 100644 --- a/telephony/java/android/telephony/emergency/EmergencyNumber.java +++ b/telephony/java/android/telephony/emergency/EmergencyNumber.java @@ -22,6 +22,7 @@ import android.hardware.radio.V1_4.EmergencyNumberSource; import android.hardware.radio.V1_4.EmergencyServiceCategory; import android.os.Parcel; import android.os.Parcelable; +import android.telephony.PhoneNumberUtils; import android.telephony.Rlog; import java.lang.annotation.Retention; @@ -673,11 +674,20 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu } /** - * Validate Emergency Number address that only allows '0'-'9', '*', or '#' + * Validate Emergency Number address that only contains the dialable character + * {@link PhoneNumberUtils#isDialable(char)} * * @hide */ public static boolean validateEmergencyNumberAddress(String address) { - return address.matches("[0-9*#]+"); + if (address == null) { + return false; + } + for (char c : address.toCharArray()) { + if (!PhoneNumberUtils.isDialable(c)) { + return false; + } + } + return true; } } |