# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in F:\AndroidTool\android-midunovel-windows/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 *;
#}
 #-------------------------------------------基本不用动区域--------------------------------------------
 #---------------------------------基本指令区----------------------------------
-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
  #-------------------------------------------基本不用动区域--------------------------------------------
  #---------------------------------基本指令区----------------------------------

#-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 class com.lechuan.midunovel.view.FoxActivity{
        public static <methods>;
}

-dontwarn com.lechuan.midunovel.base.**
-keep public  class com.lechuan.midunovel.base { *; }
-keep public  class com.lechuan.midunovel.base.data.**{*;}
-keep public  class com.lechuan.midunovel.base.FoxBaseSDK { *; }
-keep public  class com.lechuan.midunovel.base.util.cache.** { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseCommonUtils { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseAppUtil { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseFileUtils { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseGsonUtil { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseGZipUtil { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseLogger { *; }
-keep public  class com.lechuan.midunovel.base.util.FoxBaseScreenUtils { *; }
-keep public  class com.lechuan.midunovel.base.util.cache.FoxBaseCacheUtils { *; }
-keep public  class com.lechuan.midunovel.base.util.cache.FoxBaseDiskCacheManager { *; }

-dontwarn com.lechuan.midunovel.view.video.**
-keep public  class com.lechuan.midunovel.view.video.**{ *;}
-keep public  class com.lechuan.midunovel.view.video.bean.**{ *;}
-keep public  class com.lechuan.midunovel.view.FoxSDK { *; }

-keep public  class com.lechuan.midunovel.view.video.FoxVideoView { *; }
-keep public  class com.lechuan.midunovel.view.video.js.FoxWebjsSdk { *; }
-keep public  class com.lechuan.midunovel.view.video.FoxVideoListener { *; }

-keep public  class com.lechuan.midunovel.view.FoxListener { *; }
-keep public  class com.lechuan.midunovel.view.FoxNsTmListener { *; }
-keep public  class com.lechuan.midunovel.view.FoxShListener { *; }
-keep public  class com.lechuan.midunovel.view.FoxSize { *; }
-keep public  class com.lechuan.midunovel.view.FoxViewControll { *; }
-keep public  class com.lechuan.midunovel.view.FoxUpdateFileProvider { *; }
-keep public  class com.lechuan.midunovel.view.FoxBrowserLayout { *; }
-keep public  class com.lechuan.midunovel.view.FoxTbScreen {
    public <init>(android.content.Context);
}
-keep public  class com.lechuan.midunovel.view.FoxCustomerTm {
    public <init>(android.content.Context);
    public <methods>;
}
-keep public  class com.lechuan.midunovel.view.FoxShView {
    public <methods>;
}
-keep public  class com.lechuan.midunovel.view.FoxStreamerView {
    public <methods>;
}

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context,com.lechuan.midunovel.view.FoxSize);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
#---------------------------------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------------------------------------

#保持 TMNa 方法不被混淆
-keepclasseswithmembernames class * {
    TMNa <methods>;
}
#保持 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);
}
#不混淆资源类
-keepclassmembers  class com.lechuan.midunovel.view.http.FoxCallRequest {
    private <fields>;
}
-keepclassmembers  class com.lechuan.midunovel.view.FoxSize {
    public static final FoxSize *;
}
-keepclassmembers  class com.lechuan.midunovel.view.http.FoxRequest {
     private <fields>;
 }
 -keepclassmembers  class com.lechuan.midunovel.view.http.FoxPushRequest {
     private <fields>;
 }
  -keepclassmembers  class com.lechuan.midunovel.view.http.FoxCallRequest$GetSDataField {
      private <fields>;
  }

  -keepclassmembers  class com.lechuan.midunovel.view.http.FoxCallRequest$GetNSData {
      private <fields>;
  }

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

# 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();
}

#okhttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-keep class okhttp3.** { *;}
-keep class okio.** { *;}
-dontwarn sun.security.**
-keep class sun.security.** { *;}
-dontwarn okio.**
-dontwarn okhttp3.**

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

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

#okgo
-dontwarn com.lzy.okgo.**
-keep class com.lzy.okgo.**{*;}

#okrx
-dontwarn com.lzy.okrx.**
-keep class com.lzy.okrx.**{*;}

#okrx2
-dontwarn com.lzy.okrx2.**
-keep class com.lzy.okrx2.**{*;}

#okserver
-dontwarn com.lzy.okserver.**
-keep class com.lzy.okserver.**{*;}

 # okdownload:okhttp
 -keepnames class com.liulishuo.okdownload.core.connection.DownloadOkHttp3Connection

 # 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);
 }

