Add a shared library for setting flags in SysUI.

This adds the FlagManager class which currently has 3 methods:
- #getFlagsFuture
- #setFlagValue
- #eraseFlag

The first makes an async call to SystemUI to retrieve the flags
it knows about. It returns a collection of Flag objects from which
one can get the id, type, and default values.

The other two are fairly self-explanatory, sending intents to
SystemUI telling to set or erase flags. Any app calling these
methods must have the FLAGS_PERMISSION defined in the FlagManager
library.

Only boolean flags are supported at the moment.

Bug: 203548827
Test: manual
Change-Id: Id15ff481edcb83c67ce4cdad6cdda27d28a40652
diff --git a/packages/SystemUI/Android.bp b/packages/SystemUI/Android.bp
index 721b432..f44893e 100644
--- a/packages/SystemUI/Android.bp
+++ b/packages/SystemUI/Android.bp
@@ -50,6 +50,17 @@
     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: [
@@ -116,6 +127,7 @@
         "iconloader_base",
         "SystemUI-tags",
         "SystemUI-proto",
+        "SystemUI-flags",
         "monet",
         "dagger2",
         "jsr330",