diff --git a/packages/SystemUI/plugin_core/Android.bp b/packages/SystemUI/plugin_core/Android.bp index 34d31d9955fc1..4e39f1ac95450 100644 --- a/packages/SystemUI/plugin_core/Android.bp +++ b/packages/SystemUI/plugin_core/Android.bp @@ -25,6 +25,9 @@ java_library { sdk_version: "current", name: "PluginCoreLib", srcs: ["src/**/*.java"], + optimize: { + proguard_flags_files: ["proguard.flags"], + }, // Enforce that the library is built against java 8 so that there are // no compatibility issues with launcher diff --git a/packages/SystemUI/plugin_core/proguard.flags b/packages/SystemUI/plugin_core/proguard.flags new file mode 100644 index 0000000000000..6240898b3b93f --- /dev/null +++ b/packages/SystemUI/plugin_core/proguard.flags @@ -0,0 +1,11 @@ +# R8's full mode is a bit more aggressive in stripping annotations, but the +# SystemUI plugin architecture requires these annotations at runtime. The +# following rules are the minimal set necessary to ensure compatibility. +# For more details, see: +# https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode +-keepattributes RuntimeVisible*Annotation*,AnnotationDefault + +-keep interface com.android.systemui.plugins.annotations.** { + *; +} +-keep,allowshrinking,allowoptimization,allowobfuscation,allowaccessmodification @com.android.systemui.plugins.annotations.** class *