package com.base.scanqrclear.helper

import android.os.Build
import com.base.scanqrclear.BuildConfig
import com.base.scanqrclear.GlobalConfig
import com.base.scanqrclear.helper.ReportUtils.doPost
import com.base.scanqrclear.utils.AppPreferences
import org.json.JSONException
import org.json.JSONObject
import java.util.TimeZone

object EventUtils {
    private val TAG = "EventUtils"

    var ifAgreePrivacy = true
        get() {
            return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
        }
        set(value) {
            field = value
            AppPreferences.getInstance().put("ifAgreePrivacy", value, true)
        }

    fun event(
        key: String,
        value: String? = null,
        ext: JSONObject? = null,
    ) {

        if (!ifAgreePrivacy) {
            return
        }
        Thread {
            var paramJson: String? = ""
            try {
                val pkg = GlobalConfig.PACKAGE_NAME
                val s = JSONObject()
                    .put("action", key)
                    .put("value", value)
                    .put("ext", ext)
                val s2 = JSONObject()
                    .put("${pkg}_3", AppPreferences.getInstance().getString("Equipment", ""))
                    .put("${pkg}_4", AppPreferences.getInstance().getString("Manufacturer", ""))
                    .put("${pkg}_5", Build.VERSION.SDK_INT)
                    .put("${pkg}_9", AppPreferences.getInstance().getString("uuid", ""))
                    .put("${pkg}_10", AppPreferences.getInstance().getString("gid", ""))
                    .put("${pkg}_13", "android")
                    .put("${pkg}_15", "google")
                    .put("${pkg}_14", BuildConfig.VERSION_CODE)
                    .put("${pkg}_8", BuildConfig.VERSION_NAME)
                    .put("${pkg}_24", BuildConfig.BUILD_TYPE)
                    .put("${pkg}_34", TimeZone.getDefault().getID())

                val data = JSONObject()
                    .put("data", s)
                    .put("bp", s2)
                    .toString()
//                LogEx.logDebug(TAG, "key=$key data=$data")
//                LogEx.logDebug(TAG, "uuid=${AppPreferences.getInstance().getString("uuid", "")}")
//                LogEx.logDebug(TAG, "gid=${AppPreferences.getInstance().getString("gid", "")}")
                paramJson = AESHelper.encrypt(data)
            } catch (e: JSONException) {
                paramJson = ""
            }
//            LogEx.logDebug(TAG, "key=$key url=$url")

            doPost(
                url,
                HashMap(),
                paramJson
            )
        }.start()
    }

    private val url by lazy {
        val pkg = GlobalConfig.PACKAGE_NAME
        val url = StringBuilder(
            "${GlobalConfig.URL_EVENT}/${
                pkg.filter { it.isLowerCase() }.substring(4, 9)
            }sp"
        )
        url.append("?pkg=$pkg")
        url.toString()
    }

}