# 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 members annotated with @MiniKepp
# 保护代码中的注解不被混淆
-keepattributes *Annotation*
-keep,allowobfuscation @interface com.tencent.qqmini.sdk.annotation.MiniKeep
-keep @com.tencent.qqmini.sdk.annotation.MiniKeep class *
-keepclassmembers @com.tencent.qqmini.sdk.annotation.MiniKeep class ** {
    public <methods>; <fields>;
}
-keepclassmembers class * {
    @com.tencent.qqmini.sdk.annotation.MiniKeep *;
}

# Keep class members annotated with @JsEvent
-keep,allowobfuscation @interface com.tencent.qqmini.sdk.annotation.JsEvent
-keepclassmembers class * {
    @com.tencent.qqmini.sdk.annotation.JsEvent *;
}

# Keep minigame triton
-keep interface com.tencent.mobileqq.triton.** { *; }
-keep class com.tencent.mobileqq.triton.** { *; }
-keep @interface com.tencent.mobileqq.triton.jni.TTNativeModule, com.tencent.mobileqq.triton.jni.TTNativeCall
-keep @com.tencent.mobileqq.triton.jni.TTNativeModule class ** {
    @com.tencent.mobileqq.triton.jni.TTNativeCall <methods>;
    @com.tencent.mobileqq.triton.jni.TTNativeCall <fields>;
}
-keep @interface io.github.landerlyoung.jenny.NativeClass, io.github.landerlyoung.jenny.NativeFieldProxy, io.github.landerlyoung.jenny.NativeMethodProxy
-keep @io.github.landerlyoung.jenny.NativeClass class ** {
    @io.github.landerlyoung.jenny.NativeFieldProxy <fields>;
    @io.github.landerlyoung.jenny.NativeMethodProxy <methods>;
}

# Keep minigame sdk
-keep class * extends com.tencent.qqmini.sdk.launcher.ui.MiniActivity
-keep class com.tencent.qqmini.sdk.core.generated.** { *; }
-keep class com.tencent.qqmini.sdk.launcher.** { *; }
-keep class com.tencent.qqmini.sdk.MiniSDK { *; }
-keep class com.tencent.qqmini.sdk.MiniSDK$* { *; }
-keep class com.tencent.qqmini.sdk.BuildConfig { *; }
-keep class com.tencent.qqmini.sdk.annotation.** {* ;}
-keep class com.tencent.qqmini.sdk.utils.MiniSDKConst$AdConst{*;}
-keep class com.tencent.qqmini.sdk.receiver.** {* ;}
-keepclassmembers class com.tencent.qqmini.sdk.** {
    @android.webkit.JavascriptInterface <methods>;
}
-keep class com.tencent.qqmini.sdk.core.proxy.service.ChannelProxyDefault { *; }

# protocol: should keep field name because reflection
-keep class cooperation.** { *; }
-keep class com.tencent.mobileqq.pb.MessageMicro { *; }
-keepclassmembers class * extends com.tencent.mobileqq.pb.MessageMicro {
    <fields>;
}

# extra_ad
-keep class com.tencent.qqmini.ad.** {* ;}

# ad
-keep class com.qq.e.** {* ;}

# extraad模块直接引用了协议，先keep
-keep class NS_MINI_AD.** { *; }
-keep class NS_QWEB_PROTOCAL.**  { *; }
-keep class com.tencent.mobileqq.pb.PBStringField {*;}
-keep class com.tencent.qqmini.sdk.request.ProtoBufRequest {
    public *;
}

# 微信互联登录
-keep class com.tencent.mm.opensdk.** {
    *;
}
-keep class com.tencent.wxop.** {
    *;
}
-keep class com.tencent.mm.sdk.** {
    *;
}