Loading core/java/android/window/DesktopExperienceFlags.java +8 −38 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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() { Loading @@ -360,7 +353,7 @@ public enum DesktopExperienceFlags { } public boolean isOverridable() { return mShouldOverrideByDevOptionDefault; return mShouldOverrideByDevOption; } } Loading @@ -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. Loading @@ -398,7 +389,7 @@ public enum DesktopExperienceFlags { @NonNull String flagName) { this.mFlagFunction = flagFunction; this.mFlagName = flagName; this.mShouldOverrideByDevOptionDefault = shouldOverrideByDevOption; this.mShouldOverrideByDevOption = shouldOverrideByDevOption; } /** Loading @@ -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() { Loading @@ -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( Loading @@ -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 Loading Loading
core/java/android/window/DesktopExperienceFlags.java +8 −38 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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() { Loading @@ -360,7 +353,7 @@ public enum DesktopExperienceFlags { } public boolean isOverridable() { return mShouldOverrideByDevOptionDefault; return mShouldOverrideByDevOption; } } Loading @@ -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. Loading @@ -398,7 +389,7 @@ public enum DesktopExperienceFlags { @NonNull String flagName) { this.mFlagFunction = flagFunction; this.mFlagName = flagName; this.mShouldOverrideByDevOptionDefault = shouldOverrideByDevOption; this.mShouldOverrideByDevOption = shouldOverrideByDevOption; } /** Loading @@ -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() { Loading @@ -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( Loading @@ -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 Loading