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;