-keepclassmembers enum io.hengam.lib.** { *; }
-keepclassmembers enum androidx.work.** { *; }

-keep class * extends io.hengam.lib.internal.HengamComponentInitializer {
    public void preInitialize(android.content.Context);
    public void postInitialize(android.content.Context);
}
-keep class io.hengam.lib.internal.HengamInitializer { *; }

-keep class io.hengam.lib.** extends io.hengam.lib.internal.task.HengamTask { *; }

-optimizations !class/unboxing/enum

# -- Moshi --
-dontwarn okio.**
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @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 io.hengam.lib.** extends java.lang.Exception
# Needed in order to be able to get the FirebaseMessaging constructor with reflection (in `FirebaseServiceManager`)
-keep class com.google.firebase.messaging.FirebaseMessaging { *; }

-keep public class kotlin.reflect.jvm.internal.impl.** { public *; }
