diff options
| author | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:18:14 -0800 |
|---|---|---|
| committer | Steve Kondik <steve@cyngn.com> | 2016-03-10 18:18:14 -0800 |
| commit | 328bc61a007eab7513b926149d937e712613f914 (patch) | |
| tree | af6a8dbfa73942ad87a307b7f88755527fba2f17 | |
| parent | dfb59ac38fd267345aa6db883e8a387f3f109d3d (diff) | |
| parent | 9510b1cb97fd77cb6a595b91405cbf0a8a4c426e (diff) | |
| download | android_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.tar.gz android_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.tar.bz2 android_frameworks_opt_net_ims-328bc61a007eab7513b926149d937e712613f914.zip | |
Merge tag 'android-6.0.1_r22' of https://android.googlesource.com/platform/frameworks/opt/net/ims into cm-13.0staging/cm-13.0+r22
Android 6.0.1 release 22
| -rw-r--r-- | src/java/com/android/ims/ImsManager.java | 77 |
1 files changed, 60 insertions, 17 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index f154f1f..cc71c86 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -538,14 +538,19 @@ public class ImsManager { final ImsManager imsManager = ImsManager.getInstance(context, phoneId); if (imsManager != null && (!imsManager.mConfigUpdated || force)) { try { - boolean turnOn = imsManager.updateVolteFeatureValue(); - turnOn |= imsManager.updateVideoCallFeatureValue(); - turnOn |= imsManager.updateWfcFeatureAndProvisionedValues(); - - if (turnOn) { + boolean isImsUsed = imsManager.updateVolteFeatureValue(); + isImsUsed |= imsManager.updateVideoCallFeatureValue(); + isImsUsed |= imsManager.updateWfcFeatureAndProvisionedValues(); + + if (isImsUsed || !getBooleanCarrierConfig(context, + CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)) { + // Turn on IMS if it is used. + // Also, if turning off is not allowed for current carrier, + // we need to turn IMS on because it might be turned off before + // phone switched to current carrier. imsManager.turnOnIms(); - } else if (getBooleanCarrierConfig(context, - CarrierConfigManager.KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL)) { + } else { + // Turn off IMS if it is not used AND turning off is allowed for carrier. imsManager.turnOffIms(); } @@ -566,7 +571,7 @@ public class ImsManager { boolean available = isVolteEnabledByPlatform(mContext); boolean enabled = isEnhanced4gLteModeSettingEnabledByUser(mContext); boolean isNonTty = isNonTtyOrTtyOnVolteEnabled(mContext); - boolean turnOn = available && enabled && isNonTty; + boolean isFeatureOn = available && enabled && isNonTty; log("updateVolteFeatureValue: available = " + available + ", enabled = " + enabled @@ -575,12 +580,12 @@ public class ImsManager { getConfigInterface().setFeatureValue( ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE, TelephonyManager.NETWORK_TYPE_LTE, - turnOn ? + isFeatureOn ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF, null); - return turnOn; + return isFeatureOn; } /** @@ -597,7 +602,7 @@ public class ImsManager { boolean isNonTty = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.PREFERRED_TTY_MODE, TelecomManager.TTY_MODE_OFF) == TelecomManager.TTY_MODE_OFF; - boolean turnOn = available && enabled && isNonTty; + boolean isFeatureOn = available && enabled && isNonTty; log("updateVideoCallFeatureValue: available = " + available + ", enabled = " + enabled @@ -606,12 +611,12 @@ public class ImsManager { getConfigInterface().setFeatureValue( ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE, TelephonyManager.NETWORK_TYPE_LTE, - turnOn ? + isFeatureOn ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF, null); - return turnOn; + return isFeatureOn; } /** @@ -624,7 +629,7 @@ public class ImsManager { boolean enabled = isWfcEnabledByUser(mContext); int mode = getWfcMode(mContext); boolean roaming = isWfcRoamingEnabledByUser(mContext); - boolean turnOn = available && enabled; + boolean isFeatureOn = available && enabled; log("updateWfcFeatureAndProvisionedValues: available = " + available + ", enabled = " + enabled @@ -634,19 +639,19 @@ public class ImsManager { getConfigInterface().setFeatureValue( ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI, TelephonyManager.NETWORK_TYPE_IWLAN, - turnOn ? + isFeatureOn ? ImsConfig.FeatureValueConstants.ON : ImsConfig.FeatureValueConstants.OFF, null); - if (!turnOn) { + if (!isFeatureOn) { mode = ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED; roaming = false; } setWfcModeInternal(mContext, mode); setWfcRoamingSettingInternal(mContext, roaming); - return turnOn; + return isFeatureOn; } private ImsManager(Context context, int phoneId) { @@ -1361,4 +1366,42 @@ public class ImsManager { } return mEcbm; } + + /** + * Resets ImsManager settings back to factory defaults. + * + * @hide + */ + public static void factoryReset(Context context) { + // Set VoLTE to default + android.provider.Settings.Global.putInt(context.getContentResolver(), + android.provider.Settings.Global.ENHANCED_4G_MODE_ENABLED, + ImsConfig.FeatureValueConstants.ON); + + // Set VoWiFi to default + android.provider.Settings.Global.putInt(context.getContentResolver(), + android.provider.Settings.Global.WFC_IMS_ENABLED, + ImsConfig.FeatureValueConstants.OFF); + + // Set VoWiFi mode to default + android.provider.Settings.Global.putInt(context.getContentResolver(), + android.provider.Settings.Global.WFC_IMS_MODE, + ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED); + + // Set VoWiFi roaming to default + android.provider.Settings.Global.putInt(context.getContentResolver(), + android.provider.Settings.Global.WFC_IMS_ROAMING_ENABLED, + ImsConfig.FeatureValueConstants.OFF); + + // Set VT to default + SharedPreferences sharedPrefs = + PreferenceManager.getDefaultSharedPreferences(context); + SharedPreferences.Editor editor = sharedPrefs.edit(); + editor.putBoolean(PREF_ENABLE_VIDEO_CALLING_KEY, true); + editor.commit(); + + // Push settings to ImsConfig + ImsManager.updateImsServiceConfig(context, + SubscriptionManager.getDefaultVoicePhoneId(), true); + } } |
