diff options
author | 2023-09-28 21:37:48 +0000 | |
---|---|---|
committer | 2023-10-05 13:45:27 +0000 | |
commit | c56f34bd2b3191cc47a35e75517b3aee34cff59e (patch) | |
tree | 97936891a7ee95f5825456a3885518091e8f9923 | |
parent | 429b99da0587e16f7686edd7af1e502625328d9c (diff) |
Replace class TEAMFOOD with aconfig TEAMFOOD
We leave NULL_FLAG in its place because we need some sort of static
constant for initialization purposes.
Fixes: 302578396
Test: atest com.android.systemui.flags
Change-Id: I1b71c7b49ef6697692ad08a87c60c3bba079cd41
6 files changed, 20 insertions, 15 deletions
diff --git a/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt b/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt index 3360c967a182..aef83710c17b 100644 --- a/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt +++ b/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt @@ -24,7 +24,7 @@ object FlagsFactory { val knownFlags: Map<String, Flag<*>> get() { // We need to access Flags in order to initialize our map. - assert(flagMap.contains(Flags.TEAMFOOD.name)) { "Where is teamfood?" } + assert(flagMap.contains(Flags.NULL_FLAG.name)) { "Where is the null flag?" } return flagMap } diff --git a/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt b/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt index 75465c27724d..f4b429659d8a 100644 --- a/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt +++ b/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt @@ -24,7 +24,7 @@ object FlagsFactory { val knownFlags: Map<String, Flag<*>> get() { // We need to access Flags in order to initialize our map. - assert(flagMap.contains(Flags.TEAMFOOD.name)) { "Where is teamfood?" } + assert(flagMap.contains(Flags.NULL_FLAG.name)) { "Where is the null flag?" } return flagMap } diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java index 6bbd40c4f892..14db14eb1d76 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java +++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsClassicDebug.java @@ -37,6 +37,7 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import com.android.systemui.FeatureFlags; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.util.settings.GlobalSettings; @@ -81,6 +82,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { private final Map<String, Boolean> mBooleanFlagCache = new ConcurrentHashMap<>(); private final Map<String, String> mStringFlagCache = new ConcurrentHashMap<>(); private final Map<String, Integer> mIntFlagCache = new ConcurrentHashMap<>(); + private final FeatureFlags mGantryFlags; private final Restarter mRestarter; private final ServerFlagReader.ChangeListener mOnPropertiesChanged = @@ -125,6 +127,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { @Main Resources resources, ServerFlagReader serverFlagReader, @Named(ALL_FLAGS) Map<String, Flag<?>> allFlags, + FeatureFlags gantryFlags, Restarter restarter) { mFlagManager = flagManager; mContext = context; @@ -133,6 +136,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { mSystemProperties = systemProperties; mServerFlagReader = serverFlagReader; mAllFlags = allFlags; + mGantryFlags = gantryFlags; mRestarter = restarter; } @@ -260,9 +264,8 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { if (!hasServerOverride && !defaultValue && result == null - && !flag.getName().equals(Flags.TEAMFOOD.getName()) && flag.getTeamfood()) { - return isEnabled(Flags.TEAMFOOD); + return mGantryFlags.sysuiTeamfood(); } return result == null ? mServerFlagReader.readServerOverride( @@ -537,7 +540,7 @@ public class FeatureFlagsClassicDebug implements FeatureFlagsClassic { @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println("can override: true"); - + pw.println("teamfood: " + mGantryFlags.sysuiTeamfood()); pw.println("booleans: " + mBooleanFlagCache.size()); // Sort our flags for dumping TreeMap<String, Boolean> dumpBooleanMap = new TreeMap<>(mBooleanFlagCache); diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt index 74ee2068513f..63f1dda86380 100644 --- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt +++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt @@ -36,7 +36,10 @@ import com.android.systemui.flags.FlagsFactory.unreleasedFlag * See [FeatureFlagsClassicDebug] for instructions on flipping the flags via adb. */ object Flags { - @JvmField val TEAMFOOD = unreleasedFlag("teamfood") + // IGNORE ME! + // Because flags are static, we need an ever-present flag to reference in some of the internal + // code that ensure that other flags are referenced and available. + @JvmField val NULL_FLAG = unreleasedFlag("null_flag") // 100 - notification // TODO(b/297792660): Tracking Bug diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt index 37c70d8f25e0..2bd2bff80951 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt @@ -43,10 +43,10 @@ class FakeFeatureFlagsTest : SysuiTestCase() { fun accessingUnspecifiedFlags_throwsException() { val flags: FeatureFlags = FakeFeatureFlags() try { - assertThat(flags.isEnabled(Flags.TEAMFOOD)).isFalse() + assertThat(flags.isEnabled(Flags.NULL_FLAG)).isFalse() fail("Expected an exception when accessing an unspecified flag.") } catch (ex: IllegalStateException) { - assertThat(ex.message).contains("UNKNOWN(teamfood)") + assertThat(ex.message).contains("UNKNOWN(null_flag)") } try { assertThat(flags.isEnabled(unreleasedFlag)).isFalse() diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsClassicDebugTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsClassicDebugTest.kt index 14c5ec0361f6..8d8bc6d0e814 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsClassicDebugTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsClassicDebugTest.kt @@ -22,6 +22,7 @@ import android.content.pm.PackageManager.NameNotFoundException import android.content.res.Resources import android.content.res.Resources.NotFoundException import android.test.suitebuilder.annotation.SmallTest +import com.android.systemui.FakeFeatureFlagsImpl import com.android.systemui.SysuiTestCase import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq @@ -66,6 +67,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { private lateinit var broadcastReceiver: BroadcastReceiver private lateinit var clearCacheAction: Consumer<String> private val serverFlagReader = ServerFlagReaderFake() + private val fakeGantryFlags = FakeFeatureFlagsImpl() private val teamfoodableFlagA = UnreleasedFlag(name = "a", namespace = "test", teamfood = true) private val teamfoodableFlagB = ReleasedFlag(name = "b", namespace = "test", teamfood = true) @@ -73,7 +75,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { @Before fun setup() { MockitoAnnotations.initMocks(this) - flagMap.put(Flags.TEAMFOOD.name, Flags.TEAMFOOD) + fakeGantryFlags.setFlag("com.android.systemui.sysui_teamfood", false) flagMap.put(teamfoodableFlagA.name, teamfoodableFlagA) flagMap.put(teamfoodableFlagB.name, teamfoodableFlagB) mFeatureFlagsClassicDebug = @@ -85,6 +87,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { resources, serverFlagReader, flagMap, + fakeGantryFlags, restarter ) mFeatureFlagsClassicDebug.init() @@ -122,8 +125,6 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { @Test fun teamFoodFlag_False() { - whenever(flagManager.readFlagValue<Boolean>(eq(Flags.TEAMFOOD.name), any())) - .thenReturn(false) assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagA)).isFalse() assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagB)).isTrue() @@ -134,8 +135,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { @Test fun teamFoodFlag_True() { - whenever(flagManager.readFlagValue<Boolean>(eq(Flags.TEAMFOOD.name), any())) - .thenReturn(true) + fakeGantryFlags.setFlag("com.android.systemui.sysui_teamfood", true) assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagA)).isTrue() assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagB)).isTrue() @@ -150,8 +150,7 @@ class FeatureFlagsClassicDebugTest : SysuiTestCase() { .thenReturn(true) whenever(flagManager.readFlagValue<Boolean>(eq(teamfoodableFlagB.name), any())) .thenReturn(false) - whenever(flagManager.readFlagValue<Boolean>(eq(Flags.TEAMFOOD.name), any())) - .thenReturn(true) + fakeGantryFlags.setFlag("com.android.systemui.sysui_teamfood", true) assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagA)).isTrue() assertThat(mFeatureFlagsClassicDebug.isEnabled(teamfoodableFlagB)).isFalse() |