# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class com.yoti.** implements com.google.gson.TypeAdapter
-keep class com.yoti.** implements com.google.gson.TypeAdapterFactory
-keep class com.yoti.** implements com.google.gson.JsonSerializer
-keep class com.yoti.** implements com.google.gson.JsonDeserializer

# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class com.yoti.** {
  @com.google.gson.annotations.SerializedName <fields>;
}

# Keep enum classes that will be serialized/deserialized over Gson
-keepclassmembers enum com.yoti.** {
    !private <fields>;
}

# Do not remove methods with retrofit http annotations (e.g. abstract method overrides which just add the annotations)
-keep,allowobfuscation class com.yoti.** {
  @retrofit2.http.* <methods>;
}
-keep,allowobfuscation interface com.yoti.** {
  @retrofit2.http.* <methods>;
}
# Keep protected methods from liveness-core that can be extended in this module
-keep public class com.yoti.mobile.android.liveness.** {
    public protected <methods>;
    public <fields>;
}
