Loading src/java/com/android/ims/ImsManager.java +81 −58 Original line number Diff line number Diff line Loading @@ -481,21 +481,28 @@ public class ImsManager { * */ public void setEnhanced4gLteModeSetting(boolean enabled) { int subId = getSubId(); // If editable=false, we must keep default advanced 4G mode. if (!getBooleanCarrierConfig(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL)) { enabled = getBooleanCarrierConfig( CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL); } int prevSetting = SubscriptionManager.getIntegerSubscriptionProperty( getSubId(), SubscriptionManager.ENHANCED_4G_MODE_ENABLED, SUB_PROPERTY_NOT_INITIALIZED, mContext); int prevSetting = SubscriptionManager.getIntegerSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, SUB_PROPERTY_NOT_INITIALIZED, mContext); if (prevSetting != (enabled ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF)) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(enabled)); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(enabled)); } else { loge("setEnhanced4gLteModeSetting: invalid sub id, can not set property in " + " siminfo db."); } if (isNonTtyOrTtyOnVolteEnabled()) { try { setAdvanced4GMode(enabled); Loading Loading @@ -761,8 +768,13 @@ public class ImsManager { * Change persistent VT enabled setting for slot. */ public void setVtSetting(boolean enabled) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.VT_IMS_ENABLED, int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.VT_IMS_ENABLED, booleanToPropertyString(enabled)); } else { loge("setVtSetting: sub id invalid, skip modifying vt state in subinfo db."); } try { changeMmTelCapability(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO, Loading Loading @@ -872,12 +884,17 @@ public class ImsManager { * Change persistent WFC enabled setting for slot. */ public void setWfcSetting(boolean enabled) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(enabled)); int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(enabled)); } else { loge("setWfcSetting: invalid sub id, can not set WFC setting in siminfo db"); } TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); setWfcNonPersistent(enabled, getWfcMode(tm.isNetworkRoaming(getSubId()))); setWfcNonPersistent(enabled, getWfcMode(tm.isNetworkRoaming(subId))); } /** Loading Loading @@ -953,8 +970,13 @@ public class ImsManager { public void setWfcMode(int wfcMode) { if (DBG) log("setWfcMode(i) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); } else { loge("setWfcMode: invalid sub id, skip setting value in siminfo db"); } setWfcModeInternal(wfcMode); } Loading Loading @@ -1048,15 +1070,20 @@ public class ImsManager { * @param roaming {@code false} for home network setting, {@code true} for roaming setting */ public void setWfcMode(int wfcMode, boolean roaming) { int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (!roaming) { if (DBG) log("setWfcMode(i,b) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); } else { if (DBG) log("setWfcMode(i,b) (roaming) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ROAMING_MODE, Integer.toString(wfcMode)); } } else { loge("setWfcMode(i,b): invalid sub id, skip setting setting in siminfo db"); } TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); Loading Loading @@ -1952,15 +1979,10 @@ public class ImsManager { * @return boolean value of corresponding key. */ private boolean getBooleanCarrierConfig(String key) { int[] subIds = SubscriptionManager.getSubId(mPhoneId); int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; if (subIds != null && subIds.length >= 1) { subId = subIds[0]; } PersistableBundle b = null; if (mConfigManager != null) { // If an invalid subId is used, this bundle will contain default values. b = mConfigManager.getConfigForSubId(subId); b = mConfigManager.getConfigForSubId(getSubId()); } if (b != null) { return b.getBoolean(key); Loading @@ -1977,15 +1999,10 @@ public class ImsManager { * @return integer value of corresponding key. */ private int getIntCarrierConfig(String key) { int[] subIds = SubscriptionManager.getSubId(mPhoneId); int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; if (subIds != null && subIds.length >= 1) { subId = subIds[0]; } PersistableBundle b = null; if (mConfigManager != null) { // If an invalid subId is used, this bundle will contain default values. b = mConfigManager.getConfigForSubId(subId); b = mConfigManager.getConfigForSubId(getSubId()); } if (b != null) { return b.getInt(key); Loading Loading @@ -2320,33 +2337,39 @@ public class ImsManager { * @hide */ public void factoryReset() { int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { // Set VoLTE to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL))); // Set VoWiFi to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL))); // Set VoWiFi mode to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(getIntCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT))); // Set VoWiFi roaming to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ROAMING_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL))); // Set VT to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.VT_IMS_ENABLED, booleanToPropertyString(true)); } else { loge("factoryReset: invalid sub id, can not reset siminfo db settings"); } // Push settings to ImsConfig updateImsServiceConfig(true); Loading Loading
src/java/com/android/ims/ImsManager.java +81 −58 Original line number Diff line number Diff line Loading @@ -481,21 +481,28 @@ public class ImsManager { * */ public void setEnhanced4gLteModeSetting(boolean enabled) { int subId = getSubId(); // If editable=false, we must keep default advanced 4G mode. if (!getBooleanCarrierConfig(CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL)) { enabled = getBooleanCarrierConfig( CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL); } int prevSetting = SubscriptionManager.getIntegerSubscriptionProperty( getSubId(), SubscriptionManager.ENHANCED_4G_MODE_ENABLED, SUB_PROPERTY_NOT_INITIALIZED, mContext); int prevSetting = SubscriptionManager.getIntegerSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, SUB_PROPERTY_NOT_INITIALIZED, mContext); if (prevSetting != (enabled ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF)) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(enabled)); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(enabled)); } else { loge("setEnhanced4gLteModeSetting: invalid sub id, can not set property in " + " siminfo db."); } if (isNonTtyOrTtyOnVolteEnabled()) { try { setAdvanced4GMode(enabled); Loading Loading @@ -761,8 +768,13 @@ public class ImsManager { * Change persistent VT enabled setting for slot. */ public void setVtSetting(boolean enabled) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.VT_IMS_ENABLED, int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.VT_IMS_ENABLED, booleanToPropertyString(enabled)); } else { loge("setVtSetting: sub id invalid, skip modifying vt state in subinfo db."); } try { changeMmTelCapability(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO, Loading Loading @@ -872,12 +884,17 @@ public class ImsManager { * Change persistent WFC enabled setting for slot. */ public void setWfcSetting(boolean enabled) { SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(enabled)); int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(enabled)); } else { loge("setWfcSetting: invalid sub id, can not set WFC setting in siminfo db"); } TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); setWfcNonPersistent(enabled, getWfcMode(tm.isNetworkRoaming(getSubId()))); setWfcNonPersistent(enabled, getWfcMode(tm.isNetworkRoaming(subId))); } /** Loading Loading @@ -953,8 +970,13 @@ public class ImsManager { public void setWfcMode(int wfcMode) { if (DBG) log("setWfcMode(i) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); } else { loge("setWfcMode: invalid sub id, skip setting value in siminfo db"); } setWfcModeInternal(wfcMode); } Loading Loading @@ -1048,15 +1070,20 @@ public class ImsManager { * @param roaming {@code false} for home network setting, {@code true} for roaming setting */ public void setWfcMode(int wfcMode, boolean roaming) { int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (!roaming) { if (DBG) log("setWfcMode(i,b) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(wfcMode)); } else { if (DBG) log("setWfcMode(i,b) (roaming) - setting=" + wfcMode); SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ROAMING_MODE, Integer.toString(wfcMode)); } } else { loge("setWfcMode(i,b): invalid sub id, skip setting setting in siminfo db"); } TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); Loading Loading @@ -1952,15 +1979,10 @@ public class ImsManager { * @return boolean value of corresponding key. */ private boolean getBooleanCarrierConfig(String key) { int[] subIds = SubscriptionManager.getSubId(mPhoneId); int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; if (subIds != null && subIds.length >= 1) { subId = subIds[0]; } PersistableBundle b = null; if (mConfigManager != null) { // If an invalid subId is used, this bundle will contain default values. b = mConfigManager.getConfigForSubId(subId); b = mConfigManager.getConfigForSubId(getSubId()); } if (b != null) { return b.getBoolean(key); Loading @@ -1977,15 +1999,10 @@ public class ImsManager { * @return integer value of corresponding key. */ private int getIntCarrierConfig(String key) { int[] subIds = SubscriptionManager.getSubId(mPhoneId); int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; if (subIds != null && subIds.length >= 1) { subId = subIds[0]; } PersistableBundle b = null; if (mConfigManager != null) { // If an invalid subId is used, this bundle will contain default values. b = mConfigManager.getConfigForSubId(subId); b = mConfigManager.getConfigForSubId(getSubId()); } if (b != null) { return b.getInt(key); Loading Loading @@ -2320,33 +2337,39 @@ public class ImsManager { * @hide */ public void factoryReset() { int subId = getSubId(); if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { // Set VoLTE to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.ENHANCED_4G_MODE_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL))); // Set VoWiFi to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL))); // Set VoWiFi mode to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_MODE, Integer.toString(getIntCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT))); // Set VoWiFi roaming to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.WFC_IMS_ROAMING_ENABLED, booleanToPropertyString(getBooleanCarrierConfig( CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL))); // Set VT to default SubscriptionManager.setSubscriptionProperty(getSubId(), SubscriptionManager.setSubscriptionProperty(subId, SubscriptionManager.VT_IMS_ENABLED, booleanToPropertyString(true)); } else { loge("factoryReset: invalid sub id, can not reset siminfo db settings"); } // Push settings to ImsConfig updateImsServiceConfig(true); Loading