# ========== 供宿主 App 使用的混淆规则 ==========
# 保留 SDK 公开入口类及所有内部类（Config、Builder、ErrorInfo、Listener 等）
-keep public class com.huntmobi.daram.HMDSDK {
    public *;
}
-keep public class com.huntmobi.daram.HMDSDK$* {
    *;
}

# 【重要】保留方法参数名
-keepparameternames
-keepattributes MethodParameters

# 保留所有回调接口（宿主需要实现）
-keep public interface com.huntmobi.daram.HMDSDK$*Listener {
    *;
}

# 保留数据模型 Bean（宿主可能需要直接访问字段或用于 JSON 解析）
-keep class com.huntmobi.daram.bean.** {
    *;
}

# 保留公开 API 请求数据类（宿主需要构造实例并设置属性后传入 SDK）
-keep public class com.huntmobi.daram.api.requestdatas.SearchCriteriaRequestData {
    public *;
}

-keep public class com.huntmobi.daram.api.requestdatas.DramaRefreshItem {
    public *;
}

-keep public class com.huntmobi.daram.api.requestdatas.DramaRefreshBuilder {
    public *;
}

# 保留必要的属性（防止泛型、内部类等被擦除，影响反射调用）
-keepattributes Signature, InnerClasses, EnclosingMethod, *Annotation*

# 保留枚举类
-keepclassmembers enum com.huntmobi.daram.** {
    *;
}

# 保留腾讯云播放器相关公开类（宿主直接创建 LicenceTXVodPlayer 子类，播放日志自动上报）
-keep public class com.huntmobi.daram.vod.** {
    public *;
}

# 保留 SDK 内部播放日志监听回调方法（HMDVodPlayListener 实现 ITXVodPlayListener，
# onPlayEvent/onNetStatus 由腾讯播放器 native 回调调用，R8 无法感知 native 调用，
-keep class com.huntmobi.daram.vod.** implements com.tencent.rtmp.ITXVodPlayListener {
    *;
}

# 保留腾讯云播放器全部类（宿主若使用腾讯播放器，R8 混淆下必须保留，否则播放器调用失效；
# 已内置，宿主无需再自行添加）
-keep class com.tencent.** { *; }

# 防止宿主 R8 对可选播放器依赖缺失时报 warning 干扰构建
-dontwarn com.tencent.rtmp.**
-dontwarn androidx.media3.**