Merge "Support confirmation of international calls while on WFC only."

This commit is contained in:
Tyler Gunn
2017-03-01 16:08:39 +00:00
committed by Gerrit Code Review
3 changed files with 48 additions and 0 deletions

View File

@@ -1127,6 +1127,14 @@ public class CarrierConfigManager {
public static final String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL =
"support_3gpp_call_forwarding_while_roaming_bool";
/**
* When {@code true}, the user will be notified when they attempt to place an international call
* when the call is placed using wifi calling.
* @hide
*/
public static final String KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL =
"notify_international_call_on_wfc_bool";
/** The default value for every variable. */
private final static PersistableBundle sDefaults;
@@ -1332,6 +1340,7 @@ public class CarrierConfigManager {
sDefaults.putStringArray(KEY_FILTERED_CNAP_NAMES_STRING_ARRAY, null);
sDefaults.putBoolean(KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false);
sDefaults.putBoolean(KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL, true);
sDefaults.putBoolean(KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL, false);
}
/**

View File

@@ -1438,6 +1438,30 @@ public class PhoneNumberUtils
return null;
}
/**
* Determines if a {@param phoneNumber} is international if dialed from
* {@param defaultCountryIso}.
*
* @param phoneNumber The phone number.
* @param defaultCountryIso The current country ISO.
* @return {@code true} if the number is international, {@code false} otherwise.
* @hide
*/
public static boolean isInternationalNumber(String phoneNumber, String defaultCountryIso) {
// If it starts with # or * its not international.
if (phoneNumber.startsWith("#") || phoneNumber.startsWith("*")) {
return false;
}
PhoneNumberUtil util = PhoneNumberUtil.getInstance();
try {
PhoneNumber pn = util.parseAndKeepRawInput(phoneNumber, defaultCountryIso);
return pn.getCountryCode() != util.getCountryCodeForRegion(defaultCountryIso);
} catch (NumberParseException e) {
return false;
}
}
/**
* Format a phone number.
* <p>

View File

@@ -779,6 +779,21 @@ public class TelephonyManager {
public static final String EVENT_DOWNGRADE_DATA_DISABLED =
"android.telephony.event.EVENT_DOWNGRADE_DATA_DISABLED";
/**
* {@link android.telecom.Connection} event used to indicate that the InCall UI should notify
* the user when an international call is placed while on WFC only.
* <p>
* Used when the carrier config value
* {@link CarrierConfigManager#KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL} is true, the device
* is on WFC (VoLTE not available) and an international number is dialed.
* <p>
* Sent via {@link android.telecom.Connection#sendConnectionEvent(String, Bundle)}.
* The {@link Bundle} parameter is expected to be null when this connection event is used.
* @hide
*/
public static final String EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC =
"android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC";
/**
* Response codes for sim activation. Activation completed successfully.
* @hide