# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\AndroidSDK/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 *;
#}
#############################这个是通用的 proguard，会被具体model include#########################
# 保留所有注解
-keepattributes *Annotation*
# 保留泛型信息
-keepattributes Signature
# 保留内部类和匿名类的属性
-keepattributes InnerClasses,EnclosingMethod
# 保留枚举相关方法（防止 Enum 出问题）
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}
#混淆之后保留行号
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
##
-dontwarn android.support.v4.**
-dontwarn cn.sharesdk.**
-dontwarn java.nio.file.**
-dontwarn org.codehaus.mojo.**
-dontwarn okio.**
-dontwarn **.R$*
-dontwarn com.google.android.**

-keep class android.content.** { *; }
-keep class com.google.** { *; }
-keep class java.lang.** { *; }
-keep class org.chromium.** {*;}
-keep class org.chromium.** { *; }
-keep class aegon.chrome.** { *; }
-keep class com.alibaba.fastjson.**
-keep class android.support.v4.**{*;}
-keep class com.google.**{*;}
-keep class sun.misc.Unsafe { *; }
-keep class org.json.**{*;}
-keep class **.R$* {*;}
-keep class **.R{*;}
-keep class androidx.core.util.Consumer{*;}
-keep class * extends android.view.View {  public *; }
-keep class * extends androidx.core.content.FileProvider { *; }

# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
-keepclasseswithmembernames class ** {
    native <methods>;
}
# ViewBinding.inflate
-keepclassmembers class * extends androidx.viewbinding.ViewBinding {
    public *** inflate(android.view.LayoutInflater);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
-keep class * implements java.io.Serializable { *; }
-keepclassmembers class * implements java.io.Serializable { *; }

-keepclassmembers class * extends android.webkit.WebChromeClient{
    public void openFileChooser(...);
}
-keep class cn.mucang.join.open.** { *; }

#core内的
-keep class cn.mucang.join.priv.core.base.core.api.ApiResponse{*;}






