xref: /aosp_15_r20/external/gson/examples/android-proguard-example/proguard.cfg (revision a8de600362638ea28fd6cb3225451dc706d269bb)
1*a8de6003SAndroid Build Coastguard Worker##---------------Begin: proguard configuration for Gson  ----------
2*a8de6003SAndroid Build Coastguard Worker# Gson uses generic type information stored in a class file when working with fields. Proguard
3*a8de6003SAndroid Build Coastguard Worker# removes such information by default, so configure it to keep all of it.
4*a8de6003SAndroid Build Coastguard Worker-keepattributes Signature
5*a8de6003SAndroid Build Coastguard Worker
6*a8de6003SAndroid Build Coastguard Worker# For using GSON @Expose annotation
7*a8de6003SAndroid Build Coastguard Worker-keepattributes *Annotation*
8*a8de6003SAndroid Build Coastguard Worker
9*a8de6003SAndroid Build Coastguard Worker# Gson specific classes
10*a8de6003SAndroid Build Coastguard Worker-dontwarn sun.misc.**
11*a8de6003SAndroid Build Coastguard Worker#-keep class com.google.gson.stream.** { *; }
12*a8de6003SAndroid Build Coastguard Worker
13*a8de6003SAndroid Build Coastguard Worker# Application classes that will be serialized/deserialized over Gson
14*a8de6003SAndroid Build Coastguard Worker-keep class com.google.gson.examples.android.model.** { <fields>; }
15*a8de6003SAndroid Build Coastguard Worker
16*a8de6003SAndroid Build Coastguard Worker# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
17*a8de6003SAndroid Build Coastguard Worker# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
18*a8de6003SAndroid Build Coastguard Worker-keep class * extends com.google.gson.TypeAdapter
19*a8de6003SAndroid Build Coastguard Worker-keep class * implements com.google.gson.TypeAdapterFactory
20*a8de6003SAndroid Build Coastguard Worker-keep class * implements com.google.gson.JsonSerializer
21*a8de6003SAndroid Build Coastguard Worker-keep class * implements com.google.gson.JsonDeserializer
22*a8de6003SAndroid Build Coastguard Worker
23*a8de6003SAndroid Build Coastguard Worker# Prevent R8 from leaving Data object members always null
24*a8de6003SAndroid Build Coastguard Worker-keepclassmembers,allowobfuscation class * {
25*a8de6003SAndroid Build Coastguard Worker  @com.google.gson.annotations.SerializedName <fields>;
26*a8de6003SAndroid Build Coastguard Worker}
27*a8de6003SAndroid Build Coastguard Worker
28*a8de6003SAndroid Build Coastguard Worker# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
29*a8de6003SAndroid Build Coastguard Worker-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
30*a8de6003SAndroid Build Coastguard Worker-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
31*a8de6003SAndroid Build Coastguard Worker
32*a8de6003SAndroid Build Coastguard Worker##---------------End: proguard configuration for Gson  ----------
33