Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b3ce174 authored by Jesse Melhuish's avatar Jesse Melhuish
Browse files

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
parent 276222e0
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.util.ArrayMap;
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 @@ public final class CarrierAppUtils {
                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 @@ public final class CarrierAppUtils {
        }
    }

    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.
     *