Merge "Sync the wfc roaming logic with Settings" into qt-dev
am: 3453516cb9
Change-Id: Ib8c69da8b60e13b54afbb65f74390c3f1efd42c4
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index e6fa00a..f2438d9 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -384,6 +384,15 @@
.createForSubscriptionId(mPhone.getSubId());
PersistableBundle carrierConfig =
PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+ boolean editableWfcRoamingMode = true;
+ boolean useWfcHomeModeForRoaming = false;
+ if (carrierConfig != null) {
+ editableWfcRoamingMode = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL);
+ useWfcHomeModeForRoaming = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
+ false);
+ }
if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
@@ -427,7 +436,8 @@
int resId = com.android.internal.R.string.wifi_calling_off_summary;
if (mImsMgr.isWfcEnabledByUser()) {
boolean isRoaming = telephonyManager.isNetworkRoaming();
- int wfcMode = mImsMgr.getWfcMode(isRoaming);
+ boolean wfcRoamingEnabled = editableWfcRoamingMode && !useWfcHomeModeForRoaming;
+ int wfcMode = mImsMgr.getWfcMode(isRoaming && wfcRoamingEnabled);
switch (wfcMode) {
case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;