Added a debug and release version of flag reader
Bug: 196602427
Test: manually tested with log statements
Change-Id: Ie01af22ef51504db5aadc0da1d367961b6aa42d4
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index fabc524..d7e4d72 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -50,6 +50,16 @@
srcs: ["src/com/android/systemui/EventLogTags.logtags"],
}
+filegroup {
+ name: "ReleaseJavaFiles",
+ srcs: ["src/com/android/systemui/flags/FeatureFlagManager.java"],
+}
+
+filegroup {
+ name: "DebugJavaFiles",
+ srcs: ["src-debug/com/android/systemui/flags/FeatureFlagManager.java"],
+}
+
android_library {
name: "SystemUI-core",
srcs: [
@@ -57,6 +67,12 @@
"src/**/*.java",
"src/**/I*.aidl",
],
+ product_variables: {
+ debuggable: {
+ srcs: [":DebugJavaFiles"],
+ exclude_srcs: [":ReleaseJavaFiles"],
+ },
+ },
resource_dirs: [
"res-product",
"res-keyguard",
diff --git a/packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java b/packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java
new file mode 100644
index 0000000..5c4f08e
--- /dev/null
+++ b/packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.flags;
+import android.util.ArraySet;
+
+import com.android.systemui.dagger.SysUISingleton;
+
+/**
+ * Concrete implementation of the a Flag manager that returns default values for debug builds
+ */
+@SysUISingleton
+public class FeatureFlagManager {
+ public boolean isEnabled(int key, boolean defaultValue) {
+ return isEnabled(Integer.toString(key), defaultValue);
+ }
+
+ public boolean isEnabled(String key, boolean defaultValue) {
+ // TODO
+ return false;
+ }
+
+ public void setEnabled(int key, boolean value) {
+ setEnabled(Integer.toString(key), value);
+ }
+
+ public void setEnabled(String key, boolean value) {
+ // TODO
+ }
+}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagManager.java b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagManager.java
new file mode 100644
index 0000000..dc09f2a
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/flags/FeatureFlagManager.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.flags;
+
+import com.android.systemui.dagger.SysUISingleton;
+
+/**
+ * Default implementation of the a Flag manager that returns default values for release builds
+ */
+@SysUISingleton
+public class FeatureFlagManager {
+ public boolean getBoolean(int key, boolean defaultValue) {
+ return defaultValue;
+ }
+ public void setBoolean(int key, boolean value) {}
+ public boolean getBoolean(String key, boolean defaultValue) {
+ return defaultValue;
+ }
+ public void setBoolean(String key, boolean value) {}
+ public void addFlagChangedListener(Runnable run) {}
+ public void removeFlagUpdatedListener(Runnable run) {}
+}