Return true if user can't edit Enhanced 4G LTE Mode
Sungmin Choi [Mon, 1 Feb 2016 08:15:35 +0000 (17:15 +0900)]
If user can't edit Enhanced 4G LTE Mode, it assumes Enhanced 4G LTE Mode
is always true. If user changes SIM from editable mode to uneditable mode,
need to return true.

For example,
User with SKT/KT SIM (or other carrier) can set Enhanced 4G LTE Mode to off.
And then, user changes SIM from SKT/KT to LGU.
User with LGU SIM can't change Enhanced 4G LTE Mode to on from off.
Because LGU SIM has uneditable Enhanced 4G LTE Mode config.
User can't call in this case.

Change-Id: I0ea1e55fa0708218982b2b738d49310343682896

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

index 7637e9d..4127551 100644 (file)
@@ -202,6 +202,12 @@ public class ImsManager {
      * Returns the user configuration of Enhanced 4G LTE Mode setting
      */
     public static boolean isEnhanced4gLteModeSettingEnabledByUser(Context context) {
+        // If user can't edit Enhanced 4G LTE Mode, it assumes Enhanced 4G LTE Mode is always true.
+        // If user changes SIM from editable mode to uneditable mode, need to return true.
+        if (!getBooleanCarrierConfig(context,
+                    CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL)) {
+            return true;
+        }
         int enabled = android.provider.Settings.Global.getInt(
                     context.getContentResolver(),
                     android.provider.Settings.Global.ENHANCED_4G_MODE_ENABLED, ImsConfig.FeatureValueConstants.ON);