package com.hikoncont.receiver

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.Build
import android.util.Log
import com.hikoncont.service.AccessibilityRemoteService
import com.hikoncont.MainActivity

/**
 * 智能权限恢复接收器
 * 处理Android 15投屏权限丢失的智能恢复
 */
class SmartRecoveryReceiver : BroadcastReceiver() {
    
    companion object {
        private const val TAG = "SmartRecoveryReceiver"
    }
    
    override fun onReceive(context: Context, intent: Intent) {
        when (intent.action) {
            "android.mycustrecev.SMART_PERMISSION_RECOVERY" -> {
                handleSmartRecovery(context, intent)
            }
            "android.mycustrecev.IGNORE_RECOVERY" -> {
                handleIgnoreRecovery(context)
            }
        }
    }
    
    private fun handleSmartRecovery(context: Context, intent: Intent) {
        Log.i(TAG, "收到智能恢复请求")
        
        // ✅ 修复：保活场景下不启动MainActivity，只发送通知
        // 这是保活场景下的自动恢复请求，不应该启动MainActivity
        // 如果需要用户交互，应该通过通知让用户主动打开应用
        Log.i(TAG, "💡 保活场景下的智能恢复请求，不启动MainActivity（避免保活程序拉起）")
        Log.i(TAG, "💡 建议：通过通知或其他方式让用户主动打开应用进行权限恢复")
        
        // 可以在这里发送通知，但不自动启动MainActivity
        // 通知的点击事件可以启动MainActivity（因为那是用户主动行为）
    }
    
    private fun handleIgnoreRecovery(context: Context) {
        Log.i(TAG, "用户选择忽略权限恢复")
        
        val prefs = context.getSharedPreferences("smart_recovery", Context.MODE_PRIVATE)
        prefs.edit().putLong("last_ignore_time", System.currentTimeMillis()).apply()
        
        val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as android.app.NotificationManager
        notificationManager.cancel(9999)
    }
} 