diff --git a/daemon/proguard-rules.pro b/daemon/proguard-rules.pro index 4f1bd0b1a..ab73abb05 100644 --- a/daemon/proguard-rules.pro +++ b/daemon/proguard-rules.pro @@ -7,6 +7,30 @@ -keepclasseswithmembers class org.matrix.vector.daemon.Cli { public static void main(java.lang.String[]); } + + +# Keep IPC data models intact so Gson serializes the correct JSON keys +-keep class org.matrix.vector.daemon.CliRequest { *; } +-keep class org.matrix.vector.daemon.CliResponse { *; } + +# Preserve annotations, generic signatures, and inner classes (critical for picocli reflection) +-keepattributes *Annotation*, Signature, InnerClasses, EnclosingMethod + +# Keep internal Picocli classes required for `mixinStandardHelpOptions = true` +-keep class picocli.CommandLine$AutoHelpMixin { *; } +-keep class picocli.CommandLine$HelpCommand { *; } + +# Keep ANY class (and its constructor) annotated with @Command +-keep @picocli.CommandLine$Command class * { + (...); +} + +# Keep ANY field/method using a Picocli annotation (@Option, @Parameters, etc.) +-keepclassmembers class * { + @picocli.CommandLine$* *; +} + + -keepclasseswithmembers class org.matrix.vector.daemon.env.LogcatMonitor { private int refreshFd(boolean); }