Merge "Support RRO for emergency number conversion map"

This commit is contained in:
Brad Ebinger
2017-05-24 20:19:29 +00:00
committed by Gerrit Code Review

View File

@@ -3093,34 +3093,20 @@ public class PhoneNumberUtils
/* /*
* The config held calling number conversion map, expected to convert to emergency number. * The config held calling number conversion map, expected to convert to emergency number.
*/ */
private static final String[] CONVERT_TO_EMERGENCY_MAP = Resources.getSystem().getStringArray( private static String[] sConvertToEmergencyMap = null;
com.android.internal.R.array.config_convert_to_emergency_number_map);
/**
* Check whether conversion to emergency number is enabled
*
* @return {@code true} when conversion to emergency numbers is enabled,
* {@code false} otherwise
*
* @hide
*/
public static boolean isConvertToEmergencyNumberEnabled() {
return CONVERT_TO_EMERGENCY_MAP != null && CONVERT_TO_EMERGENCY_MAP.length > 0;
}
/** /**
* Converts to emergency number based on the conversion map. * Converts to emergency number based on the conversion map.
* The conversion map is declared as config_convert_to_emergency_number_map. * The conversion map is declared as config_convert_to_emergency_number_map.
* *
* Make sure {@link #isConvertToEmergencyNumberEnabled} is true before calling * @param context a context to use for accessing resources
* this function.
*
* @return The converted emergency number if the number matches conversion map, * @return The converted emergency number if the number matches conversion map,
* otherwise original number. * otherwise original number.
* *
* @hide * @hide
*/ */
public static String convertToEmergencyNumber(String number) { public static String convertToEmergencyNumber(Context context, String number) {
if (TextUtils.isEmpty(number)) { if (context == null || TextUtils.isEmpty(number)) {
return number; return number;
} }
@@ -3131,7 +3117,17 @@ public class PhoneNumberUtils
return number; return number;
} }
for (String convertMap : CONVERT_TO_EMERGENCY_MAP) { if (sConvertToEmergencyMap == null) {
sConvertToEmergencyMap = context.getResources().getStringArray(
com.android.internal.R.array.config_convert_to_emergency_number_map);
}
// The conversion map is not defined (this is default). Skip conversion.
if (sConvertToEmergencyMap == null || sConvertToEmergencyMap.length == 0 ) {
return number;
}
for (String convertMap : sConvertToEmergencyMap) {
if (DBG) log("convertToEmergencyNumber: " + convertMap); if (DBG) log("convertToEmergencyNumber: " + convertMap);
String[] entry = null; String[] entry = null;
String[] filterNumbers = null; String[] filterNumbers = null;