diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp index fabc5247e6a69..d7e4d720965a4 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 0000000000000..5c4f08edc784a --- /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 0000000000000..dc09f2aa24924 --- /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) {} +}