-dontwarn java.lang.invoke.StringConcatFactory
-dontusemixedcaseclassnames
-allowaccessmodification
-renamesourcefileattribute SourceFile
-keepattributes Signature,Exceptions,*Annotation*,
                InnerClasses,PermittedSubclasses,EnclosingMethod,
                Deprecated,SourceFile,LineNumberTable

##---------------Begin: proguard configuration for Primer NolPay SDK  ----------

-keep class io.primer.nolpay.api.PrimerNolPay { *; }

-keep class io.primer.nolpay.api.PrimerNolPayNfcUtils { *; }

-keep class io.primer.nolpay.api.models.* { public *; }
-keep class io.primer.nolpay.api.exceptions.* { public *; }

# Keep the BuildConfig
-keep class com.snowballtech.transit.rta.BuildConfig { *; }

##---------------End: proguard configuration for Primer NolPay SDK  ----------


##---------------Begin: proguard configuration for Transit SDK  ----------

-keep class com.snowballtech.** { *; }

##---------------End: proguard configuration Transit SDK  ----------


##---------------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 *Annotation*

# Gson specific classes
-dontwarn sun.misc.**

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

# Prevent R8 from leaving Data object members always null
-if class *
-keepclasseswithmembers class <1> {
    <init>(...);
    @com.google.gson.annotations.SerializedName <fields>;
}

-keep class * {
  @com.google.gson.annotations.SerializedName <fields>;
}

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

#---------------End: proguard configuration for Gson  ----------
