CarrierAppUtils: Improve readability of update state logic

Bug: 232141900
Test: atest CarrierAppUtilsTest
Flag: com.android.internal.telephony.flags.cleanup_carrier_app_update_enabled_state_logic
Change-Id: Ic8db3501c0154e27f3e3f8c741206118e53e36da
diff --git a/telephony/common/com/android/internal/telephony/CarrierAppUtils.java b/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
index ff9cba2..f001232 100644
--- a/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
+++ b/telephony/common/com/android/internal/telephony/CarrierAppUtils.java
@@ -33,6 +33,7 @@
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.flags.Flags;
 import com.android.internal.telephony.util.TelephonyUtils;
 
 import java.util.ArrayList;
@@ -185,11 +186,7 @@
                 if (hasPrivileges) {
                     // Only update enabled state for the app on /system. Once it has been
                     // updated we shouldn't touch it.
-                    if (!isUpdatedSystemApp(ai) && enabledSetting
-                            == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
-                            || enabledSetting
-                            == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED
-                            || (ai.flags & ApplicationInfo.FLAG_INSTALLED) == 0) {
+                    if (shouldUpdateEnabledState(ai, enabledSetting)) {
                         Log.i(TAG, "Update state (" + packageName + "): ENABLED for user "
                                 + userId);
                         context.createContextAsUser(UserHandle.of(userId), 0)
@@ -330,6 +327,21 @@
         }
     }
 
+    private static boolean shouldUpdateEnabledState(ApplicationInfo appInfo, int enabledSetting) {
+        if (Flags.cleanupCarrierAppUpdateEnabledStateLogic()) {
+            return !isUpdatedSystemApp(appInfo)
+                    && (enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
+                            || enabledSetting
+                                    == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED
+                            || (appInfo.flags & ApplicationInfo.FLAG_INSTALLED) == 0);
+        } else {
+            return !isUpdatedSystemApp(appInfo)
+                            && enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
+                    || enabledSetting == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED
+                    || (appInfo.flags & ApplicationInfo.FLAG_INSTALLED) == 0;
+        }
+    }
+
     /**
      * Returns the list of "default" carrier apps.
      *