diff options
| author | 2019-03-15 19:33:17 +0000 | |
|---|---|---|
| committer | 2019-03-15 19:33:17 +0000 | |
| commit | d5487a5828de6c5c16c2ebf5d9aec81c31fb108a (patch) | |
| tree | 7ce13aaaf1b43f3d47e353e9cd6b7e3e980b650d | |
| parent | 6983ad3f17566a44d36886affb5e877e7e4ae34c (diff) | |
| parent | 0197a96e8add2658d424d5d318b383281d702add (diff) | |
Merge "Emergency Number format"
| -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 3dee114c1688..88308e9da8af 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -10256,15 +10256,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 173f4edba96b..fa6cfcb879f7 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; } } |