-keeppackagenames ir.metrix.notification

-keepclassmembers enum ir.metrix.notification.** { *; }
-keepclassmembers enum androidx.work.** { *; }

-keep class ir.metrix.notification.internal.NotificationInitializer { *; }

-keep class ir.metrix.notification.** extends ir.metrix.notification.internal.task.NotificationTask { *; }

-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 ir.metrix.notification.** 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 *; }