From 722473e7ff98795f010afe82166980e940e3b2a6 Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Thu, 23 Sep 2021 16:59:09 -0400 Subject: Added a debug and release version of flag reader Bug: 196602427 Test: manually tested with log statements Change-Id: Ie01af22ef51504db5aadc0da1d367961b6aa42d4 Merged-In: Ie01af22ef51504db5aadc0da1d367961b6aa42d4 (cherry picked from commit 97d4fc7d158bb31ae30b63027f7ec483cd4b0a58) --- packages/SystemUI/Android.bp | 16 ++++++++ .../android/systemui/flags/FeatureFlagManager.java | 43 ++++++++++++++++++++++ .../android/systemui/flags/FeatureFlagManager.java | 36 ++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java create mode 100644 packages/SystemUI/src/com/android/systemui/flags/FeatureFlagManager.java diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp index 6671308ef66a..c6cca5adaeb0 100644 --- a/packages/SystemUI/Android.bp +++ b/packages/SystemUI/Android.bp @@ -50,6 +50,16 @@ java_library { 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 @@ android_library { "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 000000000000..5c4f08edc784 --- /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 000000000000..dc09f2aa2492 --- /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) {} +} -- cgit v1.2.3-59-g8ed1b