# 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
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**

# 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 com.ss.android.ttvecamera.TEVendorCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEOpCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEOpMediaCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEVoCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEXmV2Camera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}


# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/chenjian/Library/Android/sdk/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 *;
#}

-dontskipnonpubliclibraryclassmembers
-printconfiguration

-keepclasseswithmembernames class * {
    native <methods>;
}

-keep class com.apm.lite.nativecrash.NativeImpl {*;}

-keep class com.apm.lite.NativeCrashCollector{*;}

-keep class com.apm.lite.Npth{*;}
-keep class com.apm.lite.AttachUserData{*;}
-keep class com.apm.lite.IUploadCallback{*;}
-keep class com.apm.lite.ICrashCallback{*;}
-keep class com.apm.lite.IOOMCallback{*;}
-keep class com.apm.lite.CrashInfoCallback{*;}
-keep class com.apm.lite.ICrashFilter{*;}
-keep class com.apm.lite.CrashType{*;}
-keep class com.apm.lite.ICommonParams{*;}
-keep class com.apm.lite.MonitorCrash{*;}
-keep class com.apm.lite.MonitorCrash$Config{public *;}
-keep class com.apm.lite.MonitorCrash$Config$Builder{public *;}
-keep class com.apm.lite.MonitorCrash$Config$IDynamicParams{*;}
-keep class com.apm.lite.MonitorCrash$Config$SdkBuilder{public *;}
-keep class com.apm.lite.MonitorCrash$HeaderParams{*;}
-keep class com.apm.lite.runtime.ConfigManager{*;}

# 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
##??CalledByNative????
-keepclasseswithmembernames class * {
    native <methods>;
}

#??webrtc?RtcEngine???????
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#????????CallByNaitve????????????
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#?CVSDK????
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#??R8????(gradle8.0+)???warning??error??????
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**



-keep class com.bytedance.bpea.entry.common.DataType{*;}

-keep class com.bytedance.bpea.basics.Cert{*;}


# 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 com.ss.android.ttvecamera.TEVendorCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEOpCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEOpMediaCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEVoCamera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}

-keep class com.ss.android.ttvecamera.TEXmV2Camera {
    public static ** create(int,android.content.Context,com.ss.android.ttvecamera.TECameraBase$CameraEvents,
    android.os.Handler,com.ss.android.ttvecamera.TECameraBase$PictureSizeCallBack);
}


# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/chenjian/Library/Android/sdk/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 *;
#}

-dontskipnonpubliclibraryclassmembers
-printconfiguration

-keepclasseswithmembernames class * {
    native <methods>;
}

-keep class com.apm.lite.nativecrash.NativeImpl {*;}

-keep class com.apm.lite.NativeCrashCollector{*;}

-keep class com.apm.lite.Npth{*;}
-keep class com.apm.lite.AttachUserData{*;}
-keep class com.apm.lite.IUploadCallback{*;}
-keep class com.apm.lite.ICrashCallback{*;}
-keep class com.apm.lite.IOOMCallback{*;}
-keep class com.apm.lite.CrashInfoCallback{*;}
-keep class com.apm.lite.ICrashFilter{*;}
-keep class com.apm.lite.CrashType{*;}
-keep class com.apm.lite.ICommonParams{*;}
-keep class com.apm.lite.MonitorCrash{*;}
-keep class com.apm.lite.MonitorCrash$Config{public *;}
-keep class com.apm.lite.MonitorCrash$Config$Builder{public *;}
-keep class com.apm.lite.MonitorCrash$Config$IDynamicParams{*;}
-keep class com.apm.lite.MonitorCrash$Config$SdkBuilder{public *;}
-keep class com.apm.lite.MonitorCrash$HeaderParams{*;}
-keep class com.apm.lite.runtime.ConfigManager{*;}

# 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
##??CalledByNative????
-keepclasseswithmembernames class * {
    native <methods>;
}

#??webrtc?RtcEngine???????
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#????????CallByNaitve????????????
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#?CVSDK????
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#??R8????(gradle8.0+)???warning??error??????
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**



-keep class com.bytedance.bpea.entry.common.DataType{*;}

-keep class com.bytedance.bpea.basics.Cert{*;}
