########################################################################
###Beacon core specific config, we need to keep this so the UI module can seem them
-keep class com.helpscout.beacon.internal.core.extensions.* {*;}

-keep class com.helpscout.beacon.internal.core.api.* { *; }

#keep the models needed for moshi
-keepclassmembers class com.helpscout.beacon.internal.core.model.** {
  <init>(...);
  <fields>;
}

-keep class com.helpscout.beacon.internal.core.model.** { *; }


########################################################################
### KOTLIN
-keepattributes *Annotation*
-dontwarn org.jetbrains.annotations.**
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.ClassifierDescriptorWithTypeParameters
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.annotations.AnnotationDescriptor
-dontwarn kotlin.reflect.jvm.internal.impl.descriptors.impl.PropertyDescriptorImpl
-dontwarn kotlin.reflect.jvm.internal.impl.load.java.JavaClassFinder
-dontwarn kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.DescriptorSubstitutor
-dontwarn kotlin.reflect.jvm.internal.impl.types.TypeConstructor
-dontwarn kotlin.reflect.jvm.internal.DefaultConstructorMaker
-dontwarn kotlin.coroutines.experimental.Continuation

-keep class kotlin.Unit { *; }
-keep class kotlin.collections.CollectionsKt { *; }
########################################################################
### MOSHI
-dontwarn org.jetbrains.annotations.**
-keep class kotlin.Metadata { *; }

-dontwarn okio.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault
-keepclasseswithmembers class * {
    @com.squareup.moshi.* <methods>;
}
-keep @com.squareup.moshi.JsonQualifier interface *
-keepclassmembers class kotlin.Metadata {
    public <methods>;
}

########################################################################
### OKHttp
-dontnote android.net.http.*
-dontnote org.apache.commons.codec.**
-dontnote org.apache.http.**
-dontwarn okhttp3.**
-dontwarn okio.**

########################################################################
### Retrofit

# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions

########################################################################
###  Stetho 1.1.1
-keep class com.facebook.stetho.** { *; }
