# 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

#  1. bugly crash 正常运行所需要的混淆规则

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

# jni方法
-keep public class com.tencent.bugly.crashreport.crash.jni.NativeCrashHandler{
	public *;
	native <methods>;
}

-keep public interface com.tencent.bugly.crashreport.crash.jni.NativeExceptionHandler{
    *;
}

-keep public class com.tencent.feedback.eup.jni.* {
	public *;
}

-keep public class com.tencent.feedback.eup.jni.NativeExceptionUpload{
	public *;
}

-keepclasseswithmembernames class * {
    native <methods>;
}

-keep public interface com.tencent.feedback.eup.jni.NativeExceptionHandler {
    *;
}

-keep public class com.tencent.feedback.eup.jni.NativeExceptionUpload {
    *;
}


# 2. bugly apm 正常运行所需要的混淆规则

-keep class com.tencent.rmonitor.memory.leakdetect.ActivityLeakSolution {
    public <methods>;
}

# Fragment
-keep class android.support.v4.app.FragmentActivity
-keep class android.support.v4.app.Fragment
-keep class androidx.fragment.app.FragmentActivity
-keep class androidx.fragment.app.Fragment

# FdCluster
-keep class com.tencent.rmonitor.fd.cluser.FdCluster {
    public static java.lang.String matchFdType(java.lang.String);
}

-keep class com.tencent.rmonitor.base.meta.InspectUUID { *; }

# 日志模块
-keep class com.tencent.rmonitor.common.logger.NativeLogger { *; }
-keep interface com.tencent.rmonitor.common.logger.ILoger { *; }

-keep class com.tencent.rmonitor.common.util.StackUtil {
    public static java.lang.String getCurrentThreadName();
    public static java.lang.String getThrowableStack();
}

# 启动的初始化
-keep public class com.tencent.rmonitor.launch.AppLaunchInitializer {
    public *;
}

-keep public interface com.tencent.bugly.common.sp.ISharedPreferencesProvider {
    public *;
}

-keep public class com.tencent.bugly.traffic.TrafficMsg {
	public *;
}

-keep public class com.tencent.feedback.eup.CrashReport {
	static void triggerUserInfoUpload();
}

# shark 分析工具需要
-keep class androidx.arch.core.internal.SafeIterableMap { *; }
-keep class androidx.arch.core.internal.FastSafeIterableMap { *; }
-keep class androidx.arch.core.internal.SafeIterableMap$Entry { *; }