Sync the wfc roaming logic with Settings
Bug: 131390505
Test: Build
Change-Id: I487386c685f4697faaee1c0447996cc103555ebf
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 0cb93aa..13c884e 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -352,6 +352,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)
@@ -394,7 +403,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;