# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in android-sdk/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 *;
#}

-printmapping mapping.txt

-keepattributes InnerClasses
-keepattributes Signature
-keepattributes EnclosingMethod

# Third party libraries
-dontwarn okio.**
-dontwarn okhttp3.internal.platform.*
-keep class com.google.gson.** { *; }
-keep class sun.misc.Unsafe { *; }
-keepattributes Signature
-keepattributes *Annotation*

# me.zingle.core
-keepclassmembers enum me.zingle.core.** { *; }
-keep public enum me.zingle.core.InitializationStatus { public *; }
-keep public enum me.zingle.core.LoginResult { public *; }
-keep public enum me.zingle.core.LogoutResult { public *; }
-keep public enum me.zingle.core.MessageUploadStatus { public *; }
-keep public enum me.zingle.core.ConversationEventType { public *; }
-keep public enum me.zingle.core.PaymentStatus { public *; }
-keep public enum me.zingle.core.ZingleConnectionStatus { public *; }
-keep public class me.zingle.core.AbstractNotificationReceiver { public *; }
-keep public class me.zingle.core.Conversation { public *; }
-keep public class me.zingle.core.FcmService { public *; }
-keep public class me.zingle.core.Config { public *; }
-keep public class me.zingle.core.Message { public *; }
-keep public class me.zingle.core.Integration { public *; }
-keep public class me.zingle.core.MessageAction { public *; }
-keep public class me.zingle.core.MessageItem { public *; }
-keep public class me.zingle.core.ActionState { public *; }
-keep public class me.zingle.core.DisplaySettings { public *; }
-keep public class me.zingle.core.MessageType { public *; }
-keep public class me.zingle.core.CreditCard { public *; }
-keep public class me.zingle.core.CardSummary { public *; }
-keep public class me.zingle.core.Settings { public *; }
-keep public class me.zingle.core.Zingle { public *; }
-keep public class me.zingle.core.User { public *; }
-keep public class me.zingle.core.ConversationEvent { public *; }
-keep public class me.zingle.core.Coordinates { public *; }
-keep public class me.zingle.core.utils.FileUtils { public *; }
-keep public interface me.zingle.core.ZingleCallback { public *; }
-keep public class me.zingle.core.ZingleCallback$Response { public *; }
-keep public interface me.zingle.core.Conversation$Delegate { *; }
-keep public interface me.zingle.core.Conversation$MessageModifierDelegate { *; }
-keep public interface me.zingle.core.Conversation$ViewDelegate { *; }

# me.zingle.core.service
-keep public class me.zingle.core.service.ZingleService

# me.zingle.core.model
-keepclassmembers enum me.zingle.core.model.** { *; }
