| ##---------------Begin: proguard configuration for Gson ---------- | |
| # Gson uses generic type information stored in a class file when working with fields. Proguard | |
| # removes such information by default, so configure it to keep all of it. | |
| -keepattributes Signature | |
| # For using GSON @Expose annotation | |
| -keepattributes RuntimeVisibleAnnotations, | |
| RuntimeVisibleParameterAnnotations, | |
| RuntimeVisibleTypeAnnotations, | |
| AnnotationDefault | |
| # Gson specific classes | |
| -dontwarn sun.misc.** | |
| #-keep class com.google.gson.stream.** { *; } | |
| # Application classes that will be serialized/deserialized over Gson | |
| -keep class com.android.virtualization.terminal.ConfigJson { <fields>; } | |
| -keep class com.android.virtualization.terminal.ConfigJson$* { <fields>; } | |
| # Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, | |
| # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep class * extends com.google.gson.TypeAdapter { | |
| void <init>(); | |
| } | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep class * implements com.google.gson.TypeAdapterFactory { | |
| void <init>(); | |
| } | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep class * implements com.google.gson.JsonSerializer { | |
| void <init>(); | |
| } | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep class * implements com.google.gson.JsonDeserializer { | |
| void <init>(); | |
| } | |
| # Prevent R8 from leaving Data object members always null | |
| -keepclassmembers,allowobfuscation class * { | |
| @com.google.gson.annotations.SerializedName <fields>; | |
| } | |
| # Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher. | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken { | |
| void <init>(); | |
| } | |
| # TODO(b/373579455): Evaluate if <init> needs to be kept. | |
| -keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken { | |
| void <init>(); | |
| } | |
| ##---------------End: proguard configuration for Gson ---------- |