Loading packages/SystemUI/Android.bp +12 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,17 @@ java_library { srcs: ["src/com/android/systemui/EventLogTags.logtags"], } java_library { name: "SystemUI-flags", srcs: [ "src/com/android/systemui/flags/Flags.java", ], libs: [ "SystemUI-flag-types", ], static_kotlin_stdlib: false, } filegroup { name: "ReleaseJavaFiles", srcs: [ Loading Loading @@ -116,6 +127,7 @@ android_library { "iconloader_base", "SystemUI-tags", "SystemUI-proto", "SystemUI-flags", "monet", "dagger2", "jsr330", Loading packages/SystemUI/shared/Android.bp +31 −0 Original line number Diff line number Diff line Loading @@ -45,9 +45,40 @@ android_library { ":wm_shell-aidls", ":wm_shell_util-sources", ], libs: [ "SystemUI-flags", ], static_libs: [ "PluginCoreLib", "androidx.dynamicanimation_dynamicanimation", "androidx.concurrent_concurrent-futures", ], java_version: "1.8", min_sdk_version: "current", } java_library { name: "SystemUI-flag-types", srcs: [ "src/com/android/systemui/flags/Flag.kt", ], static_kotlin_stdlib: false, java_version: "1.8", min_sdk_version: "current", } java_library { name: "SystemUIFlagsLib", srcs: [ "src/com/android/systemui/flags/**/*.kt", ], static_kotlin_stdlib: false, libs: [ "androidx.concurrent_concurrent-futures", "SystemUI-flags", ], static_libs: [ "SystemUI-flag-types", ], java_version: "1.8", min_sdk_version: "current", Loading packages/SystemUI/plugin/src/com/android/systemui/flags/Flag.kt→packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt +0 −0 File moved. View file packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * 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.content.Context import android.content.Intent import androidx.concurrent.futures.CallbackToFutureAdapter import com.google.common.util.concurrent.ListenableFuture class FlagManager constructor(val context: Context) { companion object { const val RECEIVING_PACKAGE = "com.android.systemui" const val ACTION_SET_FLAG = "com.android.systemui.action.SET_FLAG" const val FLAGS_PERMISSION = "com.android.systemui.permission.FLAGS" const val FIELD_ID = "id" const val FIELD_VALUE = "value" } fun getFlagsFuture(): ListenableFuture<Collection<Flag<*>>> { val knownFlagMap = Flags.collectFlags() // Possible todo in the future: query systemui async to actually get the known flag ids. return CallbackToFutureAdapter.getFuture( CallbackToFutureAdapter.Resolver { completer: CallbackToFutureAdapter.Completer<Collection<Flag<*>>> -> completer.set(knownFlagMap.values as Collection<Flag<*>>) "Retrieving Flags" }) } fun setFlagValue(id: Int, enabled: Boolean) { val intent = createIntent(id) intent.putExtra(FIELD_VALUE, enabled) context.sendBroadcast(intent) } fun eraseFlag(id: Int) { val intent = createIntent(id) context.sendBroadcast(intent) } private fun createIntent(id: Int): Intent { val intent = Intent(ACTION_SET_FLAG) intent.setPackage(RECEIVING_PACKAGE) intent.putExtra(FIELD_ID, id) return intent } } No newline at end of file packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.android.systemui.flags; import static com.android.systemui.flags.FlagManager.ACTION_SET_FLAG; import static com.android.systemui.flags.FlagManager.FIELD_ID; import static com.android.systemui.flags.FlagManager.FIELD_VALUE; import static com.android.systemui.flags.FlagManager.FLAGS_PERMISSION; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -55,11 +60,7 @@ public class FeatureFlagManager implements FlagReader, FlagWriter, Dumpable { private static final String SYSPROP_PREFIX = "persist.systemui.flag_"; private static final String FIELD_TYPE = "type"; private static final String FIELD_ID = "id"; private static final String FIELD_VALUE = "value"; private static final String TYPE_BOOLEAN = "boolean"; private static final String ACTION_SET_FLAG = "com.android.systemui.action.SET_FLAG"; private static final String FLAGS_PERMISSION = "com.android.systemui.permission.FLAGS"; private final SystemPropertiesHelper mSystemPropertiesHelper; private final Map<Integer, Boolean> mBooleanFlagCache = new HashMap<>(); Loading Loading
packages/SystemUI/Android.bp +12 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,17 @@ java_library { srcs: ["src/com/android/systemui/EventLogTags.logtags"], } java_library { name: "SystemUI-flags", srcs: [ "src/com/android/systemui/flags/Flags.java", ], libs: [ "SystemUI-flag-types", ], static_kotlin_stdlib: false, } filegroup { name: "ReleaseJavaFiles", srcs: [ Loading Loading @@ -116,6 +127,7 @@ android_library { "iconloader_base", "SystemUI-tags", "SystemUI-proto", "SystemUI-flags", "monet", "dagger2", "jsr330", Loading
packages/SystemUI/shared/Android.bp +31 −0 Original line number Diff line number Diff line Loading @@ -45,9 +45,40 @@ android_library { ":wm_shell-aidls", ":wm_shell_util-sources", ], libs: [ "SystemUI-flags", ], static_libs: [ "PluginCoreLib", "androidx.dynamicanimation_dynamicanimation", "androidx.concurrent_concurrent-futures", ], java_version: "1.8", min_sdk_version: "current", } java_library { name: "SystemUI-flag-types", srcs: [ "src/com/android/systemui/flags/Flag.kt", ], static_kotlin_stdlib: false, java_version: "1.8", min_sdk_version: "current", } java_library { name: "SystemUIFlagsLib", srcs: [ "src/com/android/systemui/flags/**/*.kt", ], static_kotlin_stdlib: false, libs: [ "androidx.concurrent_concurrent-futures", "SystemUI-flags", ], static_libs: [ "SystemUI-flag-types", ], java_version: "1.8", min_sdk_version: "current", Loading
packages/SystemUI/plugin/src/com/android/systemui/flags/Flag.kt→packages/SystemUI/shared/src/com/android/systemui/flags/Flag.kt +0 −0 File moved. View file
packages/SystemUI/shared/src/com/android/systemui/flags/FlagManager.kt 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * 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.content.Context import android.content.Intent import androidx.concurrent.futures.CallbackToFutureAdapter import com.google.common.util.concurrent.ListenableFuture class FlagManager constructor(val context: Context) { companion object { const val RECEIVING_PACKAGE = "com.android.systemui" const val ACTION_SET_FLAG = "com.android.systemui.action.SET_FLAG" const val FLAGS_PERMISSION = "com.android.systemui.permission.FLAGS" const val FIELD_ID = "id" const val FIELD_VALUE = "value" } fun getFlagsFuture(): ListenableFuture<Collection<Flag<*>>> { val knownFlagMap = Flags.collectFlags() // Possible todo in the future: query systemui async to actually get the known flag ids. return CallbackToFutureAdapter.getFuture( CallbackToFutureAdapter.Resolver { completer: CallbackToFutureAdapter.Completer<Collection<Flag<*>>> -> completer.set(knownFlagMap.values as Collection<Flag<*>>) "Retrieving Flags" }) } fun setFlagValue(id: Int, enabled: Boolean) { val intent = createIntent(id) intent.putExtra(FIELD_VALUE, enabled) context.sendBroadcast(intent) } fun eraseFlag(id: Int) { val intent = createIntent(id) context.sendBroadcast(intent) } private fun createIntent(id: Int): Intent { val intent = Intent(ACTION_SET_FLAG) intent.setPackage(RECEIVING_PACKAGE) intent.putExtra(FIELD_ID, id) return intent } } No newline at end of file
packages/SystemUI/src-debug/com/android/systemui/flags/FeatureFlagManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -16,6 +16,11 @@ package com.android.systemui.flags; import static com.android.systemui.flags.FlagManager.ACTION_SET_FLAG; import static com.android.systemui.flags.FlagManager.FIELD_ID; import static com.android.systemui.flags.FlagManager.FIELD_VALUE; import static com.android.systemui.flags.FlagManager.FLAGS_PERMISSION; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -55,11 +60,7 @@ public class FeatureFlagManager implements FlagReader, FlagWriter, Dumpable { private static final String SYSPROP_PREFIX = "persist.systemui.flag_"; private static final String FIELD_TYPE = "type"; private static final String FIELD_ID = "id"; private static final String FIELD_VALUE = "value"; private static final String TYPE_BOOLEAN = "boolean"; private static final String ACTION_SET_FLAG = "com.android.systemui.action.SET_FLAG"; private static final String FLAGS_PERMISSION = "com.android.systemui.permission.FLAGS"; private final SystemPropertiesHelper mSystemPropertiesHelper; private final Map<Integer, Boolean> mBooleanFlagCache = new HashMap<>(); Loading