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

Commit 88a96f40 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove the ability to override dev options from adb" into main

parents c6dc738d e4627c78
Loading
Loading
Loading
Loading
+8 −38
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityThread;
import android.content.Context;
import android.os.Build;
import android.os.SystemProperties;
import android.util.ArrayMap;
import android.util.Log;
@@ -321,16 +320,14 @@ public enum DesktopExperienceFlags {
        // Name of the flag, used for adb commands.
        private final String mFlagName;
        // Whether the flag state should be affected by developer option.
        private final boolean mShouldOverrideByDevOptionDefault;
        // Cached value for that flag: null if not read yet.
        private Boolean mCachedIsOverrideByDevOption;
        private final boolean mShouldOverrideByDevOption;

        public DesktopExperienceFlag(BooleanSupplier flagFunction,
                boolean shouldOverrideByDevOption,
                @Nullable String flagName) {
            this.mFlagFunction = flagFunction;
            this.mFlagName = flagName;
            this.mShouldOverrideByDevOptionDefault = shouldOverrideByDevOption;
            this.mShouldOverrideByDevOption = shouldOverrideByDevOption;
            if (Flags.showDesktopExperienceDevOption()) {
                registerFlag(flagName, this);
            }
@@ -344,11 +341,7 @@ public enum DesktopExperienceFlags {
         * user will reboot very soon so being inconsistent across threads is ok.
         */
        public boolean isTrue() {
            if (mCachedIsOverrideByDevOption == null) {
                mCachedIsOverrideByDevOption = checkIfFlagShouldBeOverridden(mFlagName,
                        mShouldOverrideByDevOptionDefault);
            }
            return isFlagTrue(mFlagFunction, mCachedIsOverrideByDevOption);
            return isFlagTrue(mFlagFunction, mShouldOverrideByDevOption);
        }

        public String getFlagName() {
@@ -360,7 +353,7 @@ public enum DesktopExperienceFlags {
        }

        public boolean isOverridable() {
            return mShouldOverrideByDevOptionDefault;
            return mShouldOverrideByDevOption;
        }
    }

@@ -370,9 +363,7 @@ public enum DesktopExperienceFlags {
    // Name of the flag, used for adb commands.
    private final String mFlagName;
    // Whether the flag state should be affected by developer option.
    private final boolean mShouldOverrideByDevOptionDefault;
    // Cached value for that flag: null if not read yet.
    private Boolean mCachedIsOverrideByDevOption;
    private final boolean mShouldOverrideByDevOption;

    // Local cache for toggle override, which is initialized once on its first access. It needs to
    // be refreshed only on reboots as overridden state is expected to take effect on reboots.
@@ -398,7 +389,7 @@ public enum DesktopExperienceFlags {
            @NonNull String flagName) {
        this.mFlagFunction = flagFunction;
        this.mFlagName = flagName;
        this.mShouldOverrideByDevOptionDefault = shouldOverrideByDevOption;
        this.mShouldOverrideByDevOption = shouldOverrideByDevOption;
    }

    /**
@@ -409,11 +400,7 @@ public enum DesktopExperienceFlags {
     * user will reboot very soon so being inconsistent across threads is ok.
     */
    public boolean isTrue() {
        if (mCachedIsOverrideByDevOption == null) {
            mCachedIsOverrideByDevOption = checkIfFlagShouldBeOverridden(mFlagName,
                    mShouldOverrideByDevOptionDefault);
        }
        return isFlagTrue(mFlagFunction, mCachedIsOverrideByDevOption);
        return isFlagTrue(mFlagFunction, mShouldOverrideByDevOption);
    }

    public boolean getFlagValue() {
@@ -426,7 +413,7 @@ public enum DesktopExperienceFlags {

    /** Returns whether or not the developer option can override that flag. */
    public boolean isOverridable() {
        return mShouldOverrideByDevOptionDefault;
        return mShouldOverrideByDevOption;
    }

    private static boolean isFlagTrue(
@@ -445,23 +432,6 @@ public enum DesktopExperienceFlags {
        return new ArrayList<>(sDynamicFlags.values());
    }

    private static boolean checkIfFlagShouldBeOverridden(@Nullable String flagName,
            boolean defaultValue) {
        if (!Build.IS_ENG && !Build.IS_USERDEBUG) {
            return defaultValue;
        }
        if (!Flags.showDesktopExperienceDevOption() || enableDisplayContentModeManagement()) {
            return false;
        }
        if (flagName == null || flagName.isEmpty()) {
            return defaultValue;
        }
        int lastDot = flagName.lastIndexOf('.');
        String baseName = lastDot >= 0 ? flagName.substring(lastDot + 1) : flagName;
        return SystemProperties.getBoolean(SYSTEM_PROPERTY_OVERRIDE_PREFIX + baseName,
                defaultValue);
    }

    /** Check whether the flags are overridden to true or not. */
    public static boolean getToggleOverride() {
        // If cached, return it