# 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

#入口
-keep class cn.mucang.join.priv.toutiao.ToutiaoPluginImpl{*;}


############################third start############################
-keep class com.bytedance.** {*;}
-keep class com.ss.android.** {*;}

-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}


#36xx版本-38xx版本混淆规则如下：
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class ms.bd.c.**{*;}
-keep class com.bytedance.mobsec.**{*;}
-keep class com.bytedance.embed_dr.** {*;}
-keep class com.bytedance.embedapplog.** {*;}
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keepnames class com.bytedance.framwork.core.sdkmonitor.SDKMonitorUtils


#3900版本及以上版本混淆规则如下
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep class com.bytedance.frameworks.** { *; }

-keep class ms.bd.c.Pgl.**{*;}
-keep class com.bytedance.mobsec.metasec.ml.**{*;}

-keep class com.ss.android.**{*;}

-keep class com.bytedance.embedapplog.** {*;}
-keep class com.bytedance.embed_dr.** {*;}

-keep class com.bykv.vk.** {*;}


-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}

# MSSDK need
-keep class ms.bd.c.**
-keep class com.bytedance.mobsec.metasec.ml.MS { *;}
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keepnames class com.bytedance.framwork.core.sdkmonitor.SDKMonitorUtils

-dontwarn com.tencent.smtt.sdk.WebView
-dontwarn com.tencent.smtt.sdk.WebChromeClient

-dontwarn androidx.annotation.Nullable
-dontwarn androidx.annotation.NonNull
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
-dontwarn androidx.appcompat.app.AlertDialog
-dontwarn androidx.appcompat.view.menu.ListMenuItemView
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-dontwarn androidx.viewpager.widget.ViewPager
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.annotation.RequiresApi
-dontwarn androidx.fragment.app.FragmentActivity
-dontwarn androidx.fragment.app.Fragment
-dontwarn androidx.annotation.AnyThread
-dontwarn androidx.annotation.WorkerThread

-keep class com.bytedance.embedapplog.AppLog { public *; }
-keep public interface com.bytedance.embedapplog.IDataObserver { *; }
-keep public interface com.bytedance.embedapplog.IAppParam { *; }
-keep public interface com.bytedance.embedapplog.IExtraParams { *; }
-keep public interface com.bytedance.embedapplog.IPicker { *; }
-keep public interface com.bytedance.embedapplog.IOaidObserver { *; }
-keep public interface com.bytedance.embedapplog.ISensitiveInfoProvider { *; }
-keep class com.bytedance.embedapplog.IOaidObserver$Oaid { *; }
-keep class com.bytedance.embedapplog.GameReportHelper { public *; }
-keep class com.bytedance.embedapplog.InitConfig { public *; }
-keep class com.bytedance.embedapplog.util.UriConfig { public *; }
-keep class com.bytedance.embedapplog.tracker.Tracker { public *; }
-keep class com.bytedance.embedapplog.picker.Picker { public *; }
-keep class com.bytedance.embedapplog.tracker.WebViewJsUtil { *; }
-keep interface com.bytedance.embed_dr.DrLogWriter { public *; }
-keep interface com.bytedance.embed_bdtracker.bt { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a$a { public *; }
-keep class com.bytedance.embed_dr.VivoIdentifier {*;}
-keep class com.bytedance.embed_dr.VivoIdentifier$1 {*;}
-keep class ms.bd.c.**

-keep class com.bytedance.mobsec.metasec.ml.MS {
    *;
}

-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keepnames class com.bytedance.framwork.core.sdkmonitor.SDKMonitorUtils

-dontwarn com.tencent.smtt.sdk.WebView
-dontwarn com.tencent.smtt.sdk.WebChromeClient

-dontwarn androidx.annotation.Nullable
-dontwarn androidx.annotation.NonNull
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
-dontwarn androidx.appcompat.app.AlertDialog
-dontwarn androidx.appcompat.view.menu.ListMenuItemView
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-dontwarn androidx.viewpager.widget.ViewPager
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.annotation.RequiresApi
-dontwarn androidx.fragment.app.FragmentActivity
-dontwarn androidx.fragment.app.Fragment
-dontwarn androidx.annotation.AnyThread
-dontwarn androidx.annotation.WorkerThread

-keep class com.bytedance.embedapplog.AppLog { public *; }
-keep public interface com.bytedance.embedapplog.IDataObserver { *; }
-keep public interface com.bytedance.embedapplog.IAppParam { *; }
-keep public interface com.bytedance.embedapplog.IExtraParams { *; }
-keep public interface com.bytedance.embedapplog.IPicker { *; }
-keep public interface com.bytedance.embedapplog.IOaidObserver { *; }
-keep public interface com.bytedance.embedapplog.ISensitiveInfoProvider { *; }
-keep class com.bytedance.embedapplog.IOaidObserver$Oaid { *; }
-keep class com.bytedance.embedapplog.GameReportHelper { public *; }
-keep class com.bytedance.embedapplog.InitConfig { public *; }
-keep class com.bytedance.embedapplog.util.UriConfig { public *; }
-keep class com.bytedance.embedapplog.tracker.Tracker { public *; }
-keep class com.bytedance.embedapplog.picker.Picker { public *; }
-keep class com.bytedance.embedapplog.tracker.WebViewJsUtil { *; }
-keep interface com.bytedance.embed_dr.DrLogWriter { public *; }
-keep interface com.bytedance.embed_bdtracker.bt { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a$a { public *; }
-keep class com.bytedance.embed_dr.VivoIdentifier {*;}
-keep class com.bytedance.embed_dr.VivoIdentifier$1 {*;}


-keep class ms.bd.c.**

-keep class com.bytedance.mobsec.metasec.ml.MS {
    *;
}

-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keepnames class com.bytedance.framwork.core.sdkmonitor.SDKMonitorUtils
-dontwarn com.tencent.smtt.sdk.WebView
-dontwarn com.tencent.smtt.sdk.WebChromeClient

-dontwarn androidx.annotation.Nullable
-dontwarn androidx.annotation.NonNull
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
-dontwarn androidx.appcompat.app.AlertDialog
-dontwarn androidx.appcompat.view.menu.ListMenuItemView
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-dontwarn androidx.viewpager.widget.ViewPager
-dontwarn androidx.recyclerview.widget.RecyclerView
-dontwarn androidx.annotation.RequiresApi
-dontwarn androidx.fragment.app.FragmentActivity
-dontwarn androidx.fragment.app.Fragment
-dontwarn androidx.annotation.AnyThread
-dontwarn androidx.annotation.WorkerThread

-keep class com.bytedance.embedapplog.AppLog { public *; }
-keep public interface com.bytedance.embedapplog.IDataObserver { *; }
-keep public interface com.bytedance.embedapplog.IAppParam { *; }
-keep public interface com.bytedance.embedapplog.IExtraParams { *; }
-keep public interface com.bytedance.embedapplog.IPicker { *; }
-keep public interface com.bytedance.embedapplog.IOaidObserver { *; }
-keep public interface com.bytedance.embedapplog.ISensitiveInfoProvider { *; }
-keep class com.bytedance.embedapplog.IOaidObserver$Oaid { *; }
-keep class com.bytedance.embedapplog.GameReportHelper { public *; }
-keep class com.bytedance.embedapplog.InitConfig { public *; }
-keep class com.bytedance.embedapplog.util.UriConfig { public *; }
-keep class com.bytedance.embedapplog.tracker.Tracker { public *; }
-keep class com.bytedance.embedapplog.picker.Picker { public *; }
-keep class com.bytedance.embedapplog.tracker.WebViewJsUtil { *; }
-keep interface com.bytedance.embed_dr.DrLogWriter { public *; }
-keep interface com.bytedance.embed_bdtracker.bt { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a { public *; }
-keep class com.bytedance.embed_bdtracker.bt$a$a { public *; }
-keep class com.bytedance.embed_dr.VivoIdentifier {*;}
-keep class com.bytedance.embed_dr.VivoIdentifier$1 {*;}
############################third end############################





# 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 android.** { *; }
-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 com.sina.**{*;}
-keep public class com.sina.weibo.sdk.**{*;}
-keep class android.support.v4.**{*;}
-keep class androidx.core.util.Consumer{*;}
-keep class * extends android.view.View {  public *; }
-keep class * extends androidx.core.content.FileProvider { *; }
-keep class com.squareup.okhttp.** { *;}
-keep class * extends java.lang.annotation.Annotation { *; }
-keep class * extends cn.mucang.android.sdk.priv.item.common.cpn.AdItemBaseComponent{*;}
-keep class * extends cn.mucang.join.priv.core.base.core.db.OpenIdEntity{*;}

# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
-keepclasseswithmembernames class ** {
    native <methods>;
}
-keep class * extends androidx.viewbinding.ViewBinding { *; }
-keep class * extends me.drakeet.multitype.ItemViewBinder { *; }

-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 { *; }

-keep class com.facebook.imagepipeline.gif.** { *; }
-keep class com.facebook.imagepipeline.webp.** { *; }


-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{*;}

#glide
-keep class com.bumptech.glide.** {*;}
-keep class com.bumptech.glide.GeneratedAppGlideModuleImpl { *; }
-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 *;
}
-keep public class com.bumptech.glide.integration.webp.WebpImage { *; }
-keep public class com.bumptech.glide.integration.webp.WebpFrame { *; }
-keep public class com.bumptech.glide.integration.webp.WebpBitmapFactory { *; }






