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);
}