package com.base.filerecoveryrecyclebin.activity

import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.net.Uri
import android.os.Handler
import android.util.Log
import android.widget.TextView
import android.widget.Toast
import androidx.activity.addCallback
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.fcmNotification
import com.base.filerecoveryrecyclebin.bean.ConstObject.stayNotification
import com.base.filerecoveryrecyclebin.databinding.ActivitySettingBinding
import com.base.filerecoveryrecyclebin.fcm.FCMManager
import com.base.filerecoveryrecyclebin.fcm.FCMManager.subscribeToTopic
import com.base.filerecoveryrecyclebin.fcm.FCMManager.unsubscribeFromTopic
import com.base.filerecoveryrecyclebin.fcm.NotificationUtil
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.ConfigHelper
import com.base.filerecoveryrecyclebin.service.StayJobService
import com.base.filerecoveryrecyclebin.service.StayJobService.Companion.startJob
import com.base.filerecoveryrecyclebin.utils.AppPreferences
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.view.RateStarPop.showRateStarPopDialog

class SettingActivity : BaseActivity<ActivitySettingBinding>() {

    override val binding: ActivitySettingBinding by lazy {
        ActivitySettingBinding.inflate(layoutInflater)
    }

    override fun initView() {
        BarUtils.setStatusBarLightMode(this, true)
        BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
        binding.switchStayNotification.isChecked = stayNotification
        binding.switchFcmNotification.isChecked = fcmNotification
    }

    override fun initListener() {
        onBackPressedDispatcher.addCallback {
           // copyText(this@SettingActivity, AppPreferences.getInstance().getString("token",""))
            finishToMain()
        }
        binding.flBack.setOnClickListener {
            onBackPressedDispatcher.onBackPressed()
        }

//        binding.btnSetGettoken.setOnClickListener{
//            val textToCopy = findViewById<TextView>(R.id.textToCopy)
//// 获取系统剪贴板管理器
//            val clipboard = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
//            // 创建剪贴板数据对象，设置要复制的文本
//            textToCopy.text=FCMManager.getTokenValue()
//            val clip = ClipData.newPlainText("copied_text", FCMManager.getTokenValue().toString())
//            // 将数据设置到剪贴板
//            clipboard.setPrimaryClip(clip)
//
//            // 提示用户文本已复制
//            Toast.makeText(this, "文本已复制", Toast.LENGTH_SHORT).show()
//        }

        binding.switchStayNotification.setOnCheckedChangeListener { buttonView, isChecked ->
            stayNotification = isChecked
            if (isChecked) {
                startJob()
//                startStayNotification()
            } else {
                StayJobService.isCancel = true
//                val serviceIntent = Intent(this, StayNotificationService::class.java)
//                stopService(serviceIntent)
            }
        }
        binding.switchFcmNotification.setOnCheckedChangeListener { buttonView, isChecked ->
            fcmNotification = isChecked
            val topic = "${ConfigHelper.packageName}_push"
            if (isChecked) {
                subscribeToTopic(topic)
            } else {
                unsubscribeFromTopic(topic)
            }
        }

        binding.llPrivacy.setOnClickListener {
            val intent = Intent(
                Intent.ACTION_VIEW,
                Uri.parse(ConfigHelper.privacyPolicy)
            )
            startActivity(intent)
           // NotificationUtil.sendNotification(this, ConstObject.ID_WHEATHER)
        }

        binding.llScore.setOnClickListener {
            showRateStarPopDialog(mustShow = true)
           // NotificationUtil.sendNotification(this, ConstObject.ID_XINGZUO)
        }
//
//        val token = AppPreferences.getInstance().getString("token", "")
//        binding.textToCopy.text = token
//
//// 维护一个索引变量来追踪当前通知
//        var currentNotificationIndex = 0
//
//        binding.btnText.setOnClickListener {
//            // 定义通知ID列表
//            val notificationIds = listOf(
//                ConstObject.ID_JUNK_CLEAN_PUSH,
//                ConstObject.ID_SIMILAR_IMAGE,
//                ConstObject.ID_SCREENSHOT_CLEAN,
//                ConstObject.ID_RECOVERY_PHOTOS,
//                ConstObject.ID_RECOVERY_VIDEOS,
//                ConstObject.ID_RECOVERY_DOCUMENTS,
//                ConstObject.ID_WHATSAPP,
//                ConstObject.ID_APP_PROCESS,
//                ConstObject.ID_APP_MANAGER,
//                ConstObject.ID_BATTERY_INFO,
//                ConstObject.ID_XINGZUO,
//                ConstObject.ID_WHEATHER
//            )
//
//            // 检查是否还有通知可以发送
//            if (currentNotificationIndex < notificationIds.size) {
//                // 获取当前通知ID
//                val notificationId = notificationIds[currentNotificationIndex]
//
//                // 发送通知
//                NotificationUtil.sendNotification(this, notificationId)
//
//                // 更新索引，指向下一个通知
//                currentNotificationIndex++
//            } else {
//                // 所有通知已发送完，显示提示信息
//                Log.d("Notification", "All notifications have been sent.")
//                Toast.makeText(this, "所有通知已发送完！", Toast.LENGTH_SHORT).show()
//
//                // 重置索引，从头开始发送通知
//                currentNotificationIndex = 0
//            }
//        }



    }
    fun copyText(context: Context, text: String?) {
        val clipboardManager: ClipboardManager =
            context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
        val clip = ClipData.newPlainText("simple text", text)
        clipboardManager.setPrimaryClip(clip)
    }
}