 #-------------------------------------------基本不用动区域--------------------------------------------
 #---------------------------------基本指令区----------------------------------
-ignorewarnings
#指定代码的压缩级别
#-optimizationpasses 5
#包明不混合大小写
-dontusemixedcaseclassnames
#不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
 # 指定不去忽略包可见的库类的成员
 -dontskipnonpubliclibraryclassmembers
 #优化  不优化输入的类文件
-dontoptimize
 #预校验
-dontpreverify
 #混淆时是否记录日志
-verbose
 # 混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保护注解
-keepattributes *Annotation*,InnerClasses
-keepattributes Signature
-allowaccessmodification
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
#-repackageclasses ''
-dontusemixedcaseclassnames
-ignorewarnings

-printmapping proguardMapping.txt
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,Annotation,EnclosingMethod,MethodParameters
  #-------------------------------------------基本不用动区域START--------------------------------------------
  #---------------------------------基本指令区----------------------------------

#-dontoptimize
#保持类不被混淆
-keep class android.support.annotation.** {*;}
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.view.View
-keep public class com.android.vending.licensing.ILicensingService
-keep class android.support.** {*;}

#保持 enum 类不被混淆
-keepclassmembers enum * {
     public static **[] values();
     public static ** valueOf(java.lang.String);
}
#
-keepclasseswithmembernames class * {
     public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
     public <init>(android.content.Context, android.util.AttributeSet, int);
}

# for DexGuard only
-keepclassmembers class **.R$* {
    public static <fields>;
}
-keep class *.R

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

-keepclassmembers class * implements java.io.Serializable {
     static final long serialVersionUID;
     private static final java.io.ObjectStreamField[] serialPersistentFields;
     private void writeObject(java.io.ObjectOutputStream);
     private void readObject(java.io.ObjectInputStream);
     java.lang.Object writeReplace();
     java.lang.Object readResolve();
}

-keepclasseswithmembernames class * {
    native <methods>;
}
-keepclassmembers class * extends android.app.Activity{
    public void *(android.view.View);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
-keep public class * extends android.view.View{
    *** get*();
    void set*(***);
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}
#表示不混淆R文件中的所有静态字段
-keep class **.R$* {
    public static <fields>;
}
-keepclassmembers class * {
    void *(**On*Event);
}
#-------------------------------------------基本不用动区域END--------------------------------------------
#---------------------------------三方SDK指令区START----------------------------------

#---------------------------------webview------------------------------------
-keepclassmembers class fqcn.of.javascript.interface.for.Webview {
   public *;
}
-keepclassmembers class * extends android.webkit.WebViewClient {
    public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
    public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.WebViewClient {
    public void *(android.webkit.WebView, jav.lang.String);
}
#---------------------------------webview------------------------------------

#---------------------------------Gif------------------------------------
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int);}
-keep class pl.droidsonroids.gif.GifInfoHandle{<init>(long,int,int,int);}
#---------------------------------Gif------------------------------------

#---------------------------------okhttp------------------------------------
#okhttp
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}
#okio
-dontwarn okio.**
-keep class okio.**{*;}
#---------------------------------okhttp------------------------------------

#---------------------------------gson------------------------------------
#gson
-keep public class com.google.gson.**
-keep public class com.google.gson.** {public private protected *;}
-keepattributes Signature
-keepattributes *Annotation*
-keep class sun.misc.Unsafe { *; }
#---------------------------------gson------------------------------------

#---------------------------------okdownload------------------------------------
# okdownload:okhttp
-keepnames class com.liulishuo.okdownload.core.connection.DownloadOkHttp3Connection
-dontwarn com.liulishuo.okdownload.**
-keep class com.liulishuo.okdownload.**{*; }
-keep interface com.liulishuo.okdownload.**{*; }

# okdownload:sqlite
#-keep class com.liulishuo.okdownload.core.breakpoint.BreakpointStoreOnSQLite {
#         public com.liulishuo.okdownload.core.breakpoint.DownloadStore createRemitSelf();
#         public com.liulishuo.okdownload.core.breakpoint.BreakpointStoreOnSQLite(android.content.Context);
# }
# Findbugs
-dontwarn edu.umd.cs.findbugs.annotations.SuppressFBWarnings
#---------------------------------okdownload------------------------------------

#---------------------------------oaid-miitmdid------------------------------------
#OAID http://www.msa-alliance.cn/col.jsp?id=120
-keep class com.bun.miitmdid.core.** {*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
#---------------------------------oaid-miitmdid------------------------------------
#---------------------------------三方SDK指令区END----------------------------------

#---------------------------------SDK指令区START----------------------------------
#base
#-dontwarn com.mediamain.android.base.okgo.**
#-keep class com.mediamain.android.base.okgo.**{*;}
-keep public class com.mediamain.android.base.config.**{*;}
-keep public class com.mediamain.android.base.data.**{*;}
#utils
-keep public class com.mediamain.android.base.util.FoxBaseOAUtils { *; }
-keep public class com.mediamain.android.base.util.FoxBaseSPUtils { *; }
-keep public class com.mediamain.android.base.util.FoxBaseLogUtils { *; }
-keep public class com.mediamain.android.base.util.FoxBaseLogUtils$* { *; }
-keep public interface com.mediamain.android.base.util.FoxBaseLogUtils$* { *; }
-keep public class com.mediamain.android.base.util.FoxBaseThreadUtils { *; }
-keep public class com.mediamain.android.base.util.FoxBaseThreadUtils$* { *; }
-keep public class com.mediamain.android.base.download.IntegrateH5DownloadManager { *; }
#native sdk
-keep class com.mediamain.android.nativead.Ad { *;}
-keep class com.mediamain.android.nativead.TuiaAdConfig { *; }
-keep class com.mediamain.android.nativead.bean.**{*;}
-keep class com.mediamain.android.nativead.jsbridge.**{ *; }
-dontwarn com.mediamain.android.nativead.**
-keep class com.mediamain.android.nativead.DefaultAdCallBack{ *; }
-keep interface com.mediamain.android.nativead.**{ *; }
-keep class com.mediamain.android.base.util.FoxBaseLogUtils{ *; }
#hotfix
-keep class com.mediamain.android.hotfix.**{ *; }

#xpopup
#-keep class com.mediamain.android.base.util.xpopup.**{ *; }
#-dontwarn com.mediamain.android.base.util.xpopup.widget.**
#-keep class com.mediamain.android.base.util.xpopup.widget.**{*;}

#SDK View
-keep interface com.mediamain.android.view.holder.**{*;}
-keep interface com.mediamain.android.view.interfaces.**{*;}
-keep class com.mediamain.android.view.base.**{*;}
-keep class com.mediamain.android.view.bean.**{*;}
-keep class com.mediamain.android.view.interfaces.**{*;}
-keep class com.mediamain.android.view.video.bean.**{*;}
-keep class com.mediamain.android.view.widget.**{*;}

-keep class com.mediamain.android.view.holder.FoxNativeAdHelper{*;}
-keep public  class com.mediamain.android.view.FoxCycleViewPager {
    public static <methods>;
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxBrowserLayout {
    public <init>(android.content.Context);
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxCustomerTm {
    public <init>(android.content.Context);
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxInfoStreamView {
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxNewShView {
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxStreamerView {
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxTbScreen {
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxTextLinkView {
    public <methods>;
}
-keep public  class com.mediamain.android.view.FoxWallView {
    public <methods>;
}
-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context,com.mediamain.android.view.base.FoxSize);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
#保持 TMNa 方法不被混淆
-keepclasseswithmembernames class * {
    TMNa <methods>;
}
#---------------------------------SDK指令区END----------------------------------

#---------------------------------SDK-HotFix-START----------------------------------
#-keep class com.mediamain.android.**{*;}

-dontwarn
-keepattributes Signature,SourceFile,LineNumberTable
-keepattributes *Annotation*
-keeppackagenames
-ignorewarnings
-dontwarn android.support.v4.**,**CompatHoneycomb,com.tenpay.android.**
-optimizations !class/unboxing/enum,!code/simplification/arithmetic
-keepclassmembers class **{ public static com.meituan.robust.ChangeQuickRedirect *; }

-dontwarn com.meituan.robust.**
-dontwarn meituan.robust.**
-dontwarn com.google.gson.**
-keep class com.meituan.robust.**{*;}
-keep class meituan.robust.**{*;}
-keep class com.google.gson.**{*;}
-keepattributes *Annotation*
-keepclassmembers class **{
public static com.meituan.robust.ChangeQuickRedirect *;
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}