-keepclassmembers enum co.pushe.plus.** { *; }
-keepclassmembers enum androidx.work.** { *; }

-keep class * extends co.pushe.plus.internal.PusheComponentInitializer {
    public void preInitialize(android.content.Context);
    public io.reactivex.Completable postInitialize(android.content.Context);
}
-keep class co.pushe.plus.internal.PusheInitializer { *; }

-keep class co.pushe.plus.** extends co.pushe.plus.internal.task.PusheTask { *; }

-optimizations !class/unboxing/enum

# -- Moshi --
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    <init>(...);
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *

-keep class **JsonAdapter {
    <init>(...);
    <fields>;
}
-keepnames @com.squareup.moshi.JsonClass class *

-dontwarn org.codehaus.mojo.animal_sniffer.*

# Keep Exception names
-keepnames class co.pushe.plus.** extends java.lang.Exception

-keep class co.pushe.plus.inappmessaging.InAppMessagingInitializer { *; }
-if class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage
-keepnames class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage
-if class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage
-keep class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage
-keepclassmembers class co.pushe.plus.inappmessaging.messages.upstream.ImpressionMessage {
    public synthetic <init>(java.lang.String,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.messages.downstream.Text
-keepnames class co.pushe.plus.inappmessaging.messages.downstream.Text
-if class co.pushe.plus.inappmessaging.messages.downstream.Text
-keep class co.pushe.plus.inappmessaging.messages.downstream.TextJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.downstream.Text
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.downstream.Text
-keepclassmembers class co.pushe.plus.inappmessaging.messages.downstream.Text {
    public synthetic <init>(java.lang.String,java.lang.Integer,java.lang.String,co.pushe.plus.inappmessaging.messages.downstream.ViewDirection,java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition
-keepnames class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition
-if class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition
-keep class co.pushe.plus.inappmessaging.messages.downstream.DisplayConditionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition
-keepclassmembers class co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition {
    public synthetic <init>(java.lang.String,java.util.Date,java.util.Date,java.lang.Integer,int,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.action.DismissAction
-keepnames class co.pushe.plus.inappmessaging.action.DismissAction
-if class co.pushe.plus.inappmessaging.action.DismissAction
-keep class co.pushe.plus.inappmessaging.action.DismissActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.messages.downstream.PiamButton
-keepnames class co.pushe.plus.inappmessaging.messages.downstream.PiamButton
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamButton
-keep class co.pushe.plus.inappmessaging.messages.downstream.PiamButtonJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamButton
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamButton
-keepclassmembers class co.pushe.plus.inappmessaging.messages.downstream.PiamButton {
    public synthetic <init>(co.pushe.plus.inappmessaging.action.Action,java.lang.String,java.lang.String,java.lang.String,co.pushe.plus.inappmessaging.messages.downstream.ViewDirection,java.lang.Integer,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.action.UserActivityAction
-keepnames class co.pushe.plus.inappmessaging.action.UserActivityAction
-if class co.pushe.plus.inappmessaging.action.UserActivityAction
-keep class co.pushe.plus.inappmessaging.action.UserActivityActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage
-keepnames class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage
-keep class co.pushe.plus.inappmessaging.messages.downstream.PiamMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage
-keepclassmembers class co.pushe.plus.inappmessaging.messages.downstream.PiamMessage {
    public synthetic <init>(java.lang.String,co.pushe.plus.inappmessaging.messages.downstream.PiamType,co.pushe.plus.inappmessaging.messages.downstream.Text,co.pushe.plus.inappmessaging.messages.downstream.Text,java.lang.Integer,java.lang.String,java.lang.String,co.pushe.plus.inappmessaging.messages.downstream.DisplayCondition,java.util.List,co.pushe.plus.inappmessaging.action.Action,java.lang.String,int,java.util.Date,co.pushe.plus.utils.Time,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.action.UrlAction
-keepnames class co.pushe.plus.inappmessaging.action.UrlAction
-if class co.pushe.plus.inappmessaging.action.UrlAction
-keep class co.pushe.plus.inappmessaging.action.UrlActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage
-keepnames class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage
-if class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage
-keep class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage
-keepclassmembers class co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage {
    public synthetic <init>(java.lang.String,co.pushe.plus.inappmessaging.messages.upstream.InAppActionMessage$InAppResponseAction,java.lang.Integer,int,kotlin.jvm.internal.DefaultConstructorMarker);
}

-if class co.pushe.plus.inappmessaging.action.CafeBazaarRateAction
-keepnames class co.pushe.plus.inappmessaging.action.CafeBazaarRateAction
-if class co.pushe.plus.inappmessaging.action.CafeBazaarRateAction
-keep class co.pushe.plus.inappmessaging.action.CafeBazaarRateActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.messages.downstream.CancelPiamMessage
-keepnames class co.pushe.plus.inappmessaging.messages.downstream.CancelPiamMessage
-if class co.pushe.plus.inappmessaging.messages.downstream.CancelPiamMessage
-keep class co.pushe.plus.inappmessaging.messages.downstream.CancelPiamMessageJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.action.FallbackAction
-keepnames class co.pushe.plus.inappmessaging.action.FallbackAction
-if class co.pushe.plus.inappmessaging.action.FallbackAction
-keep class co.pushe.plus.inappmessaging.action.FallbackActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}

-if class co.pushe.plus.inappmessaging.action.IntentAction
-keepnames class co.pushe.plus.inappmessaging.action.IntentAction
-if class co.pushe.plus.inappmessaging.action.IntentAction
-keep class co.pushe.plus.inappmessaging.action.IntentActionJsonAdapter {
    public <init>(com.squareup.moshi.Moshi);
}
-if class co.pushe.plus.inappmessaging.action.IntentAction
-keepnames class kotlin.jvm.internal.DefaultConstructorMarker
-if class co.pushe.plus.inappmessaging.action.IntentAction
-keepclassmembers class co.pushe.plus.inappmessaging.action.IntentAction {
    public synthetic <init>(java.lang.String,java.lang.String,java.util.List,java.lang.String,java.util.List,int,kotlin.jvm.internal.DefaultConstructorMarker);
}


