Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e0bfada5 authored by Jared Duke's avatar Jared Duke
Browse files

Add keep rules for SysUI plugin annotations

These rules are necessary to ensure correct runtime plugin annotation
preservation for downstream targets built with R8 full mode. This was
previously addressed in downstream target keep rules, but with
aosp/2363992, such targets will now inherit the keep rules bundled with
the plugin library.

Bug: 215530220
Test: m + inspect downstream proguard_configuration output
Change-Id: I3793947827902617eaa5af681e99c889869cdca6
parent 933a0c09
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+11 −0
Original line number Diff line number Diff line
# 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 *