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

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Uncomment this to preserve the line number information for
# debugging stack traces.
-keepattributes SourceFile,LineNumberTable

-dontusemixedcaseclassnames
-useuniqueclassmembernames
-dontskipnonpubliclibraryclasses
-dontpreverify
-dontshrink
-dontoptimize


######################## DATA  ####################
-keep class com.firstdata.clovergo.data.utils.DateTimeUtil{
	public protected *;
}
-keep class com.firstdata.clovergo.data.utils.PreferenceUtil{
	public protected *;
}

-keep class com.firstdata.clovergo.data.DataComponent{
	public protected *;
}

-keep class com.firstdata.clovergo.data.SDKDataComponent{
	public protected *;
}

-keep class com.firstdata.clovergo.data.model.** {*;}
-keep public class com.firstdata.clovergo.data.model.TransactionRequest { *; }

-keep class com.firstdata.clovergo.data.dbmodel.** {*;}

-keep interface com.firstdata.clovergo.data.net.services.** {*;}



######################## OkHttp  ####################
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**


########################   ThreatMetrix   ########################
-keep class okhttp3.** { *; }
-keep class okio.** { *; }
-dontwarn okio.**
-keep class com.squareup.okhttp.** { *; }
-keep class com.squareup.okhttp.internal.huc.** { *; }
-keep class okio.** { *; }
-keep interface android.support.design.widget.** { *; }
-dontwarn okio.**

########################  SQUARE  ########################
-dontwarn com.squareup.**
-keep class com.squareup.** { *; }

########################  Retrofit 2.X  ########################

-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepattributes *Annotation*
-keepattributes EnclosingMethod

-keepattributes RuntimeVisibleAnnotations
-keepattributes RuntimeInvisibleAnnotations
-keepattributes RuntimeVisibleParameterAnnotations
-keepattributes RuntimeInvisibleParameterAnnotations

-keepclasseswithmembers class * {
    @retrofit2.* <methods>;
}
-keepclasseswithmembers interface * {
    @retrofit2.* <methods>;
}


##################### Proguard configuration for Jackson 2.x (fasterxml package instead of codehaus package)      #######################
-keepattributes *Annotation*,EnclosingMethod,Signature
-keep class com.fasterxml.jackson.** { *; }
-keepclassmembers class * {
     @com.fasterxml.jackson.annotation.JsonProperty *;
     @com.fasterxml.jackson.annotation.JsonCreator *;
}
-keepclassmembers class * {
  @com.fasterxml.jackson.annotation.JsonProperty <methods>;
  @com.fasterxml.jackson.annotation.JsonProperty <fields>;
}

-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }
-keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }

-dontwarn com.fasterxml.**
-dontwarn okio.**
-dontwarn retrofit2.**
-dontwarn org.codehaus.mojo.**


########################     Realm  ########################
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class *
-dontwarn javax.**
-dontwarn io.realm.**
###############

-dontwarn android.net.http.*
-dontwarn org.apache.http.*
-dontwarn java.lang.invoke.**



