# The consumer progaurd rules file
# SDK Public classes
-keep public class dev.kiki.common.UpdateInfo {
  public *;
}
-keep public class dev.kiki.common.UpdateInfoCallback {
  public *;
}
-keep public enum dev.kiki.common.UpdateType {
  public *;
}
-keep public class dev.kiki.common.internal.** {
  public *;
}
-keep public class dev.kiki.common.internal.ui.UpdateFragment {
  public protected *;
}
-keep public class dev.kiki.common.internal.ui.UpdateViewModel {
  public protected *;
}
-keep public enum dev.kiki.common.internal.** {
  public *;
}
-keep class dev.kiki.common.internal.update.request.** {
 *;
}
-keep class dev.kiki.common.internal.update.response.** {
 *;
}

##---------------Begin: proguard configuration for Gson  ----------
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn sun.misc.**

-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
-keepclassmembers,allowobfuscation 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

# Kotlin meta-data
-keep class kotlin.Metadata { *; }

# coroutine
-keep class kotlinx.coroutines.android.** {*;}