##---------------Begin: proguard configuration for Splunk MINT  ----------
# Splunk MINT : https://docs.splunk.com/Documentation/MintAndroidSDK/5.2.x/DevGuide/UseProGuardwithSplunkMINT
-keep class com.splunk.** { *; }
#-libraryjars libs/mint-5.2.1.jar

##---------------End: proguard configuration for Splunk MINT  ----------

##---------------Begin: proguard configuration for Glide  ----------
-keep public class * implements com.zoyi.com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.GeneratedRootGlideModule
-keep public enum com.zoyi.com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

# for DexGuard only
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule

##---------------End: proguard configuration for Glide  ----------

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.zoyi.com.google.gson.TypeAdapterFactory
-keep class * implements com.zoyi.com.google.gson.JsonSerializer
-keep class * implements com.zoyi.com.google.gson.JsonDeserializer

-dontnote sun.misc.Unsafe

##---------------End: proguard configuration for Gson  ----------

##---------------Begin: proguard configuration for Okhttp  ----------
-dontwarn com.zoyi.okhttp3.**
-dontnote com.zoyi.okhttp3.**

-keepnames class com.zoyi.channel.plugin.android.network.GlideSetup
# or more generally:
#-keep public class * implements com.bumptech.glide.module.GlideModule

# for DexGuard only
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
##---------------End: proguard configuration for Okhttp  ----------

##---------------Begin: proguard configuration for Okio  ----------
-dontwarn com.zoyi.okio.**

##---------------End: proguard configuration for Okio  ----------

##---------------Begin: proguard configuration for Retrofit  ----------
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote com.zoyi.retrofit2.Platform
# Platform used when running on RoboVM on iOS. Will not be used at runtime.
-dontnote com.zoyi.retrofit2.Platform$IOS$MainThreadExecutor
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn com.zoyi.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

##---------------End: proguard configuration for Retrofit  ----------

##---------------Begin: proguard configuration for RxJava and RxAndroid  ----------
-keep class com.zoyi.rx.schedulers.Schedulers {
    public static <methods>;
}
-keep class com.zoyi.rx.schedulers.ImmediateScheduler {
    public <methods>;
}
-keep class com.zoyi.rx.schedulers.TestScheduler {
    public <methods>;
}
-keep class com.zoyi.rx.schedulers.Schedulers {
    public static ** test();
}
-keepclassmembers class com.zoyi.rx.internal.util.unsafe.*ArrayQueue*Field* {
    long producerIndex;
    long consumerIndex;
}
-keepclassmembers class com.zoyi.rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    long producerNode;
    long consumerNode;
}

-dontwarn com.zoyi.rx.internal.**
-dontnote com.zoyi.rx.internal.**

##---------------End: proguard configuration for RxJava and RxAndroid  ----------

##---------------Begin: proguard configuration for Firebase ----------
-dontwarn com.google.firebase.**
-dontwarn com.google.android.gms.**

# Authentication
#-keepattributes *Annotation*

# Realtime database
#-keepattributes Signature

##---------------End: proguard configuration for Firebase  ----------

##---------------Begin: proguard configuration for Socket IO ----------
#-keep class com.zoyi.io.socket.** { *; }

##---------------End: proguard configuration for Socket IO  ----------

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/mika/Work/android-sdk-macosx/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

-keep public class com.zoyi.channel.plugin.android.model.** { *; }
-keep public class com.zoyi.channel.plugin.android.global.** { *; }
-keep public class com.zoyi.channel.plugin.android.push.** { *; }
-keep public class com.zoyi.channel.plugin.android.** { *; }

# Don't note duplicate definition (Legacy Apche Http Client)
-dontnote android.net.http.*
-dontnote org.apache.http.**

