Commit 9352c43d authored by Meng Wang's avatar Meng Wang
Browse files

Enable ims test mode on verizon

Added a new property 'persist.dbg.allow_ims_off'. When it's set,
CarrierConfig KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL is ignored.
Hence ims can be turned off.

Bug: 28861107
Change-Id: Ieed8f782b6e222131e64ee8755a48acc1100e520
parent d46779cb
...@@ -66,6 +66,8 @@ public class ImsManager { ...@@ -66,6 +66,8 @@ public class ImsManager {
public static final int PROPERTY_DBG_VT_AVAIL_OVERRIDE_DEFAULT = 0; public static final int PROPERTY_DBG_VT_AVAIL_OVERRIDE_DEFAULT = 0;
public static final String PROPERTY_DBG_WFC_AVAIL_OVERRIDE = "persist.dbg.wfc_avail_ovr"; public static final String PROPERTY_DBG_WFC_AVAIL_OVERRIDE = "persist.dbg.wfc_avail_ovr";
public static final int PROPERTY_DBG_WFC_AVAIL_OVERRIDE_DEFAULT = 0; public static final int PROPERTY_DBG_WFC_AVAIL_OVERRIDE_DEFAULT = 0;
public static final String PROPERTY_DBG_ALLOW_IMS_OFF_OVERRIDE = "persist.dbg.allow_ims_off";
public static final int PROPERTY_DBG_ALLOW_IMS_OFF_OVERRIDE_DEFAULT = 0;
/** /**
* For accessing the IMS related service. * For accessing the IMS related service.
...@@ -342,8 +344,7 @@ public class ImsManager { ...@@ -342,8 +344,7 @@ public class ImsManager {
if (enabled) { if (enabled) {
imsManager.turnOnIms(); imsManager.turnOnIms();
} else if (getBooleanCarrierConfig(context, } else if (isTurnOffImsAllowedByPlatform(context)
CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)
&& (!isVolteEnabledByPlatform(context) && (!isVolteEnabledByPlatform(context)
|| !isEnhanced4gLteModeSettingEnabledByUser(context))) { || !isEnhanced4gLteModeSettingEnabledByUser(context))) {
log("setVtSetting() : imsServiceAllowTurnOff -> turnOffIms"); log("setVtSetting() : imsServiceAllowTurnOff -> turnOffIms");
...@@ -355,6 +356,19 @@ public class ImsManager { ...@@ -355,6 +356,19 @@ public class ImsManager {
} }
} }
/*
* Returns whether turning off ims is allowed by platform.
* The platform property may override the carrier config.
*/
private static boolean isTurnOffImsAllowedByPlatform(Context context) {
if (SystemProperties.getInt(PROPERTY_DBG_ALLOW_IMS_OFF_OVERRIDE,
PROPERTY_DBG_ALLOW_IMS_OFF_OVERRIDE_DEFAULT) == 1) {
return true;
}
return getBooleanCarrierConfig(context,
CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL);
}
/** /**
* Returns the user configuration of WFC setting * Returns the user configuration of WFC setting
*/ */
...@@ -388,8 +402,7 @@ public class ImsManager { ...@@ -388,8 +402,7 @@ public class ImsManager {
if (enabled) { if (enabled) {
imsManager.turnOnIms(); imsManager.turnOnIms();
} else if (getBooleanCarrierConfig(context, } else if (isTurnOffImsAllowedByPlatform(context)
CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)
&& (!isVolteEnabledByPlatform(context) && (!isVolteEnabledByPlatform(context)
|| !isEnhanced4gLteModeSettingEnabledByUser(context))) { || !isEnhanced4gLteModeSettingEnabledByUser(context))) {
log("setWfcSetting() : imsServiceAllowTurnOff -> turnOffIms"); log("setWfcSetting() : imsServiceAllowTurnOff -> turnOffIms");
...@@ -564,8 +577,7 @@ public class ImsManager { ...@@ -564,8 +577,7 @@ public class ImsManager {
isImsUsed |= imsManager.updateWfcFeatureAndProvisionedValues(); isImsUsed |= imsManager.updateWfcFeatureAndProvisionedValues();
isImsUsed |= imsManager.updateVideoCallFeatureValue(); isImsUsed |= imsManager.updateVideoCallFeatureValue();
if (isImsUsed || !getBooleanCarrierConfig(context, if (isImsUsed || !isTurnOffImsAllowedByPlatform(context)) {
CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)) {
// Turn on IMS if it is used. // Turn on IMS if it is used.
// Also, if turning off is not allowed for current carrier, // Also, if turning off is not allowed for current carrier,
// we need to turn IMS on because it might be turned off before // we need to turn IMS on because it might be turned off before
...@@ -1214,8 +1226,7 @@ public class ImsManager { ...@@ -1214,8 +1226,7 @@ public class ImsManager {
} }
private boolean isImsTurnOffAllowed() { private boolean isImsTurnOffAllowed() {
return getBooleanCarrierConfig(mContext, return isTurnOffImsAllowedByPlatform(mContext)
CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)
&& (!isWfcEnabledByPlatform(mContext) && (!isWfcEnabledByPlatform(mContext)
|| !isWfcEnabledByUser(mContext)); || !isWfcEnabledByUser(mContext));
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment