package com.lila.wakeup.protocol

import android.content.Context
import android.content.Intent
import android.util.Log
import com.lila.wakeup.Config

/**
 * 向数字人 APP 发送 WAKEUP 广播。
 *
 * 协议 v2.1 要求：
 *  - 必须显式 setPackage(Config.APP_PACKAGE) ——> "com.qy.lila"
 *  - 必须带 keyword / timestamp / confidence 三个 Extras
 *
 * Android 13 安全规范：隐式广播会被丢弃，setPackage 是强制要求。
 */
class BroadcastSender(private val context: Context) {

    companion object {
        private const val TAG = "KwsService.Send"
    }

    fun sendWakeup(keyword: String, confidence: Float) {
        val timestamp = System.currentTimeMillis()

        val intent = Intent(Config.ACTION_WAKEUP).apply {
            setPackage(Config.APP_PACKAGE)   // v2.1 双向 setPackage 强制要求
            putExtra(Config.EXTRA_KEYWORD, keyword)
            putExtra(Config.EXTRA_TIMESTAMP, timestamp)
            putExtra(Config.EXTRA_CONFIDENCE, confidence)
        }

        context.sendBroadcast(intent)
        Log.i(TAG, "WAKEUP -> ${Config.APP_PACKAGE} keyword=$keyword conf=$confidence ts=$timestamp")
    }
}
