Merge "Remove ids from SystemUI Flagging System." into udc-qpr-dev
diff --git a/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt b/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
index b6aae69..f1a4007 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt
@@ -24,14 +24,12 @@
/**
* Base interface for flags that can change value on a running device.
- * @property id unique id to help identify this flag. Must be unique. This will be removed soon.
* @property teamfood Set to true to include this flag as part of the teamfood flag. This will
* be removed soon.
* @property name Used for server-side flagging where appropriate. Also used for display. No spaces.
* @property namespace The server-side namespace that this flag lives under.
*/
interface Flag<T> {
- val id: Int
val teamfood: Boolean
val name: String
val namespace: String
@@ -58,7 +56,6 @@
*/
// Consider using the "parcelize" kotlin library.
abstract class BooleanFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: Boolean = false,
@@ -74,8 +71,17 @@
}
}
+ private constructor(
+ id: Int,
+ name: String,
+ namespace: String,
+ default: Boolean,
+ teamfood: Boolean,
+ overridden: Boolean,
+ ) : this(name, namespace, default, teamfood, overridden)
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readBoolean(),
@@ -84,7 +90,7 @@
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeBoolean(default)
@@ -99,12 +105,11 @@
* It can be changed or overridden in debug builds but not in release builds.
*/
data class UnreleasedFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val teamfood: Boolean = false,
override val overridden: Boolean = false
-) : BooleanFlag(id, name, namespace, false, teamfood, overridden)
+) : BooleanFlag(name, namespace, false, teamfood, overridden)
/**
* A Flag that is true by default.
@@ -112,12 +117,11 @@
* It can be changed or overridden in any build, meaning it can be turned off if needed.
*/
data class ReleasedFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val teamfood: Boolean = false,
override val overridden: Boolean = false
-) : BooleanFlag(id, name, namespace, true, teamfood, overridden)
+) : BooleanFlag(name, namespace, true, teamfood, overridden)
/**
* A Flag that reads its default values from a resource overlay instead of code.
@@ -125,7 +129,6 @@
* Prefer [UnreleasedFlag] and [ReleasedFlag].
*/
data class ResourceBooleanFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
@BoolRes override val resourceId: Int,
@@ -140,7 +143,6 @@
* Prefer [UnreleasedFlag] and [ReleasedFlag].
*/
data class SysPropBooleanFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: Boolean = false,
@@ -150,7 +152,6 @@
}
data class StringFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: String = "",
@@ -165,15 +166,21 @@
}
}
+ private constructor(id: Int, name: String, namespace: String, default: String) : this(
+ name,
+ namespace,
+ default
+ )
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readString() ?: ""
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeString(default)
@@ -181,7 +188,6 @@
}
data class ResourceStringFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
@StringRes override val resourceId: Int,
@@ -189,7 +195,6 @@
) : ResourceFlag<String>
data class IntFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: Int = 0,
@@ -205,15 +210,21 @@
}
}
+ private constructor(id: Int, name: String, namespace: String, default: Int) : this(
+ name,
+ namespace,
+ default
+ )
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readInt()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeInt(default)
@@ -221,7 +232,6 @@
}
data class ResourceIntFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
@IntegerRes override val resourceId: Int,
@@ -229,11 +239,10 @@
) : ResourceFlag<Int>
data class LongFlag constructor(
- override val id: Int,
- override val default: Long = 0,
- override val teamfood: Boolean = false,
override val name: String,
override val namespace: String,
+ override val default: Long = 0,
+ override val teamfood: Boolean = false,
override val overridden: Boolean = false
) : ParcelableFlag<Long> {
@@ -245,15 +254,21 @@
}
}
+ private constructor(id: Int, name: String, namespace: String, default: Long) : this(
+ name,
+ namespace,
+ default
+ )
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readLong()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeLong(default)
@@ -261,7 +276,6 @@
}
data class FloatFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: Float = 0f,
@@ -277,15 +291,21 @@
}
}
+ private constructor(id: Int, name: String, namespace: String, default: Float) : this(
+ name,
+ namespace,
+ default
+ )
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readFloat()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeFloat(default)
@@ -293,7 +313,6 @@
}
data class ResourceFloatFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val resourceId: Int,
@@ -301,7 +320,6 @@
) : ResourceFlag<Int>
data class DoubleFlag constructor(
- override val id: Int,
override val name: String,
override val namespace: String,
override val default: Double = 0.0,
@@ -317,15 +335,21 @@
}
}
+ private constructor(id: Int, name: String, namespace: String, default: Double) : this(
+ name,
+ namespace,
+ default
+ )
+
private constructor(parcel: Parcel) : this(
- id = parcel.readInt(),
+ parcel.readInt(),
name = parcel.readString() ?: "",
namespace = parcel.readString() ?: "",
default = parcel.readDouble()
)
override fun writeToParcel(parcel: Parcel, flags: Int) {
- parcel.writeInt(id)
+ parcel.writeInt(0)
parcel.writeString(name)
parcel.writeString(namespace)
parcel.writeDouble(default)
diff --git a/packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt b/packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt
index da1641c..1366226 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt
@@ -116,13 +116,6 @@
}
/** Returns the stored value or null if not set. */
- // TODO(b/265188950): Remove method this once ids are fully deprecated.
- fun <T> readFlagValue(id: Int, serializer: FlagSerializer<T>): T? {
- val data = settings.getStringFromSecure(idToSettingsKey(id))
- return serializer.fromSettingsData(data)
- }
-
- /** Returns the stored value or null if not set. */
fun <T> readFlagValue(name: String, serializer: FlagSerializer<T>): T? {
val data = settings.getString(nameToSettingsKey(name))
return serializer.fromSettingsData(data)
@@ -158,11 +151,6 @@
return intent
}
- // TODO(b/265188950): Remove method this once ids are fully deprecated.
- fun idToSettingsKey(id: Int): String {
- return "$SETTINGS_PREFIX/$id"
- }
-
fun nameToSettingsKey(name: String): String {
return "$SETTINGS_PREFIX/$name"
}
diff --git a/packages/SystemUI/shared/src/com/android/systemui/flags/FlagSettingsHelper.kt b/packages/SystemUI/shared/src/com/android/systemui/flags/FlagSettingsHelper.kt
index 6beb851..e0a7fea 100644
--- a/packages/SystemUI/shared/src/com/android/systemui/flags/FlagSettingsHelper.kt
+++ b/packages/SystemUI/shared/src/com/android/systemui/flags/FlagSettingsHelper.kt
@@ -22,7 +22,6 @@
class FlagSettingsHelper(private val contentResolver: ContentResolver) {
- // TODO(b/265188950): Remove method this once ids are fully deprecated.
fun getStringFromSecure(key: String): String? = Settings.Secure.getString(contentResolver, key)
fun getString(key: String): String? = Settings.Global.getString(contentResolver, key)
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 c22d689..3360c96 100644
--- a/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt
+++ b/packages/SystemUI/src-debug/com/android/systemui/flags/FlagsFactory.kt
@@ -29,35 +29,31 @@
}
fun unreleasedFlag(
- id: Int,
name: String,
namespace: String = "systemui",
teamfood: Boolean = false
): UnreleasedFlag {
- val flag = UnreleasedFlag(id = id, name = name, namespace = namespace, teamfood = teamfood)
+ val flag = UnreleasedFlag(name = name, namespace = namespace, teamfood = teamfood)
checkForDupesAndAdd(flag)
return flag
}
fun releasedFlag(
- id: Int,
name: String,
namespace: String = "systemui",
): ReleasedFlag {
- val flag = ReleasedFlag(id = id, name = name, namespace = namespace, teamfood = false)
+ val flag = ReleasedFlag(name = name, namespace = namespace, teamfood = false)
checkForDupesAndAdd(flag)
return flag
}
fun resourceBooleanFlag(
- id: Int,
@BoolRes resourceId: Int,
name: String,
namespace: String = "systemui",
): ResourceBooleanFlag {
val flag =
ResourceBooleanFlag(
- id = id,
name = name,
namespace = namespace,
resourceId = resourceId,
@@ -68,13 +64,11 @@
}
fun sysPropBooleanFlag(
- id: Int,
name: String,
namespace: String = "systemui",
default: Boolean = false
): SysPropBooleanFlag {
- val flag =
- SysPropBooleanFlag(id = id, name = name, namespace = "systemui", default = default)
+ val flag = SysPropBooleanFlag(name = name, namespace = "systemui", default = default)
checkForDupesAndAdd(flag)
return flag
}
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 5502da1..75465c2 100644
--- a/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt
+++ b/packages/SystemUI/src-release/com/android/systemui/flags/FlagsFactory.kt
@@ -29,35 +29,31 @@
}
fun unreleasedFlag(
- id: Int,
name: String,
namespace: String = "systemui",
teamfood: Boolean = false
): UnreleasedFlag {
// Unreleased flags are always false in this build.
- val flag = UnreleasedFlag(id = id, name = "", namespace = "", teamfood = false)
+ val flag = UnreleasedFlag(name = name, namespace = namespace, teamfood = false)
return flag
}
fun releasedFlag(
- id: Int,
name: String,
namespace: String = "systemui",
): ReleasedFlag {
- val flag = ReleasedFlag(id = id, name = name, namespace = namespace, teamfood = false)
+ val flag = ReleasedFlag(name = name, namespace = namespace, teamfood = false)
flagMap[name] = flag
return flag
}
fun resourceBooleanFlag(
- id: Int,
@BoolRes resourceId: Int,
name: String,
namespace: String = "systemui",
): ResourceBooleanFlag {
val flag =
ResourceBooleanFlag(
- id = id,
name = name,
namespace = namespace,
resourceId = resourceId,
@@ -68,13 +64,11 @@
}
fun sysPropBooleanFlag(
- id: Int,
name: String,
namespace: String = "systemui",
default: Boolean = false
): SysPropBooleanFlag {
- val flag =
- SysPropBooleanFlag(id = id, name = name, namespace = namespace, default = default)
+ val flag = SysPropBooleanFlag(name = name, namespace = namespace, default = default)
flagMap[name] = flag
return flag
}
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java
index 2c11d78..4c78e4c 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java
+++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java
@@ -32,7 +32,6 @@
import android.content.res.Resources;
import android.os.Bundle;
import android.os.UserHandle;
-import android.provider.DeviceConfig;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -94,8 +93,7 @@
shouldRestart = true;
}
} else if (mStringFlagCache.containsKey(flag.getName())) {
- String newValue = value == null ? "" : value;
- if (mStringFlagCache.get(flag.getName()) != value) {
+ if (!mStringFlagCache.get(flag.getName()).equals(value)) {
shouldRestart = true;
}
} else if (mIntFlagCache.containsKey(flag.getName())) {
@@ -203,8 +201,7 @@
String name = flag.getName();
if (!mStringFlagCache.containsKey(name)) {
mStringFlagCache.put(name,
- readFlagValueInternal(
- flag.getId(), name, flag.getDefault(), StringFlagSerializer.INSTANCE));
+ readFlagValueInternal(name, flag.getDefault(), StringFlagSerializer.INSTANCE));
}
return mStringFlagCache.get(name);
@@ -216,36 +213,30 @@
String name = flag.getName();
if (!mStringFlagCache.containsKey(name)) {
mStringFlagCache.put(name,
- readFlagValueInternal(
- flag.getId(), name, mResources.getString(flag.getResourceId()),
+ readFlagValueInternal(name, mResources.getString(flag.getResourceId()),
StringFlagSerializer.INSTANCE));
}
return mStringFlagCache.get(name);
}
-
- @NonNull
@Override
public int getInt(@NonNull IntFlag flag) {
String name = flag.getName();
if (!mIntFlagCache.containsKey(name)) {
mIntFlagCache.put(name,
- readFlagValueInternal(
- flag.getId(), name, flag.getDefault(), IntFlagSerializer.INSTANCE));
+ readFlagValueInternal(name, flag.getDefault(), IntFlagSerializer.INSTANCE));
}
return mIntFlagCache.get(name);
}
- @NonNull
@Override
public int getInt(@NonNull ResourceIntFlag flag) {
String name = flag.getName();
if (!mIntFlagCache.containsKey(name)) {
mIntFlagCache.put(name,
- readFlagValueInternal(
- flag.getId(), name, mResources.getInteger(flag.getResourceId()),
+ readFlagValueInternal(name, mResources.getInteger(flag.getResourceId()),
IntFlagSerializer.INSTANCE));
}
@@ -255,13 +246,6 @@
/** Specific override for Boolean flags that checks against the teamfood list.*/
private boolean readBooleanFlagInternal(Flag<Boolean> flag, boolean defaultValue) {
Boolean result = readBooleanFlagOverride(flag.getName());
- if (result == null) {
- result = readBooleanFlagOverride(flag.getId());
- if (result != null) {
- // Move overrides from id to name
- setFlagValueInternal(flag.getName(), result, BooleanFlagSerializer.INSTANCE);
- }
- }
boolean hasServerOverride = mServerFlagReader.hasOverride(
flag.getNamespace(), flag.getName());
@@ -279,45 +263,22 @@
flag.getNamespace(), flag.getName(), defaultValue) : result;
}
- private Boolean readBooleanFlagOverride(int id) {
- return readFlagValueInternal(id, BooleanFlagSerializer.INSTANCE);
- }
private Boolean readBooleanFlagOverride(String name) {
return readFlagValueInternal(name, BooleanFlagSerializer.INSTANCE);
}
- // TODO(b/265188950): Remove id from this method once ids are fully deprecated.
@NonNull
private <T> T readFlagValueInternal(
- int id, String name, @NonNull T defaultValue, FlagSerializer<T> serializer) {
+ String name, @NonNull T defaultValue, FlagSerializer<T> serializer) {
requireNonNull(defaultValue, "defaultValue");
T resultForName = readFlagValueInternal(name, serializer);
if (resultForName == null) {
- T resultForId = readFlagValueInternal(id, serializer);
- if (resultForId == null) {
- return defaultValue;
- } else {
- setFlagValue(name, resultForId, serializer);
- return resultForId;
- }
+ return defaultValue;
}
return resultForName;
}
-
- /** Returns the stored value or null if not set. */
- // TODO(b/265188950): Remove method this once ids are fully deprecated.
- @Nullable
- private <T> T readFlagValueInternal(int id, FlagSerializer<T> serializer) {
- try {
- return mFlagManager.readFlagValue(id, serializer);
- } catch (Exception e) {
- eraseInternal(id);
- }
- return null;
- }
-
/** Returns the stored value or null if not set. */
@Nullable
private <T> T readFlagValueInternal(String name, FlagSerializer<T> serializer) {
@@ -385,15 +346,6 @@
}
/** Works just like {@link #eraseFlag(String)} except that it doesn't restart SystemUI. */
- // TODO(b/265188950): Remove method this once ids are fully deprecated.
- private void eraseInternal(int id) {
- // We can't actually "erase" things from settings, but we can set them to empty!
- mGlobalSettings.putStringForUser(mFlagManager.idToSettingsKey(id), "",
- UserHandle.USER_CURRENT);
- Log.i(TAG, "Erase name " + id);
- }
-
- /** Works just like {@link #eraseFlag(String)} except that it doesn't restart SystemUI. */
private void eraseInternal(String name) {
// We can't actually "erase" things from settings, but we can set them to empty!
mGlobalSettings.putStringForUser(mFlagManager.nameToSettingsKey(name), "",
@@ -434,7 +386,7 @@
setFlagValue(flag.getName(), value, BooleanFlagSerializer.INSTANCE);
} else if (flag instanceof SysPropBooleanFlag) {
// Store SysProp flags in SystemProperties where they can read by outside parties.
- mSystemProperties.setBoolean(((SysPropBooleanFlag) flag).getName(), value);
+ mSystemProperties.setBoolean(flag.getName(), value);
dispatchListenersAndMaybeRestart(
flag.getName(),
suppressRestart -> restartSystemUI(
@@ -527,7 +479,7 @@
}
} catch (IllegalArgumentException e) {
Log.w(TAG,
- "Unable to set " + flag.getId() + " of type " + flag.getClass()
+ "Unable to set " + flag.getName() + " of type " + flag.getClass()
+ " to value of type " + (value == null ? null : value.getClass()));
}
}
@@ -545,21 +497,18 @@
if (f instanceof ReleasedFlag) {
enabled = isEnabled((ReleasedFlag) f);
- overridden = readBooleanFlagOverride(f.getName()) != null
- || readBooleanFlagOverride(f.getId()) != null;
+ overridden = readBooleanFlagOverride(f.getName()) != null;
} else if (f instanceof UnreleasedFlag) {
enabled = isEnabled((UnreleasedFlag) f);
- overridden = readBooleanFlagOverride(f.getName()) != null
- || readBooleanFlagOverride(f.getId()) != null;
+ overridden = readBooleanFlagOverride(f.getName()) != null;
} else if (f instanceof ResourceBooleanFlag) {
enabled = isEnabled((ResourceBooleanFlag) f);
- overridden = readBooleanFlagOverride(f.getName()) != null
- || readBooleanFlagOverride(f.getId()) != null;
+ overridden = readBooleanFlagOverride(f.getName()) != null;
} else if (f instanceof SysPropBooleanFlag) {
// TODO(b/223379190): Teamfood not supported for sysprop flags yet.
enabled = isEnabled((SysPropBooleanFlag) f);
teamfood = false;
- overridden = !mSystemProperties.get(((SysPropBooleanFlag) f).getName()).isEmpty();
+ overridden = !mSystemProperties.get(f.getName()).isEmpty();
} else {
// TODO: add support for other flag types.
Log.w(TAG, "Unsupported Flag Type. Please file a bug.");
@@ -567,11 +516,9 @@
}
if (enabled) {
- return new ReleasedFlag(
- f.getId(), f.getName(), f.getNamespace(), teamfood, overridden);
+ return new ReleasedFlag(f.getName(), f.getNamespace(), teamfood, overridden);
} else {
- return new UnreleasedFlag(
- f.getId(), f.getName(), f.getNamespace(), teamfood, overridden);
+ return new UnreleasedFlag(f.getName(), f.getNamespace(), teamfood, overridden);
}
}
};
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java
index 9d19a7d..e03b438 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java
+++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java
@@ -67,7 +67,7 @@
}
} else if (mStringCache.containsKey(flag.getName())) {
String newValue = value == null ? "" : value;
- if (mStringCache.get(flag.getName()) != newValue) {
+ if (!mStringCache.get(flag.getName()).equals(newValue)) {
shouldRestart = true;
}
} else if (mIntCache.containsKey(flag.getName())) {
@@ -185,14 +185,12 @@
return mStringCache.get(name);
}
- @NonNull
@Override
public int getInt(@NonNull IntFlag flag) {
// Fill the cache.
return getIntInternal(flag.getName(), flag.getDefault());
}
- @NonNull
@Override
public int getInt(@NonNull ResourceIntFlag flag) {
// Fill the cache.
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FlagCommand.java b/packages/SystemUI/src/com/android/systemui/flags/FlagCommand.java
index daf9429..bd0ed48 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/FlagCommand.java
+++ b/packages/SystemUI/src/com/android/systemui/flags/FlagCommand.java
@@ -219,17 +219,6 @@
return 0;
}
- private int flagNameToId(String flagName) {
- Map<String, Flag<?>> flagFields = FlagsFactory.INSTANCE.getKnownFlags();
- for (String fieldName : flagFields.keySet()) {
- if (flagName.equals(fieldName)) {
- return flagFields.get(fieldName).getId();
- }
- }
-
- return 0;
- }
-
private void printKnownFlags(PrintWriter pw) {
Map<String, Flag<?>> fields = FlagsFactory.INSTANCE.getKnownFlags();
diff --git a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
index 2b96317..d1a9d6bc 100644
--- a/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
+++ b/packages/SystemUI/src/com/android/systemui/flags/Flags.kt
@@ -36,30 +36,29 @@
* See [FeatureFlagsDebug] for instructions on flipping the flags via adb.
*/
object Flags {
- @JvmField val TEAMFOOD = unreleasedFlag(1, "teamfood")
+ @JvmField val TEAMFOOD = unreleasedFlag("teamfood")
// 100 - notification
// TODO(b/254512751): Tracking Bug
val NOTIFICATION_PIPELINE_DEVELOPER_LOGGING =
- unreleasedFlag(103, "notification_pipeline_developer_logging")
+ unreleasedFlag("notification_pipeline_developer_logging")
// TODO(b/254512732): Tracking Bug
- @JvmField val NSSL_DEBUG_LINES = unreleasedFlag(105, "nssl_debug_lines")
+ @JvmField val NSSL_DEBUG_LINES = unreleasedFlag("nssl_debug_lines")
// TODO(b/254512505): Tracking Bug
- @JvmField val NSSL_DEBUG_REMOVE_ANIMATION = unreleasedFlag(106, "nssl_debug_remove_animation")
+ @JvmField val NSSL_DEBUG_REMOVE_ANIMATION = unreleasedFlag("nssl_debug_remove_animation")
// TODO(b/254512624): Tracking Bug
@JvmField
val NOTIFICATION_DRAG_TO_CONTENTS =
resourceBooleanFlag(
- 108,
R.bool.config_notificationToContents,
"notification_drag_to_contents"
)
// TODO(b/254512538): Tracking Bug
- val INSTANT_VOICE_REPLY = unreleasedFlag(111, "instant_voice_reply")
+ val INSTANT_VOICE_REPLY = unreleasedFlag("instant_voice_reply")
/**
* This flag controls whether we register a listener for StatsD notification memory reports.
@@ -67,48 +66,47 @@
* enabled as well.
*/
val NOTIFICATION_MEMORY_LOGGING_ENABLED =
- releasedFlag(119, "notification_memory_logging_enabled")
+ releasedFlag("notification_memory_logging_enabled")
// TODO(b/260335638): Tracking Bug
@JvmField
val NOTIFICATION_INLINE_REPLY_ANIMATION =
- unreleasedFlag(174148361, "notification_inline_reply_animation")
+ unreleasedFlag("notification_inline_reply_animation")
/** Makes sure notification panel is updated before the user switch is complete. */
// TODO(b/278873737): Tracking Bug
@JvmField
val LOAD_NOTIFICATIONS_BEFORE_THE_USER_SWITCH_IS_COMPLETE =
- releasedFlag(278873737, "load_notifications_before_the_user_switch_is_complete")
+ releasedFlag("load_notifications_before_the_user_switch_is_complete")
// TODO(b/277338665): Tracking Bug
@JvmField
val NOTIFICATION_SHELF_REFACTOR =
- unreleasedFlag(271161129, "notification_shelf_refactor", teamfood = true)
+ unreleasedFlag("notification_shelf_refactor", teamfood = true)
// TODO(b/290787599): Tracking Bug
@JvmField
val NOTIFICATION_ICON_CONTAINER_REFACTOR =
- unreleasedFlag(278765923, "notification_icon_container_refactor")
+ unreleasedFlag("notification_icon_container_refactor")
// TODO(b/288326013): Tracking Bug
@JvmField
val NOTIFICATION_ASYNC_HYBRID_VIEW_INFLATION =
- unreleasedFlag(288326013, "notification_async_hybrid_view_inflation", teamfood = false)
+ unreleasedFlag("notification_async_hybrid_view_inflation", teamfood = false)
@JvmField
val ANIMATED_NOTIFICATION_SHADE_INSETS =
- releasedFlag(270682168, "animated_notification_shade_insets")
+ releasedFlag("animated_notification_shade_insets")
// TODO(b/268005230): Tracking Bug
@JvmField
- val SENSITIVE_REVEAL_ANIM = unreleasedFlag(268005230, "sensitive_reveal_anim", teamfood = true)
+ val SENSITIVE_REVEAL_ANIM = unreleasedFlag("sensitive_reveal_anim", teamfood = true)
// TODO(b/280783617): Tracking Bug
@Keep
@JvmField
val BUILDER_EXTRAS_OVERRIDE =
sysPropBooleanFlag(
- 128,
"persist.sysui.notification.builder_extras_override",
default = true
)
@@ -117,27 +115,26 @@
// TODO(b/292213543): Tracking Bug
@JvmField
val NOTIFICATION_GROUP_EXPANSION_CHANGE =
- unreleasedFlag(292213543, "notification_group_expansion_change", teamfood = false)
+ unreleasedFlag("notification_group_expansion_change", teamfood = false)
// 200 - keyguard/lockscreen
// ** Flag retired **
// public static final BooleanFlag KEYGUARD_LAYOUT =
- // new BooleanFlag(200, true);
+ // new BooleanFlag(true);
// TODO(b/254512750): Tracking Bug
- val NEW_UNLOCK_SWIPE_ANIMATION = releasedFlag(202, "new_unlock_swipe_animation")
- val CHARGING_RIPPLE = resourceBooleanFlag(203, R.bool.flag_charging_ripple, "charging_ripple")
+ val NEW_UNLOCK_SWIPE_ANIMATION = releasedFlag("new_unlock_swipe_animation")
+ val CHARGING_RIPPLE = resourceBooleanFlag(R.bool.flag_charging_ripple, "charging_ripple")
// TODO(b/254512281): Tracking Bug
@JvmField
val BOUNCER_USER_SWITCHER =
- resourceBooleanFlag(204, R.bool.config_enableBouncerUserSwitcher, "bouncer_user_switcher")
+ resourceBooleanFlag(R.bool.config_enableBouncerUserSwitcher, "bouncer_user_switcher")
// TODO(b/254512676): Tracking Bug
@JvmField
val LOCKSCREEN_CUSTOM_CLOCKS =
resourceBooleanFlag(
- 207,
R.bool.config_enableLockScreenCustomClocks,
"lockscreen_custom_clocks"
)
@@ -145,28 +142,28 @@
// TODO(b/275694445): Tracking Bug
@JvmField
val LOCKSCREEN_WITHOUT_SECURE_LOCK_WHEN_DREAMING =
- releasedFlag(208, "lockscreen_without_secure_lock_when_dreaming")
+ releasedFlag("lockscreen_without_secure_lock_when_dreaming")
// TODO(b/286092087): Tracking Bug
@JvmField
- val ENABLE_SYSTEM_UI_DREAM_CONTROLLER = unreleasedFlag(301, "enable_system_ui_dream_controller")
+ val ENABLE_SYSTEM_UI_DREAM_CONTROLLER = unreleasedFlag("enable_system_ui_dream_controller")
// TODO(b/288287730): Tracking Bug
@JvmField
- val ENABLE_SYSTEM_UI_DREAM_HOSTING = unreleasedFlag(302, "enable_system_ui_dream_hosting")
+ val ENABLE_SYSTEM_UI_DREAM_HOSTING = unreleasedFlag("enable_system_ui_dream_hosting")
/**
* Whether the clock on a wide lock screen should use the new "stepping" animation for moving
* the digits when the clock moves.
*/
- @JvmField val STEP_CLOCK_ANIMATION = releasedFlag(212, "step_clock_animation")
+ @JvmField val STEP_CLOCK_ANIMATION = releasedFlag("step_clock_animation")
/**
* Migration from the legacy isDozing/dozeAmount paths to the new KeyguardTransitionRepository
* will occur in stages. This is one stage of many to come.
*/
// TODO(b/255607168): Tracking Bug
- @JvmField val DOZING_MIGRATION_1 = unreleasedFlag(213, "dozing_migration_1")
+ @JvmField val DOZING_MIGRATION_1 = unreleasedFlag("dozing_migration_1")
/**
* Migrates control of the LightRevealScrim's reveal effect and amount from legacy code to the
@@ -174,79 +171,79 @@
*/
// TODO(b/281655028): Tracking bug
@JvmField
- val LIGHT_REVEAL_MIGRATION = unreleasedFlag(218, "light_reveal_migration", teamfood = false)
+ val LIGHT_REVEAL_MIGRATION = unreleasedFlag("light_reveal_migration", teamfood = false)
/** Flag to control the migration of face auth to modern architecture. */
// TODO(b/262838215): Tracking bug
- @JvmField val FACE_AUTH_REFACTOR = unreleasedFlag(220, "face_auth_refactor")
+ @JvmField val FACE_AUTH_REFACTOR = unreleasedFlag("face_auth_refactor")
/** Flag to control the revamp of keyguard biometrics progress animation */
// TODO(b/244313043): Tracking bug
- @JvmField val BIOMETRICS_ANIMATION_REVAMP = unreleasedFlag(221, "biometrics_animation_revamp")
+ @JvmField val BIOMETRICS_ANIMATION_REVAMP = unreleasedFlag("biometrics_animation_revamp")
// TODO(b/262780002): Tracking Bug
- @JvmField val REVAMPED_WALLPAPER_UI = releasedFlag(222, "revamped_wallpaper_ui")
+ @JvmField val REVAMPED_WALLPAPER_UI = releasedFlag("revamped_wallpaper_ui")
// flag for controlling auto pin confirmation and material u shapes in bouncer
@JvmField
- val AUTO_PIN_CONFIRMATION = releasedFlag(224, "auto_pin_confirmation", "auto_pin_confirmation")
+ val AUTO_PIN_CONFIRMATION = releasedFlag("auto_pin_confirmation", "auto_pin_confirmation")
// TODO(b/262859270): Tracking Bug
- @JvmField val FALSING_OFF_FOR_UNFOLDED = releasedFlag(225, "falsing_off_for_unfolded")
+ @JvmField val FALSING_OFF_FOR_UNFOLDED = releasedFlag("falsing_off_for_unfolded")
/** Enables code to show contextual loyalty cards in wallet entrypoints */
// TODO(b/294110497): Tracking Bug
@JvmField
val ENABLE_WALLET_CONTEXTUAL_LOYALTY_CARDS =
- unreleasedFlag(226, "enable_wallet_contextual_loyalty_cards", teamfood = true)
+ unreleasedFlag("enable_wallet_contextual_loyalty_cards", teamfood = true)
// TODO(b/242908637): Tracking Bug
- @JvmField val WALLPAPER_FULLSCREEN_PREVIEW = releasedFlag(227, "wallpaper_fullscreen_preview")
+ @JvmField val WALLPAPER_FULLSCREEN_PREVIEW = releasedFlag("wallpaper_fullscreen_preview")
/** Whether the long-press gesture to open wallpaper picker is enabled. */
// TODO(b/266242192): Tracking Bug
@JvmField
- val LOCK_SCREEN_LONG_PRESS_ENABLED = releasedFlag(228, "lock_screen_long_press_enabled")
+ val LOCK_SCREEN_LONG_PRESS_ENABLED = releasedFlag("lock_screen_long_press_enabled")
/** Enables UI updates for AI wallpapers in the wallpaper picker. */
// TODO(b/267722622): Tracking Bug
- @JvmField val WALLPAPER_PICKER_UI_FOR_AIWP = releasedFlag(229, "wallpaper_picker_ui_for_aiwp")
+ @JvmField val WALLPAPER_PICKER_UI_FOR_AIWP = releasedFlag("wallpaper_picker_ui_for_aiwp")
/** Whether to use a new data source for intents to run on keyguard dismissal. */
// TODO(b/275069969): Tracking bug.
@JvmField
- val REFACTOR_KEYGUARD_DISMISS_INTENT = unreleasedFlag(231, "refactor_keyguard_dismiss_intent")
+ val REFACTOR_KEYGUARD_DISMISS_INTENT = unreleasedFlag("refactor_keyguard_dismiss_intent")
/** Whether to allow long-press on the lock screen to directly open wallpaper picker. */
// TODO(b/277220285): Tracking bug.
@JvmField
val LOCK_SCREEN_LONG_PRESS_DIRECT_TO_WPP =
- unreleasedFlag(232, "lock_screen_long_press_directly_opens_wallpaper_picker")
+ unreleasedFlag("lock_screen_long_press_directly_opens_wallpaper_picker")
/** Whether page transition animations in the wallpaper picker are enabled */
// TODO(b/291710220): Tracking bug.
@JvmField
val WALLPAPER_PICKER_PAGE_TRANSITIONS =
- unreleasedFlag(291710220, "wallpaper_picker_page_transitions")
+ unreleasedFlag("wallpaper_picker_page_transitions")
/** Add "Apply" button to wall paper picker's grid preview page. */
// TODO(b/294866904): Tracking bug.
@JvmField
val WALLPAPER_PICKER_GRID_APPLY_BUTTON =
- unreleasedFlag(294866904, "wallpaper_picker_grid_apply_button")
+ unreleasedFlag("wallpaper_picker_grid_apply_button")
/** Whether to run the new udfps keyguard refactor code. */
// TODO(b/279440316): Tracking bug.
@JvmField
- val REFACTOR_UDFPS_KEYGUARD_VIEWS = unreleasedFlag(233, "refactor_udfps_keyguard_views")
+ val REFACTOR_UDFPS_KEYGUARD_VIEWS = unreleasedFlag("refactor_udfps_keyguard_views")
/** Provide new auth messages on the bouncer. */
// TODO(b/277961132): Tracking bug.
- @JvmField val REVAMPED_BOUNCER_MESSAGES = unreleasedFlag(234, "revamped_bouncer_messages")
+ @JvmField val REVAMPED_BOUNCER_MESSAGES = unreleasedFlag("revamped_bouncer_messages")
/** Whether to delay showing bouncer UI when face auth or active unlock are enrolled. */
// TODO(b/279794160): Tracking bug.
- @JvmField val DELAY_BOUNCER = releasedFlag(235, "delay_bouncer")
+ @JvmField val DELAY_BOUNCER = releasedFlag("delay_bouncer")
/** Keyguard Migration */
@@ -257,220 +254,216 @@
// TODO(b/290652751): Tracking bug.
@JvmField
val MIGRATE_SPLIT_KEYGUARD_BOTTOM_AREA =
- unreleasedFlag(290652751, "migrate_split_keyguard_bottom_area")
+ unreleasedFlag("migrate_split_keyguard_bottom_area")
/** Whether to listen for fingerprint authentication over keyguard occluding activities. */
// TODO(b/283260512): Tracking bug.
- @JvmField val FP_LISTEN_OCCLUDING_APPS = unreleasedFlag(237, "fp_listen_occluding_apps",
+ @JvmField val FP_LISTEN_OCCLUDING_APPS = unreleasedFlag("fp_listen_occluding_apps",
teamfood = true)
/** Flag meant to guard the talkback fix for the KeyguardIndicationTextView */
// TODO(b/286563884): Tracking bug
- @JvmField val KEYGUARD_TALKBACK_FIX = releasedFlag(238, "keyguard_talkback_fix")
+ @JvmField val KEYGUARD_TALKBACK_FIX = releasedFlag("keyguard_talkback_fix")
// TODO(b/287268101): Tracking bug.
- @JvmField val TRANSIT_CLOCK = releasedFlag(239, "lockscreen_custom_transit_clock")
+ @JvmField val TRANSIT_CLOCK = releasedFlag("lockscreen_custom_transit_clock")
/** Migrate the lock icon view to the new keyguard root view. */
// TODO(b/286552209): Tracking bug.
- @JvmField val MIGRATE_LOCK_ICON = unreleasedFlag(240, "migrate_lock_icon")
+ @JvmField val MIGRATE_LOCK_ICON = unreleasedFlag("migrate_lock_icon")
// TODO(b/288276738): Tracking bug.
- @JvmField val WIDGET_ON_KEYGUARD = unreleasedFlag(241, "widget_on_keyguard")
+ @JvmField val WIDGET_ON_KEYGUARD = unreleasedFlag("widget_on_keyguard")
/** Migrate the NSSL to the a sibling to both the panel and keyguard root view. */
// TODO(b/288074305): Tracking bug.
- @JvmField val MIGRATE_NSSL = unreleasedFlag(242, "migrate_nssl")
+ @JvmField val MIGRATE_NSSL = unreleasedFlag("migrate_nssl")
/** Migrate the status view from the notification panel to keyguard root view. */
// TODO(b/291767565): Tracking bug.
- @JvmField val MIGRATE_KEYGUARD_STATUS_VIEW = unreleasedFlag(243, "migrate_keyguard_status_view")
+ @JvmField val MIGRATE_KEYGUARD_STATUS_VIEW = unreleasedFlag("migrate_keyguard_status_view")
/** Enables preview loading animation in the wallpaper picker. */
// TODO(b/274443705): Tracking Bug
@JvmField
val WALLPAPER_PICKER_PREVIEW_ANIMATION =
unreleasedFlag(
- 244,
"wallpaper_picker_preview_animation",
teamfood = true
)
/** Stop running face auth when the display state changes to OFF. */
// TODO(b/294221702): Tracking bug.
- @JvmField val STOP_FACE_AUTH_ON_DISPLAY_OFF = resourceBooleanFlag(245,
+ @JvmField val STOP_FACE_AUTH_ON_DISPLAY_OFF = resourceBooleanFlag(
R.bool.flag_stop_face_auth_on_display_off, "stop_face_auth_on_display_off")
// 300 - power menu
// TODO(b/254512600): Tracking Bug
- @JvmField val POWER_MENU_LITE = releasedFlag(300, "power_menu_lite")
+ @JvmField val POWER_MENU_LITE = releasedFlag("power_menu_lite")
// 400 - smartspace
// TODO(b/254513100): Tracking Bug
val SMARTSPACE_SHARED_ELEMENT_TRANSITION_ENABLED =
- releasedFlag(401, "smartspace_shared_element_transition_enabled")
+ releasedFlag("smartspace_shared_element_transition_enabled")
// TODO(b/258517050): Clean up after the feature is launched.
@JvmField
val SMARTSPACE_DATE_WEATHER_DECOUPLED =
- sysPropBooleanFlag(403, "persist.sysui.ss.dw_decoupled", default = true)
+ sysPropBooleanFlag("persist.sysui.ss.dw_decoupled", default = true)
// TODO(b/270223352): Tracking Bug
@JvmField
- val HIDE_SMARTSPACE_ON_DREAM_OVERLAY = releasedFlag(404, "hide_smartspace_on_dream_overlay")
+ val HIDE_SMARTSPACE_ON_DREAM_OVERLAY = releasedFlag("hide_smartspace_on_dream_overlay")
// TODO(b/271460958): Tracking Bug
@JvmField
val SHOW_WEATHER_COMPLICATION_ON_DREAM_OVERLAY =
- releasedFlag(405, "show_weather_complication_on_dream_overlay")
+ releasedFlag("show_weather_complication_on_dream_overlay")
// 500 - quick settings
- val PEOPLE_TILE = resourceBooleanFlag(502, R.bool.flag_conversations, "people_tile")
+ val PEOPLE_TILE = resourceBooleanFlag(R.bool.flag_conversations, "people_tile")
@JvmField
val QS_USER_DETAIL_SHORTCUT =
resourceBooleanFlag(
- 503,
R.bool.flag_lockscreen_qs_user_detail_shortcut,
"qs_user_detail_shortcut"
)
@JvmField
- val QS_PIPELINE_NEW_HOST = unreleasedFlag(504, "qs_pipeline_new_host", teamfood = true)
+ val QS_PIPELINE_NEW_HOST = unreleasedFlag("qs_pipeline_new_host", teamfood = true)
// TODO(b/278068252): Tracking Bug
@JvmField
- val QS_PIPELINE_AUTO_ADD = unreleasedFlag(505, "qs_pipeline_auto_add", teamfood = false)
+ val QS_PIPELINE_AUTO_ADD = unreleasedFlag("qs_pipeline_auto_add", teamfood = false)
// TODO(b/254512383): Tracking Bug
@JvmField
val FULL_SCREEN_USER_SWITCHER =
resourceBooleanFlag(
- 506,
R.bool.config_enableFullscreenUserSwitcher,
"full_screen_user_switcher"
)
// TODO(b/244064524): Tracking Bug
- @JvmField val QS_SECONDARY_DATA_SUB_INFO = releasedFlag(508, "qs_secondary_data_sub_info")
+ @JvmField val QS_SECONDARY_DATA_SUB_INFO = releasedFlag("qs_secondary_data_sub_info")
/** Enables Font Scaling Quick Settings tile */
// TODO(b/269341316): Tracking Bug
- @JvmField val ENABLE_FONT_SCALING_TILE = releasedFlag(509, "enable_font_scaling_tile")
+ @JvmField val ENABLE_FONT_SCALING_TILE = releasedFlag("enable_font_scaling_tile")
/** Enables new QS Edit Mode visual refresh */
// TODO(b/269787742): Tracking Bug
@JvmField
- val ENABLE_NEW_QS_EDIT_MODE = unreleasedFlag(510, "enable_new_qs_edit_mode", teamfood = false)
+ val ENABLE_NEW_QS_EDIT_MODE = unreleasedFlag("enable_new_qs_edit_mode", teamfood = false)
// 600- status bar
// TODO(b/265892345): Tracking Bug
- val PLUG_IN_STATUS_BAR_CHIP = releasedFlag(265892345, "plug_in_status_bar_chip")
+ val PLUG_IN_STATUS_BAR_CHIP = releasedFlag("plug_in_status_bar_chip")
// TODO(b/280426085): Tracking Bug
- @JvmField val NEW_BLUETOOTH_REPOSITORY = releasedFlag(612, "new_bluetooth_repository")
+ @JvmField val NEW_BLUETOOTH_REPOSITORY = releasedFlag("new_bluetooth_repository")
// TODO(b/292533677): Tracking Bug
val WIFI_TRACKER_LIB_FOR_WIFI_ICON =
- unreleasedFlag(613, "wifi_tracker_lib_for_wifi_icon", teamfood = true)
+ unreleasedFlag("wifi_tracker_lib_for_wifi_icon", teamfood = true)
// TODO(b/293863612): Tracking Bug
@JvmField val INCOMPATIBLE_CHARGING_BATTERY_ICON =
- unreleasedFlag(614, "incompatible_charging_battery_icon")
+ unreleasedFlag("incompatible_charging_battery_icon")
// TODO(b/293585143): Tracking Bug
- val INSTANT_TETHER = unreleasedFlag(615, "instant_tether")
+ val INSTANT_TETHER = unreleasedFlag("instant_tether")
// TODO(b/294588085): Tracking Bug
- val WIFI_SECONDARY_NETWORKS = unreleasedFlag(617, "wifi_secondary_networks")
+ val WIFI_SECONDARY_NETWORKS = unreleasedFlag("wifi_secondary_networks")
// 700 - dialer/calls
// TODO(b/254512734): Tracking Bug
- val ONGOING_CALL_STATUS_BAR_CHIP = releasedFlag(700, "ongoing_call_status_bar_chip")
+ val ONGOING_CALL_STATUS_BAR_CHIP = releasedFlag("ongoing_call_status_bar_chip")
// TODO(b/254512681): Tracking Bug
- val ONGOING_CALL_IN_IMMERSIVE = releasedFlag(701, "ongoing_call_in_immersive")
+ val ONGOING_CALL_IN_IMMERSIVE = releasedFlag("ongoing_call_in_immersive")
// TODO(b/254512753): Tracking Bug
- val ONGOING_CALL_IN_IMMERSIVE_CHIP_TAP = releasedFlag(702, "ongoing_call_in_immersive_chip_tap")
+ val ONGOING_CALL_IN_IMMERSIVE_CHIP_TAP = releasedFlag("ongoing_call_in_immersive_chip_tap")
// 800 - general visual/theme
- @JvmField val MONET = resourceBooleanFlag(800, R.bool.flag_monet, "monet")
+ @JvmField val MONET = resourceBooleanFlag(R.bool.flag_monet, "monet")
// 801 - region sampling
// TODO(b/254512848): Tracking Bug
- val REGION_SAMPLING = unreleasedFlag(801, "region_sampling")
+ val REGION_SAMPLING = unreleasedFlag("region_sampling")
// 803 - screen contents translation
// TODO(b/254513187): Tracking Bug
- val SCREEN_CONTENTS_TRANSLATION = unreleasedFlag(803, "screen_contents_translation")
+ val SCREEN_CONTENTS_TRANSLATION = unreleasedFlag("screen_contents_translation")
// 804 - monochromatic themes
- @JvmField val MONOCHROMATIC_THEME = releasedFlag(804, "monochromatic")
+ @JvmField val MONOCHROMATIC_THEME = releasedFlag("monochromatic")
// TODO(b/293380347): Tracking Bug
- @JvmField val COLOR_FIDELITY = unreleasedFlag(805, "color_fidelity")
+ @JvmField val COLOR_FIDELITY = unreleasedFlag("color_fidelity")
// 900 - media
// TODO(b/254512697): Tracking Bug
- val MEDIA_TAP_TO_TRANSFER = releasedFlag(900, "media_tap_to_transfer")
+ val MEDIA_TAP_TO_TRANSFER = releasedFlag("media_tap_to_transfer")
// TODO(b/254512502): Tracking Bug
- val MEDIA_SESSION_ACTIONS = unreleasedFlag(901, "media_session_actions")
+ val MEDIA_SESSION_ACTIONS = unreleasedFlag("media_session_actions")
// TODO(b/254512654): Tracking Bug
- @JvmField val DREAM_MEDIA_COMPLICATION = unreleasedFlag(905, "dream_media_complication")
+ @JvmField val DREAM_MEDIA_COMPLICATION = unreleasedFlag("dream_media_complication")
// TODO(b/254512673): Tracking Bug
- @JvmField val DREAM_MEDIA_TAP_TO_OPEN = unreleasedFlag(906, "dream_media_tap_to_open")
+ @JvmField val DREAM_MEDIA_TAP_TO_OPEN = unreleasedFlag("dream_media_tap_to_open")
// TODO(b/254513168): Tracking Bug
- @JvmField val UMO_SURFACE_RIPPLE = releasedFlag(907, "umo_surface_ripple")
+ @JvmField val UMO_SURFACE_RIPPLE = releasedFlag("umo_surface_ripple")
// TODO(b/261734857): Tracking Bug
- @JvmField val UMO_TURBULENCE_NOISE = releasedFlag(909, "umo_turbulence_noise")
+ @JvmField val UMO_TURBULENCE_NOISE = releasedFlag("umo_turbulence_noise")
// TODO(b/263272731): Tracking Bug
- val MEDIA_TTT_RECEIVER_SUCCESS_RIPPLE = releasedFlag(910, "media_ttt_receiver_success_ripple")
+ val MEDIA_TTT_RECEIVER_SUCCESS_RIPPLE = releasedFlag("media_ttt_receiver_success_ripple")
// TODO(b/266157412): Tracking Bug
- val MEDIA_RETAIN_SESSIONS = unreleasedFlag(913, "media_retain_sessions")
+ val MEDIA_RETAIN_SESSIONS = unreleasedFlag("media_retain_sessions")
// TODO(b/267007629): Tracking Bug
- val MEDIA_RESUME_PROGRESS = releasedFlag(915, "media_resume_progress")
+ val MEDIA_RESUME_PROGRESS = releasedFlag("media_resume_progress")
// TODO(b/267166152) : Tracking Bug
- val MEDIA_RETAIN_RECOMMENDATIONS = unreleasedFlag(916, "media_retain_recommendations")
+ val MEDIA_RETAIN_RECOMMENDATIONS = unreleasedFlag("media_retain_recommendations")
// TODO(b/270437894): Tracking Bug
- val MEDIA_REMOTE_RESUME = unreleasedFlag(917, "media_remote_resume")
+ val MEDIA_REMOTE_RESUME = unreleasedFlag("media_remote_resume")
// 1000 - dock
- val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag(1000, "simulate_dock_through_charging")
+ val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag("simulate_dock_through_charging")
// TODO(b/254512758): Tracking Bug
- @JvmField val ROUNDED_BOX_RIPPLE = releasedFlag(1002, "rounded_box_ripple")
+ @JvmField val ROUNDED_BOX_RIPPLE = releasedFlag("rounded_box_ripple")
// TODO(b/273509374): Tracking Bug
@JvmField
val ALWAYS_SHOW_HOME_CONTROLS_ON_DREAMS =
- releasedFlag(1006, "always_show_home_controls_on_dreams")
+ releasedFlag("always_show_home_controls_on_dreams")
// 1100 - windowing
@Keep
@JvmField
val WM_ENABLE_SHELL_TRANSITIONS =
- sysPropBooleanFlag(1100, "persist.wm.debug.shell_transit", default = true)
+ sysPropBooleanFlag("persist.wm.debug.shell_transit", default = true)
// TODO(b/254513207): Tracking Bug
@Keep
@JvmField
val WM_ENABLE_PARTIAL_SCREEN_SHARING =
unreleasedFlag(
- 1102,
name = "record_task_content",
namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER,
teamfood = true
@@ -480,50 +473,49 @@
@Keep
@JvmField
val HIDE_NAVBAR_WINDOW =
- sysPropBooleanFlag(1103, "persist.wm.debug.hide_navbar_window", default = false)
+ sysPropBooleanFlag("persist.wm.debug.hide_navbar_window", default = false)
@Keep
@JvmField
val WM_DESKTOP_WINDOWING =
- sysPropBooleanFlag(1104, "persist.wm.debug.desktop_mode", default = false)
+ sysPropBooleanFlag("persist.wm.debug.desktop_mode", default = false)
@Keep
@JvmField
val WM_CAPTION_ON_SHELL =
- sysPropBooleanFlag(1105, "persist.wm.debug.caption_on_shell", default = true)
+ sysPropBooleanFlag("persist.wm.debug.caption_on_shell", default = true)
@Keep
@JvmField
val ENABLE_FLING_TO_DISMISS_BUBBLE =
- sysPropBooleanFlag(1108, "persist.wm.debug.fling_to_dismiss_bubble", default = true)
+ sysPropBooleanFlag("persist.wm.debug.fling_to_dismiss_bubble", default = true)
@Keep
@JvmField
val ENABLE_FLING_TO_DISMISS_PIP =
- sysPropBooleanFlag(1109, "persist.wm.debug.fling_to_dismiss_pip", default = true)
+ sysPropBooleanFlag("persist.wm.debug.fling_to_dismiss_pip", default = true)
@Keep
@JvmField
val ENABLE_PIP_KEEP_CLEAR_ALGORITHM =
- sysPropBooleanFlag(1110, "persist.wm.debug.enable_pip_keep_clear_algorithm", default = true)
+ sysPropBooleanFlag("persist.wm.debug.enable_pip_keep_clear_algorithm", default = true)
// TODO(b/256873975): Tracking Bug
@JvmField
@Keep
- val WM_BUBBLE_BAR = sysPropBooleanFlag(1111, "persist.wm.debug.bubble_bar", default = false)
+ val WM_BUBBLE_BAR = sysPropBooleanFlag("persist.wm.debug.bubble_bar", default = false)
// TODO(b/260271148): Tracking bug
@Keep
@JvmField
val WM_DESKTOP_WINDOWING_2 =
- sysPropBooleanFlag(1112, "persist.wm.debug.desktop_mode_2", default = false)
+ sysPropBooleanFlag("persist.wm.debug.desktop_mode_2", default = false)
// TODO(b/254513207): Tracking Bug to delete
@Keep
@JvmField
val WM_ENABLE_PARTIAL_SCREEN_SHARING_ENTERPRISE_POLICIES =
unreleasedFlag(
- 1113,
name = "screen_record_enterprise_policies",
namespace = DeviceConfig.NAMESPACE_WINDOW_MANAGER,
teamfood = false
@@ -533,238 +525,238 @@
@Keep
@JvmField
val ENABLE_PIP_SIZE_LARGE_SCREEN =
- sysPropBooleanFlag(1114, "persist.wm.debug.enable_pip_size_large_screen", default = true)
+ sysPropBooleanFlag("persist.wm.debug.enable_pip_size_large_screen", default = true)
// TODO(b/265998256): Tracking bug
@Keep
@JvmField
val ENABLE_PIP_APP_ICON_OVERLAY =
- sysPropBooleanFlag(1115, "persist.wm.debug.enable_pip_app_icon_overlay", default = true)
+ sysPropBooleanFlag("persist.wm.debug.enable_pip_app_icon_overlay", default = true)
// TODO(b/273443374): Tracking Bug
@Keep
@JvmField
val LOCKSCREEN_LIVE_WALLPAPER =
- sysPropBooleanFlag(1117, "persist.wm.debug.lockscreen_live_wallpaper", default = true)
+ sysPropBooleanFlag("persist.wm.debug.lockscreen_live_wallpaper", default = true)
// TODO(b/281648899): Tracking bug
@Keep
@JvmField
val WALLPAPER_MULTI_CROP =
- sysPropBooleanFlag(1118, "persist.wm.debug.wallpaper_multi_crop", default = false)
+ sysPropBooleanFlag("persist.wm.debug.wallpaper_multi_crop", default = false)
// TODO(b/290220798): Tracking Bug
@Keep
@JvmField
val ENABLE_PIP2_IMPLEMENTATION =
- sysPropBooleanFlag(1119, "persist.wm.debug.enable_pip2_implementation", default = false)
+ sysPropBooleanFlag("persist.wm.debug.enable_pip2_implementation", default = false)
// 1200 - predictive back
@Keep
@JvmField
val WM_ENABLE_PREDICTIVE_BACK =
- sysPropBooleanFlag(1200, "persist.wm.debug.predictive_back", default = true)
+ sysPropBooleanFlag("persist.wm.debug.predictive_back", default = true)
@Keep
@JvmField
val WM_ENABLE_PREDICTIVE_BACK_ANIM =
- sysPropBooleanFlag(1201, "persist.wm.debug.predictive_back_anim", default = true)
+ sysPropBooleanFlag("persist.wm.debug.predictive_back_anim", default = true)
@Keep
@JvmField
val WM_ALWAYS_ENFORCE_PREDICTIVE_BACK =
- sysPropBooleanFlag(1202, "persist.wm.debug.predictive_back_always_enforce", default = false)
+ sysPropBooleanFlag("persist.wm.debug.predictive_back_always_enforce", default = false)
// TODO(b/254512728): Tracking Bug
- @JvmField val NEW_BACK_AFFORDANCE = releasedFlag(1203, "new_back_affordance")
+ @JvmField val NEW_BACK_AFFORDANCE = releasedFlag("new_back_affordance")
// TODO(b/255854141): Tracking Bug
@JvmField
val WM_ENABLE_PREDICTIVE_BACK_SYSUI =
- unreleasedFlag(1204, "persist.wm.debug.predictive_back_sysui_enable", teamfood = true)
+ unreleasedFlag("persist.wm.debug.predictive_back_sysui_enable", teamfood = true)
// TODO(b/270987164): Tracking Bug
- @JvmField val TRACKPAD_GESTURE_FEATURES = releasedFlag(1205, "trackpad_gesture_features")
+ @JvmField val TRACKPAD_GESTURE_FEATURES = releasedFlag("trackpad_gesture_features")
// TODO(b/263826204): Tracking Bug
@JvmField
val WM_ENABLE_PREDICTIVE_BACK_BOUNCER_ANIM =
- unreleasedFlag(1206, "persist.wm.debug.predictive_back_bouncer_anim", teamfood = true)
+ unreleasedFlag("persist.wm.debug.predictive_back_bouncer_anim", teamfood = true)
// TODO(b/238475428): Tracking Bug
@JvmField
val WM_SHADE_ALLOW_BACK_GESTURE =
- sysPropBooleanFlag(1207, "persist.wm.debug.shade_allow_back_gesture", default = false)
+ sysPropBooleanFlag("persist.wm.debug.shade_allow_back_gesture", default = false)
// TODO(b/238475428): Tracking Bug
@JvmField
val WM_SHADE_ANIMATE_BACK_GESTURE =
- unreleasedFlag(1208, "persist.wm.debug.shade_animate_back_gesture", teamfood = false)
+ unreleasedFlag("persist.wm.debug.shade_animate_back_gesture", teamfood = false)
// TODO(b/265639042): Tracking Bug
@JvmField
val WM_ENABLE_PREDICTIVE_BACK_QS_DIALOG_ANIM =
- unreleasedFlag(1209, "persist.wm.debug.predictive_back_qs_dialog_anim", teamfood = true)
+ unreleasedFlag("persist.wm.debug.predictive_back_qs_dialog_anim", teamfood = true)
// TODO(b/273800936): Tracking Bug
- @JvmField val TRACKPAD_GESTURE_COMMON = releasedFlag(1210, "trackpad_gesture_common")
+ @JvmField val TRACKPAD_GESTURE_COMMON = releasedFlag("trackpad_gesture_common")
// 1300 - screenshots
// TODO(b/264916608): Tracking Bug
- @JvmField val SCREENSHOT_METADATA = unreleasedFlag(1302, "screenshot_metadata")
+ @JvmField val SCREENSHOT_METADATA = unreleasedFlag("screenshot_metadata")
// TODO(b/266955521): Tracking bug
- @JvmField val SCREENSHOT_DETECTION = releasedFlag(1303, "screenshot_detection")
+ @JvmField val SCREENSHOT_DETECTION = releasedFlag("screenshot_detection")
// TODO(b/251205791): Tracking Bug
- @JvmField val SCREENSHOT_APP_CLIPS = releasedFlag(1304, "screenshot_app_clips")
+ @JvmField val SCREENSHOT_APP_CLIPS = releasedFlag("screenshot_app_clips")
// 1400 - columbus
// TODO(b/254512756): Tracking Bug
- val QUICK_TAP_IN_PCC = releasedFlag(1400, "quick_tap_in_pcc")
+ val QUICK_TAP_IN_PCC = releasedFlag("quick_tap_in_pcc")
// TODO(b/261979569): Tracking Bug
val QUICK_TAP_FLOW_FRAMEWORK =
- unreleasedFlag(1401, "quick_tap_flow_framework", teamfood = false)
+ unreleasedFlag("quick_tap_flow_framework", teamfood = false)
// 1500 - chooser aka sharesheet
// 1700 - clipboard
- @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag(1701, "clipboard_remote_behavior")
+ @JvmField val CLIPBOARD_REMOTE_BEHAVIOR = releasedFlag("clipboard_remote_behavior")
// TODO(b/278714186) Tracking Bug
@JvmField
- val CLIPBOARD_IMAGE_TIMEOUT = unreleasedFlag(1702, "clipboard_image_timeout", teamfood = true)
+ val CLIPBOARD_IMAGE_TIMEOUT = unreleasedFlag("clipboard_image_timeout", teamfood = true)
// TODO(b/279405451): Tracking Bug
@JvmField
val CLIPBOARD_SHARED_TRANSITIONS =
- unreleasedFlag(1703, "clipboard_shared_transitions", teamfood = true)
+ unreleasedFlag("clipboard_shared_transitions", teamfood = true)
// TODO(b/283300105): Tracking Bug
- @JvmField val SCENE_CONTAINER = unreleasedFlag(1802, "scene_container")
+ @JvmField val SCENE_CONTAINER = unreleasedFlag("scene_container")
// 1900
- @JvmField val NOTE_TASKS = releasedFlag(1900, "keycode_flag")
+ @JvmField val NOTE_TASKS = releasedFlag("keycode_flag")
// 2000 - device controls
- @JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag(2001, "app_panels_all_apps_allowed")
+ @JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag("app_panels_all_apps_allowed")
// 2200 - biometrics (udfps, sfps, BiometricPrompt, etc.)
// TODO(b/259264861): Tracking Bug
- @JvmField val UDFPS_NEW_TOUCH_DETECTION = releasedFlag(2200, "udfps_new_touch_detection")
- @JvmField val UDFPS_ELLIPSE_DETECTION = releasedFlag(2201, "udfps_ellipse_detection")
+ @JvmField val UDFPS_NEW_TOUCH_DETECTION = releasedFlag("udfps_new_touch_detection")
+ @JvmField val UDFPS_ELLIPSE_DETECTION = releasedFlag("udfps_ellipse_detection")
// TODO(b/278622168): Tracking Bug
- @JvmField val BIOMETRIC_BP_STRONG = releasedFlag(2202, "biometric_bp_strong")
+ @JvmField val BIOMETRIC_BP_STRONG = releasedFlag("biometric_bp_strong")
// 2300 - stylus
- @JvmField val TRACK_STYLUS_EVER_USED = releasedFlag(2300, "track_stylus_ever_used")
- @JvmField val ENABLE_STYLUS_CHARGING_UI = releasedFlag(2301, "enable_stylus_charging_ui")
+ @JvmField val TRACK_STYLUS_EVER_USED = releasedFlag("track_stylus_ever_used")
+ @JvmField val ENABLE_STYLUS_CHARGING_UI = releasedFlag("enable_stylus_charging_ui")
@JvmField
- val ENABLE_USI_BATTERY_NOTIFICATIONS = releasedFlag(2302, "enable_usi_battery_notifications")
- @JvmField val ENABLE_STYLUS_EDUCATION = releasedFlag(2303, "enable_stylus_education")
+ val ENABLE_USI_BATTERY_NOTIFICATIONS = releasedFlag("enable_usi_battery_notifications")
+ @JvmField val ENABLE_STYLUS_EDUCATION = releasedFlag("enable_stylus_education")
// 2400 - performance tools and debugging info
// TODO(b/238923086): Tracking Bug
@JvmField
val WARN_ON_BLOCKING_BINDER_TRANSACTIONS =
- unreleasedFlag(2400, "warn_on_blocking_binder_transactions")
+ unreleasedFlag("warn_on_blocking_binder_transactions")
// TODO(b/283071711): Tracking bug
@JvmField
val TRIM_RESOURCES_WITH_BACKGROUND_TRIM_AT_LOCK =
- unreleasedFlag(2401, "trim_resources_with_background_trim_on_lock")
+ unreleasedFlag("trim_resources_with_background_trim_on_lock")
// TODO:(b/283203305): Tracking bug
- @JvmField val TRIM_FONT_CACHES_AT_UNLOCK = unreleasedFlag(2402, "trim_font_caches_on_unlock")
+ @JvmField val TRIM_FONT_CACHES_AT_UNLOCK = unreleasedFlag("trim_font_caches_on_unlock")
// 2700 - unfold transitions
// TODO(b/265764985): Tracking Bug
@Keep
@JvmField
val ENABLE_DARK_VIGNETTE_WHEN_FOLDING =
- unreleasedFlag(2700, "enable_dark_vignette_when_folding")
+ unreleasedFlag("enable_dark_vignette_when_folding")
// TODO(b/265764985): Tracking Bug
@Keep
@JvmField
val ENABLE_UNFOLD_STATUS_BAR_ANIMATIONS =
- unreleasedFlag(2701, "enable_unfold_status_bar_animations")
+ unreleasedFlag("enable_unfold_status_bar_animations")
// TODO(b259590361): Tracking bug
- val EXPERIMENTAL_FLAG = unreleasedFlag(2, "exp_flag_release")
+ val EXPERIMENTAL_FLAG = unreleasedFlag("exp_flag_release")
// 2600 - keyboard
// TODO(b/259352579): Tracking Bug
- @JvmField val SHORTCUT_LIST_SEARCH_LAYOUT = releasedFlag(2600, "shortcut_list_search_layout")
+ @JvmField val SHORTCUT_LIST_SEARCH_LAYOUT = releasedFlag("shortcut_list_search_layout")
// TODO(b/259428678): Tracking Bug
- @JvmField val KEYBOARD_BACKLIGHT_INDICATOR = releasedFlag(2601, "keyboard_backlight_indicator")
+ @JvmField val KEYBOARD_BACKLIGHT_INDICATOR = releasedFlag("keyboard_backlight_indicator")
// TODO(b/277192623): Tracking Bug
- @JvmField val KEYBOARD_EDUCATION = unreleasedFlag(2603, "keyboard_education", teamfood = false)
+ @JvmField val KEYBOARD_EDUCATION = unreleasedFlag("keyboard_education", teamfood = false)
// TODO(b/277201412): Tracking Bug
@JvmField
- val SPLIT_SHADE_SUBPIXEL_OPTIMIZATION = releasedFlag(2805, "split_shade_subpixel_optimization")
+ val SPLIT_SHADE_SUBPIXEL_OPTIMIZATION = releasedFlag("split_shade_subpixel_optimization")
// TODO(b/288868056): Tracking Bug
@JvmField
- val PARTIAL_SCREEN_SHARING_TASK_SWITCHER = unreleasedFlag(288868056, "pss_task_switcher")
+ val PARTIAL_SCREEN_SHARING_TASK_SWITCHER = unreleasedFlag("pss_task_switcher")
// TODO(b/278761837): Tracking Bug
- @JvmField val USE_NEW_ACTIVITY_STARTER = releasedFlag(2801, name = "use_new_activity_starter")
+ @JvmField val USE_NEW_ACTIVITY_STARTER = releasedFlag(name = "use_new_activity_starter")
// 2900 - Zero Jank fixes. Naming convention is: zj_<bug number>_<cuj name>
// TODO:(b/285623104): Tracking bug
@JvmField
val ZJ_285570694_LOCKSCREEN_TRANSITION_FROM_AOD =
- releasedFlag(2900, "zj_285570694_lockscreen_transition_from_aod")
+ releasedFlag("zj_285570694_lockscreen_transition_from_aod")
// 3000 - dream
// TODO(b/285059790) : Tracking Bug
@JvmField
val LOCKSCREEN_WALLPAPER_DREAM_ENABLED =
- unreleasedFlag(3000, name = "enable_lockscreen_wallpaper_dream")
+ unreleasedFlag(name = "enable_lockscreen_wallpaper_dream")
// TODO(b/283084712): Tracking Bug
- @JvmField val IMPROVED_HUN_ANIMATIONS = unreleasedFlag(283084712, "improved_hun_animations")
+ @JvmField val IMPROVED_HUN_ANIMATIONS = unreleasedFlag("improved_hun_animations")
// TODO(b/283447257): Tracking bug
@JvmField
val BIGPICTURE_NOTIFICATION_LAZY_LOADING =
- unreleasedFlag(283447257, "bigpicture_notification_lazy_loading")
+ unreleasedFlag("bigpicture_notification_lazy_loading")
// TODO(b/292062937): Tracking bug
@JvmField
val NOTIFICATION_CLEARABLE_REFACTOR =
- unreleasedFlag(292062937, "notification_clearable_refactor")
+ unreleasedFlag("notification_clearable_refactor")
// TODO(b/283740863): Tracking Bug
@JvmField
val ENABLE_NEW_PRIVACY_DIALOG =
- unreleasedFlag(283740863, "enable_new_privacy_dialog", teamfood = true)
+ unreleasedFlag("enable_new_privacy_dialog", teamfood = true)
// TODO(b/289573946): Tracking Bug
- @JvmField val PRECOMPUTED_TEXT = unreleasedFlag(289573946, "precomputed_text")
+ @JvmField val PRECOMPUTED_TEXT = unreleasedFlag("precomputed_text")
// 2900 - CentralSurfaces-related flags
// TODO(b/285174336): Tracking Bug
@JvmField
val USE_REPOS_FOR_BOUNCER_SHOWING =
- unreleasedFlag(2900, "use_repos_for_bouncer_showing", teamfood = true)
+ unreleasedFlag("use_repos_for_bouncer_showing", teamfood = true)
// 3100 - Haptic interactions
// TODO(b/290213663): Tracking Bug
@JvmField
- val ONE_WAY_HAPTICS_API_MIGRATION = unreleasedFlag(3100, "oneway_haptics_api_migration")
+ val ONE_WAY_HAPTICS_API_MIGRATION = unreleasedFlag("oneway_haptics_api_migration")
/** Enable the Compose implementation of the PeopleSpaceActivity. */
@JvmField
- val COMPOSE_PEOPLE_SPACE = unreleasedFlag(293570761, "compose_people_space")
+ val COMPOSE_PEOPLE_SPACE = unreleasedFlag("compose_people_space")
/** Enable the Compose implementation of the Quick Settings footer actions. */
@JvmField
- val COMPOSE_QS_FOOTER_ACTIONS = unreleasedFlag(293569320, "compose_qs_footer_actions")
+ val COMPOSE_QS_FOOTER_ACTIONS = unreleasedFlag("compose_qs_footer_actions")
}
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 35f0f6c..37c70d8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FakeFeatureFlagsTest.kt
@@ -28,12 +28,12 @@
@RunWith(AndroidTestingRunner::class)
class FakeFeatureFlagsTest : SysuiTestCase() {
- private val unreleasedFlag = UnreleasedFlag(-1000, "-1000", "test")
- private val releasedFlag = ReleasedFlag(-1001, "-1001", "test")
- private val stringFlag = StringFlag(-1002, "-1002", "test")
- private val resourceBooleanFlag = ResourceBooleanFlag(-1003, "-1003", "test", resourceId = -1)
- private val resourceStringFlag = ResourceStringFlag(-1004, "-1004", "test", resourceId = -1)
- private val sysPropBooleanFlag = SysPropBooleanFlag(-1005, "test", "test")
+ private val unreleasedFlag = UnreleasedFlag("-1000", "test")
+ private val releasedFlag = ReleasedFlag("-1001", "test")
+ private val stringFlag = StringFlag("-1002", "test")
+ private val resourceBooleanFlag = ResourceBooleanFlag("-1003", "test", resourceId = -1)
+ private val resourceStringFlag = ResourceStringFlag("-1004", "test", resourceId = -1)
+ private val sysPropBooleanFlag = SysPropBooleanFlag("test", "test")
/**
* FakeFeatureFlags does not honor any default values. All flags which are accessed must be
@@ -46,43 +46,43 @@
assertThat(flags.isEnabled(Flags.TEAMFOOD)).isFalse()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("id=1")
+ assertThat(ex.message).contains("UNKNOWN(teamfood)")
}
try {
assertThat(flags.isEnabled(unreleasedFlag)).isFalse()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1000)")
+ assertThat(ex.message).contains("UNKNOWN(-1000)")
}
try {
assertThat(flags.isEnabled(releasedFlag)).isFalse()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1001)")
+ assertThat(ex.message).contains("UNKNOWN(-1001)")
}
try {
assertThat(flags.isEnabled(resourceBooleanFlag)).isFalse()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1003)")
+ assertThat(ex.message).contains("UNKNOWN(-1003)")
}
try {
assertThat(flags.isEnabled(sysPropBooleanFlag)).isFalse()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1005)")
+ assertThat(ex.message).contains("UNKNOWN(test)")
}
try {
assertThat(flags.getString(stringFlag)).isEmpty()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1002)")
+ assertThat(ex.message).contains("UNKNOWN(-1002)")
}
try {
assertThat(flags.getString(resourceStringFlag)).isEmpty()
fail("Expected an exception when accessing an unspecified flag.")
} catch (ex: IllegalStateException) {
- assertThat(ex.message).contains("UNKNOWN(id=-1004)")
+ assertThat(ex.message).contains("UNKNOWN(-1004)")
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt
index 18f7db1..ff15cb3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsDebugTest.kt
@@ -74,10 +74,10 @@
private val serverFlagReader = ServerFlagReaderFake()
private val teamfoodableFlagA = UnreleasedFlag(
- 500, name = "a", namespace = "test", teamfood = true
+ name = "a", namespace = "test", teamfood = true
)
private val teamfoodableFlagB = ReleasedFlag(
- 501, name = "b", namespace = "test", teamfood = true
+ name = "b", namespace = "test", teamfood = true
)
@Before
@@ -119,7 +119,6 @@
assertThat(
featureFlagsDebug.isEnabled(
ReleasedFlag(
- 2,
name = "2",
namespace = "test"
)
@@ -128,7 +127,6 @@
assertThat(
featureFlagsDebug.isEnabled(
UnreleasedFlag(
- 3,
name = "3",
namespace = "test"
)
@@ -137,7 +135,6 @@
assertThat(
featureFlagsDebug.isEnabled(
ReleasedFlag(
- 4,
name = "4",
namespace = "test"
)
@@ -146,7 +143,6 @@
assertThat(
featureFlagsDebug.isEnabled(
UnreleasedFlag(
- 5,
name = "5",
namespace = "test"
)
@@ -208,23 +204,22 @@
assertThat(
featureFlagsDebug.isEnabled(
ResourceBooleanFlag(
- 1,
"1",
"test",
1001
)
)
).isFalse()
- assertThat(featureFlagsDebug.isEnabled(ResourceBooleanFlag(2, "2", "test", 1002))).isTrue()
- assertThat(featureFlagsDebug.isEnabled(ResourceBooleanFlag(3, "3", "test", 1003))).isTrue()
+ assertThat(featureFlagsDebug.isEnabled(ResourceBooleanFlag("2", "test", 1002))).isTrue()
+ assertThat(featureFlagsDebug.isEnabled(ResourceBooleanFlag("3", "test", 1003))).isTrue()
Assert.assertThrows(NameNotFoundException::class.java) {
- featureFlagsDebug.isEnabled(ResourceBooleanFlag(4, "4", "test", 1004))
+ featureFlagsDebug.isEnabled(ResourceBooleanFlag("4", "test", 1004))
}
// Test that resource is loaded (and validated) even when the setting is set.
// This prevents developers from not noticing when they reference an invalid resource.
Assert.assertThrows(NameNotFoundException::class.java) {
- featureFlagsDebug.isEnabled(ResourceBooleanFlag(5, "5", "test", 1005))
+ featureFlagsDebug.isEnabled(ResourceBooleanFlag("5", "test", 1005))
}
}
@@ -237,30 +232,29 @@
return@thenAnswer it.getArgument(1)
}
- assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag(1, "a", "test"))).isFalse()
- assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag(2, "b", "test"))).isTrue()
- assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag(3, "c", "test", true))).isTrue()
+ assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag("a", "test"))).isFalse()
+ assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag("b", "test"))).isTrue()
+ assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag("c", "test", true))).isTrue()
assertThat(
featureFlagsDebug.isEnabled(
SysPropBooleanFlag(
- 4,
"d",
"test",
false
)
)
).isFalse()
- assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag(5, "e", "test"))).isFalse()
+ assertThat(featureFlagsDebug.isEnabled(SysPropBooleanFlag("e", "test"))).isFalse()
}
@Test
fun readStringFlag() {
whenever(flagManager.readFlagValue<String>(eq("3"), any())).thenReturn("foo")
whenever(flagManager.readFlagValue<String>(eq("4"), any())).thenReturn("bar")
- assertThat(featureFlagsDebug.getString(StringFlag(1, "1", "test", "biz"))).isEqualTo("biz")
- assertThat(featureFlagsDebug.getString(StringFlag(2, "2", "test", "baz"))).isEqualTo("baz")
- assertThat(featureFlagsDebug.getString(StringFlag(3, "3", "test", "buz"))).isEqualTo("foo")
- assertThat(featureFlagsDebug.getString(StringFlag(4, "4", "test", "buz"))).isEqualTo("bar")
+ assertThat(featureFlagsDebug.getString(StringFlag("1", "test", "biz"))).isEqualTo("biz")
+ assertThat(featureFlagsDebug.getString(StringFlag("2", "test", "baz"))).isEqualTo("baz")
+ assertThat(featureFlagsDebug.getString(StringFlag("3", "test", "buz"))).isEqualTo("foo")
+ assertThat(featureFlagsDebug.getString(StringFlag("4", "test", "buz"))).isEqualTo("bar")
}
@Test
@@ -279,7 +273,6 @@
assertThat(
featureFlagsDebug.getString(
ResourceStringFlag(
- 1,
"1",
"test",
1001
@@ -289,7 +282,6 @@
assertThat(
featureFlagsDebug.getString(
ResourceStringFlag(
- 2,
"2",
"test",
1002
@@ -299,7 +291,6 @@
assertThat(
featureFlagsDebug.getString(
ResourceStringFlag(
- 3,
"3",
"test",
1003
@@ -308,15 +299,15 @@
).isEqualTo("override3")
Assert.assertThrows(NullPointerException::class.java) {
- featureFlagsDebug.getString(ResourceStringFlag(4, "4", "test", 1004))
+ featureFlagsDebug.getString(ResourceStringFlag("4", "test", 1004))
}
Assert.assertThrows(NameNotFoundException::class.java) {
- featureFlagsDebug.getString(ResourceStringFlag(5, "5", "test", 1005))
+ featureFlagsDebug.getString(ResourceStringFlag("5", "test", 1005))
}
// Test that resource is loaded (and validated) even when the setting is set.
// This prevents developers from not noticing when they reference an invalid resource.
Assert.assertThrows(NameNotFoundException::class.java) {
- featureFlagsDebug.getString(ResourceStringFlag(6, "6", "test", 1005))
+ featureFlagsDebug.getString(ResourceStringFlag("6", "test", 1005))
}
}
@@ -324,10 +315,10 @@
fun readIntFlag() {
whenever(flagManager.readFlagValue<Int>(eq("3"), any())).thenReturn(22)
whenever(flagManager.readFlagValue<Int>(eq("4"), any())).thenReturn(48)
- assertThat(featureFlagsDebug.getInt(IntFlag(1, "1", "test", 12))).isEqualTo(12)
- assertThat(featureFlagsDebug.getInt(IntFlag(2, "2", "test", 93))).isEqualTo(93)
- assertThat(featureFlagsDebug.getInt(IntFlag(3, "3", "test", 8))).isEqualTo(22)
- assertThat(featureFlagsDebug.getInt(IntFlag(4, "4", "test", 234))).isEqualTo(48)
+ assertThat(featureFlagsDebug.getInt(IntFlag("1", "test", 12))).isEqualTo(12)
+ assertThat(featureFlagsDebug.getInt(IntFlag("2", "test", 93))).isEqualTo(93)
+ assertThat(featureFlagsDebug.getInt(IntFlag("3", "test", 8))).isEqualTo(22)
+ assertThat(featureFlagsDebug.getInt(IntFlag("4", "test", 234))).isEqualTo(48)
}
@Test
@@ -339,30 +330,30 @@
whenever(resources.getInteger(1005)).thenThrow(NotFoundException("unknown resource"))
whenever(resources.getInteger(1006)).thenThrow(NotFoundException("unknown resource"))
- whenever(flagManager.readFlagValue<Int>(eq(3), any())).thenReturn(20)
- whenever(flagManager.readFlagValue<Int>(eq(4), any())).thenReturn(500)
- whenever(flagManager.readFlagValue<Int>(eq(5), any())).thenReturn(9519)
+ whenever(flagManager.readFlagValue<Int>(eq("3"), any())).thenReturn(20)
+ whenever(flagManager.readFlagValue<Int>(eq("4"), any())).thenReturn(500)
+ whenever(flagManager.readFlagValue<Int>(eq("5"), any())).thenReturn(9519)
- assertThat(featureFlagsDebug.getInt(ResourceIntFlag(1, "1", "test", 1001))).isEqualTo(88)
- assertThat(featureFlagsDebug.getInt(ResourceIntFlag(2, "2", "test", 1002))).isEqualTo(61)
- assertThat(featureFlagsDebug.getInt(ResourceIntFlag(3, "3", "test", 1003))).isEqualTo(20)
+ assertThat(featureFlagsDebug.getInt(ResourceIntFlag("1", "test", 1001))).isEqualTo(88)
+ assertThat(featureFlagsDebug.getInt(ResourceIntFlag("2", "test", 1002))).isEqualTo(61)
+ assertThat(featureFlagsDebug.getInt(ResourceIntFlag("3", "test", 1003))).isEqualTo(20)
Assert.assertThrows(NotFoundException::class.java) {
- featureFlagsDebug.getInt(ResourceIntFlag(4, "4", "test", 1004))
+ featureFlagsDebug.getInt(ResourceIntFlag("4", "test", 1004))
}
// Test that resource is loaded (and validated) even when the setting is set.
// This prevents developers from not noticing when they reference an invalid resource.
Assert.assertThrows(NotFoundException::class.java) {
- featureFlagsDebug.getInt(ResourceIntFlag(5, "5", "test", 1005))
+ featureFlagsDebug.getInt(ResourceIntFlag("5", "test", 1005))
}
}
@Test
fun broadcastReceiver_IgnoresInvalidData() {
- addFlag(UnreleasedFlag(1, "1", "test"))
- addFlag(ResourceBooleanFlag(2, "2", "test", 1002))
- addFlag(StringFlag(3, "3", "test", "flag3"))
- addFlag(ResourceStringFlag(4, "4", "test", 1004))
+ addFlag(UnreleasedFlag("1", "test"))
+ addFlag(ResourceBooleanFlag("2", "test", 1002))
+ addFlag(StringFlag("3", "test", "flag3"))
+ addFlag(ResourceStringFlag("4", "test", 1004))
broadcastReceiver.onReceive(mockContext, null)
broadcastReceiver.onReceive(mockContext, Intent())
@@ -378,7 +369,7 @@
@Test
fun intentWithId_NoValueKeyClears() {
- addFlag(UnreleasedFlag(1, name = "1", namespace = "test"))
+ addFlag(UnreleasedFlag(name = "1", namespace = "test"))
// trying to erase an id not in the map does nothing
broadcastReceiver.onReceive(
@@ -397,10 +388,10 @@
@Test
fun setBooleanFlag() {
- addFlag(UnreleasedFlag(1, "1", "test"))
- addFlag(UnreleasedFlag(2, "2", "test"))
- addFlag(ResourceBooleanFlag(3, "3", "test", 1003))
- addFlag(ResourceBooleanFlag(4, "4", "test", 1004))
+ addFlag(UnreleasedFlag("1", "test"))
+ addFlag(UnreleasedFlag("2", "test"))
+ addFlag(ResourceBooleanFlag("3", "test", 1003))
+ addFlag(ResourceBooleanFlag("4", "test", 1004))
setByBroadcast("1", false)
verifyPutData("1", "{\"type\":\"boolean\",\"value\":false}")
@@ -417,8 +408,8 @@
@Test
fun setStringFlag() {
- addFlag(StringFlag(1, "1", "1", "test"))
- addFlag(ResourceStringFlag(2, "2", "test", 1002))
+ addFlag(StringFlag("1", "1", "test"))
+ addFlag(ResourceStringFlag("2", "test", 1002))
setByBroadcast("1", "override1")
verifyPutData("1", "{\"type\":\"string\",\"value\":\"override1\"}")
@@ -429,7 +420,7 @@
@Test
fun setFlag_ClearsCache() {
- val flag1 = addFlag(StringFlag(1, "1", "test", "flag1"))
+ val flag1 = addFlag(StringFlag("1", "test", "flag1"))
whenever(flagManager.readFlagValue<String>(eq("1"), any())).thenReturn("original")
// gets the flag & cache it
@@ -451,7 +442,7 @@
@Test
fun serverSide_Overrides_MakesFalse() {
- val flag = ReleasedFlag(100, "100", "test")
+ val flag = ReleasedFlag("100", "test")
serverFlagReader.setFlagValue(flag.namespace, flag.name, false)
@@ -460,7 +451,7 @@
@Test
fun serverSide_Overrides_MakesTrue() {
- val flag = UnreleasedFlag(100, name = "100", namespace = "test")
+ val flag = UnreleasedFlag(name = "100", namespace = "test")
serverFlagReader.setFlagValue(flag.namespace, flag.name, true)
assertThat(featureFlagsDebug.isEnabled(flag)).isTrue()
@@ -494,18 +485,18 @@
@Test
fun dumpFormat() {
- val flag1 = ReleasedFlag(1, "1", "test")
- val flag2 = ResourceBooleanFlag(2, "2", "test", 1002)
- val flag3 = UnreleasedFlag(3, "3", "test")
- val flag4 = StringFlag(4, "4", "test", "")
- val flag5 = StringFlag(5, "5", "test", "flag5default")
- val flag6 = ResourceStringFlag(6, "6", "test", 1006)
- val flag7 = ResourceStringFlag(7, "7", "test", 1007)
+ val flag1 = ReleasedFlag("1", "test")
+ val flag2 = ResourceBooleanFlag("2", "test", 1002)
+ val flag3 = UnreleasedFlag("3", "test")
+ val flag4 = StringFlag("4", "test", "")
+ val flag5 = StringFlag("5", "test", "flag5default")
+ val flag6 = ResourceStringFlag("6", "test", 1006)
+ val flag7 = ResourceStringFlag("7", "test", 1007)
whenever(resources.getBoolean(1002)).thenReturn(true)
whenever(resources.getString(1006)).thenReturn("resource1006")
whenever(resources.getString(1007)).thenReturn("resource1007")
- whenever(flagManager.readFlagValue(eq(7), eq(StringFlagSerializer)))
+ whenever(flagManager.readFlagValue(eq("7"), eq(StringFlagSerializer)))
.thenReturn("override7")
// WHEN the flags have been accessed
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseTest.kt
index 917147b..16b4595 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FeatureFlagsReleaseTest.kt
@@ -44,7 +44,7 @@
private val serverFlagReader = ServerFlagReaderFake()
- private val flagA = ReleasedFlag(501, name = "a", namespace = "test")
+ private val flagA = ReleasedFlag(name = "a", namespace = "test")
@Before
fun setup() {
@@ -62,11 +62,10 @@
@Test
fun testBooleanResourceFlag() {
- val flagId = 213
val flagResourceId = 3
val flagName = "213"
val flagNamespace = "test"
- val flag = ResourceBooleanFlag(flagId, flagName, flagNamespace, flagResourceId)
+ val flag = ResourceBooleanFlag(flagName, flagNamespace, flagResourceId)
whenever(mResources.getBoolean(flagResourceId)).thenReturn(true)
assertThat(featureFlagsRelease.isEnabled(flag)).isTrue()
}
@@ -79,33 +78,32 @@
whenever(mResources.getString(1004)).thenAnswer { throw NameNotFoundException() }
assertThat(featureFlagsRelease.getString(
- ResourceStringFlag(1, "1", "test", 1001))).isEqualTo("")
+ ResourceStringFlag("1", "test", 1001))).isEqualTo("")
assertThat(featureFlagsRelease.getString(
- ResourceStringFlag(2, "2", "test", 1002))).isEqualTo("res2")
+ ResourceStringFlag("2", "test", 1002))).isEqualTo("res2")
assertThrows(NullPointerException::class.java) {
- featureFlagsRelease.getString(ResourceStringFlag(3, "3", "test", 1003))
+ featureFlagsRelease.getString(ResourceStringFlag("3", "test", 1003))
}
assertThrows(NameNotFoundException::class.java) {
- featureFlagsRelease.getString(ResourceStringFlag(4, "4", "test", 1004))
+ featureFlagsRelease.getString(ResourceStringFlag("4", "test", 1004))
}
}
@Test
fun testSysPropBooleanFlag() {
- val flagId = 213
val flagName = "sys_prop_flag"
val flagNamespace = "test"
val flagDefault = true
- val flag = SysPropBooleanFlag(flagId, flagName, flagNamespace, flagDefault)
+ val flag = SysPropBooleanFlag(flagName, flagNamespace, flagDefault)
whenever(mSystemProperties.getBoolean(flagName, flagDefault)).thenReturn(flagDefault)
assertThat(featureFlagsRelease.isEnabled(flag)).isEqualTo(flagDefault)
}
@Test
fun serverSide_OverridesReleased_MakesFalse() {
- val flag = ReleasedFlag(100, "100", "test")
+ val flag = ReleasedFlag("100", "test")
serverFlagReader.setFlagValue(flag.namespace, flag.name, false)
@@ -114,7 +112,7 @@
@Test
fun serverSide_OverridesUnreleased_Ignored() {
- val flag = UnreleasedFlag(100, "100", "test")
+ val flag = UnreleasedFlag("100", "test")
serverFlagReader.setFlagValue(flag.namespace, flag.name, true)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FlagCommandTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FlagCommandTest.kt
index 28131b5..b02baa7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/FlagCommandTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FlagCommandTest.kt
@@ -33,10 +33,10 @@
@Mock private lateinit var featureFlags: FeatureFlagsDebug
@Mock private lateinit var pw: PrintWriter
private val flagMap = mutableMapOf<String, Flag<*>>()
- private val flagA = UnreleasedFlag(500, "500", "test")
- private val flagB = ReleasedFlag(501, "501", "test")
- private val stringFlag = StringFlag(502, "502", "test", "abracadabra")
- private val intFlag = IntFlag(503, "503", "test", 12)
+ private val flagA = UnreleasedFlag("500", "test")
+ private val flagB = ReleasedFlag("501", "test")
+ private val stringFlag = StringFlag("502", "test", "abracadabra")
+ private val intFlag = IntFlag("503", "test", 12)
private lateinit var cmd: FlagCommand
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/FlagManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/FlagManagerTest.kt
index e679d47..303aaa1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/FlagManagerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/FlagManagerTest.kt
@@ -64,14 +64,14 @@
verifyNoMoreInteractions(mFlagSettingsHelper)
// adding the first listener registers the observer
- mFlagManager.addListener(ReleasedFlag(1, "1", "test"), listener1)
+ mFlagManager.addListener(ReleasedFlag("1", "test"), listener1)
val observer = withArgCaptor<ContentObserver> {
verify(mFlagSettingsHelper).registerContentObserver(any(), any(), capture())
}
verifyNoMoreInteractions(mFlagSettingsHelper)
// adding another listener does nothing
- mFlagManager.addListener(ReleasedFlag(2, "2", "test"), listener2)
+ mFlagManager.addListener(ReleasedFlag("2", "test"), listener2)
verifyNoMoreInteractions(mFlagSettingsHelper)
// removing the original listener does nothing with second one still present
@@ -89,7 +89,7 @@
val listener = mock<FlagListenable.Listener>()
val clearCacheAction = mock<Consumer<String>>()
mFlagManager.clearCacheAction = clearCacheAction
- mFlagManager.addListener(ReleasedFlag(1, "1", "test"), listener)
+ mFlagManager.addListener(ReleasedFlag("1", "test"), listener)
val observer = withArgCaptor<ContentObserver> {
verify(mFlagSettingsHelper).registerContentObserver(any(), any(), capture())
}
@@ -101,8 +101,8 @@
fun testObserverInvokesListeners() {
val listener1 = mock<FlagListenable.Listener>()
val listener10 = mock<FlagListenable.Listener>()
- mFlagManager.addListener(ReleasedFlag(1, "1", "test"), listener1)
- mFlagManager.addListener(ReleasedFlag(10, "10", "test"), listener10)
+ mFlagManager.addListener(ReleasedFlag("1", "test"), listener1)
+ mFlagManager.addListener(ReleasedFlag("10", "test"), listener10)
val observer = withArgCaptor<ContentObserver> {
verify(mFlagSettingsHelper).registerContentObserver(any(), any(), capture())
}
@@ -127,8 +127,8 @@
fun testOnlySpecificFlagListenerIsInvoked() {
val listener1 = mock<FlagListenable.Listener>()
val listener10 = mock<FlagListenable.Listener>()
- mFlagManager.addListener(ReleasedFlag(1, "1", "test"), listener1)
- mFlagManager.addListener(ReleasedFlag(10, "10", "test"), listener10)
+ mFlagManager.addListener(ReleasedFlag("1", "test"), listener1)
+ mFlagManager.addListener(ReleasedFlag("10", "test"), listener10)
mFlagManager.dispatchListenersAndMaybeRestart("1", null)
val flagEvent1 = withArgCaptor<FlagListenable.FlagEvent> {
@@ -148,8 +148,8 @@
@Test
fun testSameListenerCanBeUsedForMultipleFlags() {
val listener = mock<FlagListenable.Listener>()
- mFlagManager.addListener(ReleasedFlag(1, "1", "test"), listener)
- mFlagManager.addListener(ReleasedFlag(10, "10", "test"), listener)
+ mFlagManager.addListener(ReleasedFlag("1", "test"), listener)
+ mFlagManager.addListener(ReleasedFlag("10", "test"), listener)
mFlagManager.dispatchListenersAndMaybeRestart("1", null)
val flagEvent1 = withArgCaptor<FlagListenable.FlagEvent> {
@@ -177,7 +177,7 @@
@Test
fun testListenerCanSuppressRestart() {
val restartAction = mock<Consumer<Boolean>>()
- mFlagManager.addListener(ReleasedFlag(1, "1", "test")) { event ->
+ mFlagManager.addListener(ReleasedFlag("1", "test")) { event ->
event.requestNoRestart()
}
mFlagManager.dispatchListenersAndMaybeRestart("1", restartAction)
@@ -188,7 +188,7 @@
@Test
fun testListenerOnlySuppressesRestartForOwnFlag() {
val restartAction = mock<Consumer<Boolean>>()
- mFlagManager.addListener(ReleasedFlag(10, "10", "test")) { event ->
+ mFlagManager.addListener(ReleasedFlag("10", "test")) { event ->
event.requestNoRestart()
}
mFlagManager.dispatchListenersAndMaybeRestart("1", restartAction)
@@ -199,10 +199,10 @@
@Test
fun testRestartWhenNotAllListenersRequestSuppress() {
val restartAction = mock<Consumer<Boolean>>()
- mFlagManager.addListener(ReleasedFlag(10, "10", "test")) { event ->
+ mFlagManager.addListener(ReleasedFlag("10", "test")) { event ->
event.requestNoRestart()
}
- mFlagManager.addListener(ReleasedFlag(10, "10", "test")) {
+ mFlagManager.addListener(ReleasedFlag("10", "test")) {
// do not request
}
mFlagManager.dispatchListenersAndMaybeRestart("1", restartAction)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
index 953b7fb..1d1949d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/flags/ServerFlagReaderImplTest.kt
@@ -53,7 +53,7 @@
@Test
fun testChange_alertsListener() {
- val flag = ReleasedFlag(1, "flag_1", "test")
+ val flag = ReleasedFlag("flag_1", "test")
serverFlagReader.listenForChanges(listOf(flag), changeListener)
deviceConfig.setProperty(NAMESPACE, "flag_1", "1", false)
@@ -65,7 +65,7 @@
@Test
fun testChange_ignoresListenersDuringTest() {
val serverFlagReader = ServerFlagReaderImpl(NAMESPACE, deviceConfig, executor, true)
- val flag = ReleasedFlag(1, "1", " test")
+ val flag = ReleasedFlag("1", " test")
serverFlagReader.listenForChanges(listOf(flag), changeListener)
deviceConfig.setProperty(NAMESPACE, "flag_override_1", "1", false)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java
index 6e6833d..2698131bd 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/screenrecord/RecordingControllerTest.java
@@ -17,8 +17,10 @@
package com.android.systemui.screenrecord;
import static com.google.common.truth.Truth.assertThat;
+
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
+
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.verify;
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/flags/FakeFeatureFlags.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/flags/FakeFeatureFlags.kt
index 36fa7e6..013dbb4 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/flags/FakeFeatureFlags.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/flags/FakeFeatureFlags.kt
@@ -19,45 +19,45 @@
import java.io.PrintWriter
class FakeFeatureFlags : FeatureFlags {
- private val booleanFlags = mutableMapOf<Int, Boolean>()
- private val stringFlags = mutableMapOf<Int, String>()
- private val intFlags = mutableMapOf<Int, Int>()
- private val knownFlagNames = mutableMapOf<Int, String>()
- private val flagListeners = mutableMapOf<Int, MutableSet<FlagListenable.Listener>>()
- private val listenerFlagIds = mutableMapOf<FlagListenable.Listener, MutableSet<Int>>()
+ private val booleanFlags = mutableMapOf<String, Boolean>()
+ private val stringFlags = mutableMapOf<String, String>()
+ private val intFlags = mutableMapOf<String, Int>()
+ private val knownFlagNames = mutableMapOf<String, String>()
+ private val flagListeners = mutableMapOf<String, MutableSet<FlagListenable.Listener>>()
+ private val listenerflagNames = mutableMapOf<FlagListenable.Listener, MutableSet<String>>()
init {
FlagsFactory.knownFlags.forEach { entry: Map.Entry<String, Flag<*>> ->
- knownFlagNames[entry.value.id] = entry.key
+ knownFlagNames[entry.value.name] = entry.key
}
}
fun set(flag: BooleanFlag, value: Boolean) {
- if (booleanFlags.put(flag.id, value)?.let { value != it } != false) {
+ if (booleanFlags.put(flag.name, value)?.let { value != it } != false) {
notifyFlagChanged(flag)
}
}
fun set(flag: ResourceBooleanFlag, value: Boolean) {
- if (booleanFlags.put(flag.id, value)?.let { value != it } != false) {
+ if (booleanFlags.put(flag.name, value)?.let { value != it } != false) {
notifyFlagChanged(flag)
}
}
fun set(flag: SysPropBooleanFlag, value: Boolean) {
- if (booleanFlags.put(flag.id, value)?.let { value != it } != false) {
+ if (booleanFlags.put(flag.name, value)?.let { value != it } != false) {
notifyFlagChanged(flag)
}
}
fun set(flag: StringFlag, value: String) {
- if (stringFlags.put(flag.id, value)?.let { value != it } == null) {
+ if (stringFlags.put(flag.name, value)?.let { value != it } == null) {
notifyFlagChanged(flag)
}
}
fun set(flag: ResourceStringFlag, value: String) {
- if (stringFlags.put(flag.id, value)?.let { value != it } == null) {
+ if (stringFlags.put(flag.name, value)?.let { value != it } == null) {
notifyFlagChanged(flag)
}
}
@@ -73,7 +73,7 @@
* and the flag value *does* matter, you'll notice when the flag is flipped and tests
* start failing.
*/
- fun setDefault(flag: BooleanFlag) = booleanFlags.putIfAbsent(flag.id, flag.default)
+ fun setDefault(flag: BooleanFlag) = booleanFlags.putIfAbsent(flag.name, flag.default)
/**
* Set the given flag's default value if no other value has been set.
@@ -86,10 +86,10 @@
* and the flag value *does* matter, you'll notice when the flag is flipped and tests
* start failing.
*/
- fun setDefault(flag: SysPropBooleanFlag) = booleanFlags.putIfAbsent(flag.id, flag.default)
+ fun setDefault(flag: SysPropBooleanFlag) = booleanFlags.putIfAbsent(flag.name, flag.default)
private fun notifyFlagChanged(flag: Flag<*>) {
- flagListeners[flag.id]?.let { listeners ->
+ flagListeners[flag.name]?.let { listeners ->
listeners.forEach { listener ->
listener.onFlagChanged(
object : FlagListenable.FlagEvent {
@@ -101,30 +101,30 @@
}
}
- override fun isEnabled(flag: UnreleasedFlag): Boolean = requireBooleanValue(flag.id)
+ override fun isEnabled(flag: UnreleasedFlag): Boolean = requireBooleanValue(flag.name)
- override fun isEnabled(flag: ReleasedFlag): Boolean = requireBooleanValue(flag.id)
+ override fun isEnabled(flag: ReleasedFlag): Boolean = requireBooleanValue(flag.name)
- override fun isEnabled(flag: ResourceBooleanFlag): Boolean = requireBooleanValue(flag.id)
+ override fun isEnabled(flag: ResourceBooleanFlag): Boolean = requireBooleanValue(flag.name)
- override fun isEnabled(flag: SysPropBooleanFlag): Boolean = requireBooleanValue(flag.id)
+ override fun isEnabled(flag: SysPropBooleanFlag): Boolean = requireBooleanValue(flag.name)
- override fun getString(flag: StringFlag): String = requireStringValue(flag.id)
+ override fun getString(flag: StringFlag): String = requireStringValue(flag.name)
- override fun getString(flag: ResourceStringFlag): String = requireStringValue(flag.id)
+ override fun getString(flag: ResourceStringFlag): String = requireStringValue(flag.name)
- override fun getInt(flag: IntFlag): Int = requireIntValue(flag.id)
+ override fun getInt(flag: IntFlag): Int = requireIntValue(flag.name)
- override fun getInt(flag: ResourceIntFlag): Int = requireIntValue(flag.id)
+ override fun getInt(flag: ResourceIntFlag): Int = requireIntValue(flag.name)
override fun addListener(flag: Flag<*>, listener: FlagListenable.Listener) {
- flagListeners.getOrPut(flag.id) { mutableSetOf() }.add(listener)
- listenerFlagIds.getOrPut(listener) { mutableSetOf() }.add(flag.id)
+ flagListeners.getOrPut(flag.name) { mutableSetOf() }.add(listener)
+ listenerflagNames.getOrPut(listener) { mutableSetOf() }.add(flag.name)
}
override fun removeListener(listener: FlagListenable.Listener) {
- listenerFlagIds.remove(listener)?.let {
- flagIds -> flagIds.forEach {
+ listenerflagNames.remove(listener)?.let {
+ flagNames -> flagNames.forEach {
id -> flagListeners[id]?.remove(listener)
}
}
@@ -134,22 +134,22 @@
// no-op
}
- private fun flagName(flagId: Int): String {
- return knownFlagNames[flagId] ?: "UNKNOWN(id=$flagId)"
+ private fun flagName(flagName: String): String {
+ return knownFlagNames[flagName] ?: "UNKNOWN($flagName)"
}
- private fun requireBooleanValue(flagId: Int): Boolean {
- return booleanFlags[flagId]
- ?: error("Flag ${flagName(flagId)} was accessed as boolean but not specified.")
+ private fun requireBooleanValue(flagName: String): Boolean {
+ return booleanFlags[flagName]
+ ?: error("Flag ${flagName(flagName)} was accessed as boolean but not specified.")
}
- private fun requireStringValue(flagId: Int): String {
- return stringFlags[flagId]
- ?: error("Flag ${flagName(flagId)} was accessed as string but not specified.")
+ private fun requireStringValue(flagName: String): String {
+ return stringFlags[flagName]
+ ?: error("Flag ${flagName(flagName)} was accessed as string but not specified.")
}
- private fun requireIntValue(flagId: Int): Int {
- return intFlags[flagId]
- ?: error("Flag ${flagName(flagId)} was accessed as int but not specified.")
+ private fun requireIntValue(flagName: String): Int {
+ return intFlags[flagName]
+ ?: error("Flag ${flagName(flagName)} was accessed as int but not specified.")
}
}