package com.narutohuo.xindazhou.push.receiver

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import cn.jpush.android.api.JPushInterface
import com.narutohuo.xindazhou.core.log.ILog

/**
 * 开机自启动接收器
 * 
 * 在设备开机后自动恢复推送服务，提升推送可靠性
 * 
 * 注意：
 * 1. 需要在 AndroidManifest.xml 中注册并声明 RECEIVE_BOOT_COMPLETED 权限
 * 2. 用户需要在系统设置中开启"自启动"权限（华为、小米、OPPO、vivo 等）
 * 3. 此 Receiver 仅在设备重启后触发一次
 */
class BootReceiver : BroadcastReceiver() {
    
    companion object {
        private const val TAG = "BootReceiver"
    }
    
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
            ILog.d(TAG, "========== 设备开机，恢复推送服务 ==========")
            
            try {
                // 恢复推送服务（开启推送）
                JPushInterface.resumePush(context.applicationContext)
                ILog.d(TAG, "推送服务恢复成功")
                
                // 获取 RegistrationID（可能需要等待几秒才有值）
                val registrationId = JPushInterface.getRegistrationID(context.applicationContext)
                if (registrationId.isNotEmpty()) {
                    ILog.d(TAG, "RegistrationID: $registrationId")
                } else {
                    ILog.d(TAG, "RegistrationID 尚未获取，等待 onRegister 回调")
                }
            } catch (e: Exception) {
                ILog.e(TAG, "恢复推送服务失败", e)
            }
        }
    }
}

