]> nv-tegra.nvidia Code Review - android/platform/frameworks/opt/net/ims.git/commitdiff
am 0e4c7c10: am 3a99f787: Prevent WFC Settings changes from impacting VoLTE Settings
authorNathan Harold <nharold@google.com>
Wed, 29 Jul 2015 01:27:03 +0000 (01:27 +0000)
committerAndroid Git Automerger <android-git-automerger@android.com>
Wed, 29 Jul 2015 01:27:03 +0000 (01:27 +0000)
* commit '0e4c7c103ee34f974334fa949570650e2780e8bc':
  Prevent WFC Settings changes from impacting VoLTE Settings

1  2 
src/java/com/android/ims/ImsManager.java

index 5a14a1e411ec704d1069db14a8ff61002f58a20e,447407e202367083dfa5a35d99ddb8ad835cd210..574082092f076ec80931e4b3f9776d6164fee1a3
@@@ -295,49 -295,6 +295,49 @@@ public class ImsManager 
                          CarrierConfigManager.KEY_CARRIER_VT_AVAILABLE_BOOL);
      }
  
 +    /**
 +     * Returns the user configuration of VT setting
 +     */
 +    public static boolean isVtEnabledByUser(Context context) {
 +        int enabled = android.provider.Settings.Global.getInt(context.getContentResolver(),
 +                android.provider.Settings.Global.VT_IMS_ENABLED,
 +                ImsConfig.FeatureValueConstants.ON);
 +        return (enabled == 1) ? true : false;
 +    }
 +
 +    /**
 +     * Change persistent VT enabled setting
 +     */
 +    public static void setVtSetting(Context context, boolean enabled) {
 +        int value = enabled ? 1 : 0;
 +        android.provider.Settings.Global.putInt(context.getContentResolver(),
 +                android.provider.Settings.Global.VT_IMS_ENABLED, value);
 +
 +        ImsManager imsManager = ImsManager.getInstance(context,
 +                SubscriptionManager.getDefaultVoicePhoneId());
 +        if (imsManager != null) {
 +            try {
 +                ImsConfig config = imsManager.getConfigInterface();
 +                config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE,
 +                        TelephonyManager.NETWORK_TYPE_LTE,
 +                        enabled ? ImsConfig.FeatureValueConstants.ON
 +                                : ImsConfig.FeatureValueConstants.OFF, null);
 +
 +                if (enabled) {
 +                    imsManager.turnOnIms();
 +                } else if (context.getResources().getBoolean(
 +                        com.android.internal.R.bool.imsServiceAllowTurnOff) && (
 +                        !isVolteEnabledByPlatform(context)
 +                        || !isEnhanced4gLteModeSettingEnabledByUser(context))) {
 +                    log("setVtSetting() : imsServiceAllowTurnOff -> turnOffIms");
 +                    imsManager.turnOffIms();
 +                }
 +            } catch (ImsException e) {
 +                loge("setVtSetting(): " + e);
 +            }
 +        }
 +    }
 +
      /**
       * Returns the user configuration of WFC setting
       */
          if (imsManager != null) {
              try {
                  ImsConfig config = imsManager.getConfigInterface();
-                 // FIXME: replace NETWORK_TYPE_LTE with NETWORK_TYPE_IWLAN
-                 // when available
                  config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI,
-                         TelephonyManager.NETWORK_TYPE_LTE,
+                         TelephonyManager.NETWORK_TYPE_IWLAN,
                          enabled ? ImsConfig.FeatureValueConstants.ON
                                  : ImsConfig.FeatureValueConstants.OFF, null);
  
      private void setAdvanced4GMode(boolean turnOn) throws ImsException {
          checkAndThrowExceptionIfServiceUnavailable();
  
 -        ImsConfig config = getConfigInterface();
 -        if (config != null) {
 -            config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE,
 -                    TelephonyManager.NETWORK_TYPE_LTE, turnOn ? 1 : 0, null);
 -            if (isVtEnabledByPlatform(mContext)) {
 -                // TODO: once VT is available on platform replace the '1' with the current
 -                // user configuration of VT.
 -                config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE,
 +        try {
 +            ImsConfig config = getConfigInterface();
 +            if (config != null) {
 +                config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE,
                          TelephonyManager.NETWORK_TYPE_LTE, turnOn ? 1 : 0, null);
 +                if (isVtEnabledByPlatform(mContext)) {
 +                    // TODO: once VT is available on platform replace the '1' with the current
 +                    // user configuration of VT.
 +                    config.setFeatureValue(ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE,
 +                            TelephonyManager.NETWORK_TYPE_LTE, turnOn ? 1 : 0, null);
 +                }
              }
 +        } catch (ImsException e) {
 +            log("setAdvanced4GMode() : " + e);
          }
 -
          if (turnOn) {
              turnOnIms();
          } else if (getBooleanCarrierConfig(mContext,
          }
  
          @Override
 -        public void registrationConnected() {
 +        public void registrationConnected(int imsRadioTech) {
 +            // Note: imsRadioTech value maps to RIL_RADIO_TECHNOLOGY
 +            //       values in ServiceState.java.
              if (DBG) {
 -                log("registrationConnected ::");
 +                log("registrationConnected :: imsRadioTech=" + imsRadioTech);
              }
  
              if (mListener != null) {
          }
  
          @Override
 -        public void registrationProgressing() {
 +        public void registrationProgressing(int imsRadioTech) {
 +            // Note: imsRadioTech value maps to RIL_RADIO_TECHNOLOGY
 +            //       values in ServiceState.java.
              if (DBG) {
 -                log("registrationProgressing ::");
 +                log("registrationProgressing :: imsRadioTech=" + imsRadioTech);
              }
  
              if (mListener != null) {