package com.example.watch.ui.activity

import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothDevice
import android.bluetooth.BluetoothManager
import android.bluetooth.le.BluetoothLeScanner
import android.bluetooth.le.ScanCallback
import android.bluetooth.le.ScanResult
import android.content.Context
import android.content.Intent
import android.os.Handler
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat.startActivityForResult
import com.example.watch.R

class ble {
    //    声明变量
//    private val REQUEST_BLUETOOTH_TURN_ON = 1
//    private val BLE_SCAN_PERIOD: Long = 10000
//    private lateinit var bleAdapter: BluetoothAdapter
//    private lateinit var bleManager: BluetoothManager
//    private lateinit var bleScanner: BluetoothLeScanner
//    private lateinit var bleScanCallback: BleScanCallback
//    private var bleScanResults = mutableMapOf<String?, BluetoothDevice?>()
//    private lateinit var bleScanHandler: Handler
//
//    val connectBtn = findViewById<Button>(R.id.CONNECT)
//
//    connectBtn.setOnClickListener {
//        bleScanHandler = Handler()
//        //蓝牙管理，这是系统服务可以通过getSystemService(BLUETOOTH_SERVICE)的方法获取实例
//        bleManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
//        //通过蓝牙管理实例获取适配器，然后通过扫描方法（scan）获取设备(device)
//        bleAdapter = bleManager.adapter
//        if (!bleAdapter.isEnabled) {
//            val bluetoothTurnOn = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
//            startActivityForResult(bluetoothTurnOn, REQUEST_BLUETOOTH_TURN_ON)
//        } else {
//            bleStartScan.run()
//        }
//    }
//
//    //start scan
//    private val bleStartScan = Runnable {
//        bleScanner = bleAdapter.bluetoothLeScanner
//        bleScanCallback = BleScanCallback(bleScanResults)
//        bleScanCallback.setContext(this.applicationContext)
//        bleScanner.startScan(bleScanCallback)
//        Toast.makeText(this.applicationContext, "蓝牙BLE扫描开始", Toast.LENGTH_SHORT).show()
//        bleScanHandler.postDelayed(bleStopScan, this.BLE_SCAN_PERIOD)
//    }
//
//    private val bleStopScan = Runnable {
//        if (bleScanner != null) {
//            bleScanner.stopScan(bleScanCallback)
//        }
//        Toast.makeText(this.applicationContext, "蓝牙BLE扫描结束", Toast.LENGTH_SHORT).show()
//    }
//
//    class BleScanCallback(resultMap: MutableMap<String?, BluetoothDevice?>) : ScanCallback() {
//        var resultOfScan = resultMap
//        private var context: Context? = null
//
//        fun setContext(context: Context) {
//            this.context = context
//        }
//
//        override fun onScanResult(callbackType: Int, result: ScanResult?) {
//            addScanResult(result)
//        }
//
//        override fun onBatchScanResults(results: MutableList<ScanResult>?) {
//            results?.forEach { result -> addScanResult(result) }
//        }
//
//        override fun onScanFailed(errorCode: Int) {
//            Toast.makeText(this.context, "蓝牙BLE扫描失败" + "Error Code: " + errorCode, Toast.LENGTH_SHORT).show()
//        }
//
//        fun addScanResult(scanResult: ScanResult?) {
//            val bleDevice = scanResult?.device
//            val deviceAddress = bleDevice?.address
//            if (!resultOfScan.contains(deviceAddress)) {
//                resultOfScan.put(deviceAddress, bleDevice)
//                if (this.context != null) {
//                    Toast.makeText(this.context, bleDevice?.name + ": " + bleDevice?.address, Toast.LENGTH_SHORT).show()
//                }
//            }
//        }
//    }
//
//    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
//        super.onActivityResult(requestCode, resultCode, data)
//        when (requestCode) {
//            REQUEST_BLUETOOTH_TURN_ON -> {
//                when (resultCode) {
//                    AppCompatActivity.RESULT_OK -> {
//                        Toast.makeText(this.applicationContext, "蓝牙开启成功", Toast.LENGTH_SHORT).show()
//                        bleStartScan.run()
//                    }
//                    AppCompatActivity.RESULT_CANCELED -> {
//                        Toast.makeText(this.applicationContext, "蓝牙开启失败", Toast.LENGTH_SHORT).show()
//                    }
//                }
//            }
//        }
//    }

}