-keep class com.adwon.pointcu.data.Result
-dontwarn com.adwon.pointcu.data.Result
-keepclassmembers class com.adwon.pointcu.data.Result$Success {
    <init>(...);
}
-keepclassmembers class com.adwon.pointcu.data.Result$Error {
    <init>(...);
}
-keep class * extends com.adwon.pointcu.json.EntityX {*;}
#-keep class com.adwon.pointcu.json.EntityX {*;}
-keepnames class com.adwon.pointcu.json.EntityX
#-keep class com.adwon.pointcu.data.model.** {*;}
-keepclassmembers class com.adwon.pointcu.data.model.** {*;}


-keep class com.adwon.pointcu.Point4u{*;}
-keep class com.adwon.pointcu.Point4UConfig{*;}
-keep class com.adwon.pointcu.Point4UConfig$Builder{*;}
-keep class com.adwon.pointcu.Point4uGender{*;}
-keep class com.adwon.pointcu.Point4uGender$Companion{*;}
-keep class com.adwon.pointcu.Point4uAd{*;}
-keep interface com.adwon.pointcu.Point4u$OnPoint4UStepListener{*;}
-keep interface com.adwon.pointcu.Point4u$OnPoint4UFinishListener{*;}
-keep interface com.adwon.pointcu.Point4u$OnPoint4UGameListener{*;}
-keep interface com.adwon.pointcu.Point4u$OnPoint4UAdListener{*;}
-keep class com.adwon.pointcu.Point4uErrorCode {*;}
-keep class com.adwon.pointcu.Point4uException {*;}
-keepclassmembers class com.adwon.pointcu.advertise.AdWonCuAdvertiseView {

    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);

    public void showAdvertise(...);
    public void setWindowProvider(...);
}

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



# gson
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# 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
-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


# R8 빌드 시 오류 발생으로 추가
-dontwarn java.lang.invoke.StringConcatFactory
-dontwarn java.lang.invoke.*