diff options
Diffstat (limited to 'rcs')
-rw-r--r-- | rcs/rcsmanager/src/java/com/android/ims/internal/ContactNumberUtils.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/rcs/rcsmanager/src/java/com/android/ims/internal/ContactNumberUtils.java b/rcs/rcsmanager/src/java/com/android/ims/internal/ContactNumberUtils.java index 1ed03f9..094afb4 100644 --- a/rcs/rcsmanager/src/java/com/android/ims/internal/ContactNumberUtils.java +++ b/rcs/rcsmanager/src/java/com/android/ims/internal/ContactNumberUtils.java @@ -134,7 +134,9 @@ public class ContactNumberUtils { public static int NUMBER_INVALID = 5; /** - * Check if it is a valid contact number for presence + * Check if it is a valid contact number for presence. + * + * Note: mContext must be set via setContext() before calling this method. * * @param phoneNumber read from contact db. * @return contact number error code. @@ -161,7 +163,16 @@ public class ContactNumberUtils { return NUMBER_INVALID; } - if (PhoneNumberUtils.isEmergencyNumber(number)) { + boolean isEmergencyNumber; + if (mContext == null) { + Log.e(TAG, "context is unexpectedly null to provide emergency identification service"); + isEmergencyNumber = false; + } else { + TelephonyManager tm = mContext.getSystemService(TelephonyManager.class); + isEmergencyNumber = tm.isEmergencyNumber(number); + } + + if (isEmergencyNumber) { return NUMBER_EMERGENCY; // TODO: To handle short code //} else if ((mContext != null) && PhoneNumberUtils.isN11Number(mContext, number)) { |