Merge "Expose ImsManager#setWfcNonPersistentForSlot"
am: f00642b016

Change-Id: Iaec8438446c1d1c5c51240de3ebad76976598949
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index 4ae9934..049157f 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -731,12 +731,26 @@
         android.provider.Settings.Global.putInt(mContext.getContentResolver(),
                 android.provider.Settings.Global.WFC_IMS_ENABLED, value);
 
+        setWfcNonPersistentForSlot(enabled, getWfcModeForSlot());
+    }
+
+    /**
+     * Non-persistently change WFC enabled setting and WFC mode for slot
+     *
+     * @param wfcMode The WFC preference if WFC is enabled
+     */
+    public void setWfcNonPersistentForSlot(boolean enabled, int wfcMode) {
+        int imsFeatureValue =
+                enabled ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF;
+        // Force IMS to register over LTE when turning off WFC
+        int imsWfcModeFeatureValue =
+                enabled ? wfcMode : ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED;
+
         try {
             ImsConfig config = getConfigInterface();
             config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI,
                     TelephonyManager.NETWORK_TYPE_IWLAN,
-                    enabled ? ImsConfig.FeatureValueConstants.ON
-                            : ImsConfig.FeatureValueConstants.OFF,
+                    imsFeatureValue,
                     mImsConfigListener);
 
             if (enabled) {
@@ -749,10 +763,7 @@
                 turnOffIms();
             }
 
-            // Force IMS to register over LTE when turning off WFC
-            setWfcModeInternalForSlot(enabled
-                    ? getWfcModeForSlot()
-                    : ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED);
+            setWfcModeInternalForSlot(imsWfcModeFeatureValue);
         } catch (ImsException e) {
             loge("setWfcSettingForSlot(): ", e);
         }