#for Icepick
-dontwarn icepick.**
-keep class **$$Icepick { *; }
-keepclasseswithmembernames class * {
    @icepick.* <fields>;
}

#for PNGJ
-dontwarn ar.com.hjg.**

#for Logback
-keep class ch.qos.** { *; }
-keep class org.slf4j.** { *; }
-dontwarn ch.qos.logback.core.net.*
-dontwarn org.apache.commons.compress.archivers.sevenz.*
-dontwarn org.apache.commons.compress.compressors.xz.*
-dontwarn org.apache.commons.compress.compressors.lzma.*

#for Picasso
-dontwarn com.squareup.okhttp.**

#for Parcel
-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keepnames class * implements android.os.Parcelable {
    public static final ** CREATOR;
}

# Parceler library
-keep interface org.parceler.Parcel
-keep @org.parceler.Parcel class * { *; }
-keep class **$$Parcelable { *; }

-keepclassmembers class * extends android.webkit.WebViewClient {
    <methods>;
}

#for Event Bus
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}

-dontwarn com.google.common.**
-dontwarn com.moxtra.binder.ui.page.pdf.PdfReader

# Web note
-keepattributes JavascriptInterface
-keep class com.moxtra.binder.ui.webnote.WEditorFragment$CWJavaScriptInterface
-keepclassmembers class com.moxtra.binder.ui.webnote.WEditorFragment$CWJavaScriptInterface {
    <methods>;
}
-keep public class org.jsoup.** {
    public *;
}

# javacv
-dontwarn org.bytedeco.**

# glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

-keepclassmembers class * extends android.webkit.WebViewClient {
    <methods>;
}

-keep public class com.moxtra.binder.SDKConstant {
    public *;
}

-keep public class com.moxtra.binder.util.MXActivityLifeCycleMonitor {
    public *;
}

#We have to keep the following class otherwise the multiple select doesn't work
-keepnames class androidx.recyclerview.widget.RebindReportingHolder
-keep class androidx.recyclerview.widget.RebindReportingHolder {
    *;
}
#easiio sdk
-keep class org.pjsip.** {
    <fields>;
    <methods>;
}
-keep class com.easiiosdk.android.** {
    <fields>;
    <methods>;
}
#greenrobot
-keepattributes *Annotation*
-keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

# OKHttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**
-dontwarn okhttp3.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault

-keep public class com.google.android.gms.maps.** {
  public protected *;
}

# ez-vcard
-dontwarn ezvcard.io.json.**            # JSON serializer (for jCards) not used
-dontwarn freemarker.**                 # freemarker templating library (for creating hCards) not used
-dontwarn org.jsoup.**                  # jsoup library (for hCard parsing) not used
-dontwarn sun.misc.Perf
-keep,includedescriptorclasses class ezvcard.property.** { *; }  # keep all VCard properties (created at runtime)
# fix issue of reflect filed of V3_0 during saving contact
-keep enum ezvcard.VCardVersion { *; }
# For android pdf viewer
-keep class com.shockwave.**
-dontwarn module-info