|
@@ -55,12 +55,12 @@ import pub.devrel.easypermissions.AfterPermissionGranted
|
|
|
*/
|
|
*/
|
|
|
object BusinessManager {
|
|
object BusinessManager {
|
|
|
|
|
|
|
|
- // 已连接的蓝牙钥匙集合(TODO 现在的和界面共用,是所有的,要改掉)
|
|
|
|
|
|
|
+ // 已连接的蓝牙钥匙集合
|
|
|
var deviceList: MutableList<BleBean> = mutableListOf()
|
|
var deviceList: MutableList<BleBean> = mutableListOf()
|
|
|
// TODO 待连接的钥匙Mac集合
|
|
// TODO 待连接的钥匙Mac集合
|
|
|
val notConnectedList: MutableList<String> = mutableListOf()
|
|
val notConnectedList: MutableList<String> = mutableListOf()
|
|
|
// TODO 是否正在进行准备流程
|
|
// TODO 是否正在进行准备流程
|
|
|
- var isPreparing: Boolean = false
|
|
|
|
|
|
|
+ private var isPreparing: Boolean = false
|
|
|
|
|
|
|
|
// TODO 归还设备是否需要登录
|
|
// TODO 归还设备是否需要登录
|
|
|
var NEED_AUTH = true
|
|
var NEED_AUTH = true
|
|
@@ -353,10 +353,17 @@ object BusinessManager {
|
|
|
val mac = notConnectedList[0]
|
|
val mac = notConnectedList[0]
|
|
|
prepareBle(mac, ActivityUtils.currentActivity() as BaseActivity<*>, null) { isDone, bleBean ->
|
|
prepareBle(mac, ActivityUtils.currentActivity() as BaseActivity<*>, null) { isDone, bleBean ->
|
|
|
Executor.runOnMain {
|
|
Executor.runOnMain {
|
|
|
|
|
+ isPreparing = false
|
|
|
|
|
+ if (!isDone) {
|
|
|
|
|
+ // 移到末尾,防止循环影响
|
|
|
|
|
+ notConnectedList.remove(mac)
|
|
|
|
|
+ notConnectedList.add(mac)
|
|
|
|
|
+ connectKey()
|
|
|
|
|
+ return@runOnMain
|
|
|
|
|
+ }
|
|
|
if (deviceList.any { it.bleDevice.mac == mac }) {
|
|
if (deviceList.any { it.bleDevice.mac == mac }) {
|
|
|
notConnectedList.remove(mac)
|
|
notConnectedList.remove(mac)
|
|
|
}
|
|
}
|
|
|
- isPreparing = false
|
|
|
|
|
if (notConnectedList.isNotEmpty()) {
|
|
if (notConnectedList.isNotEmpty()) {
|
|
|
connectKey()
|
|
connectKey()
|
|
|
}
|
|
}
|
|
@@ -393,41 +400,19 @@ object BusinessManager {
|
|
|
|
|
|
|
|
override fun onScanStarted(success: Boolean) {
|
|
override fun onScanStarted(success: Boolean) {
|
|
|
LogUtil.i("onScanStarted:${success}")
|
|
LogUtil.i("onScanStarted:${success}")
|
|
|
-// deviceList.clear()
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onScanning(bleDevice: BleDevice?) {
|
|
override fun onScanning(bleDevice: BleDevice?) {
|
|
|
bleDevice?.let {
|
|
bleDevice?.let {
|
|
|
LogUtil.i("onScanning:${it.mac}")
|
|
LogUtil.i("onScanning:${it.mac}")
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
|
|
|
|
- if (!it.name.isNullOrBlank()) {
|
|
|
|
|
- deviceList.add(BleBean(it))
|
|
|
|
|
- if (notConnectedList.any { itMac -> itMac == bleDevice.mac }) {
|
|
|
|
|
- doConnect(it, loadingCallBack, prepareDoneCallBack)
|
|
|
|
|
- } else {}
|
|
|
|
|
- } else {}
|
|
|
|
|
- } else {
|
|
|
|
|
- deviceList.add(BleBean(it))
|
|
|
|
|
|
|
+ if (notConnectedList.any { itMac -> itMac == bleDevice.mac }) {
|
|
|
|
|
+ doConnect(it, loadingCallBack, prepareDoneCallBack)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
|
|
override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
|
|
|
- // if (deviceList.isEmpty() == true) {
|
|
|
|
|
-// ToastUtils.tip(R.string.ble_no_device_found)
|
|
|
|
|
-// loadingCallBack?.invoke(false, null, false)
|
|
|
|
|
-// return
|
|
|
|
|
-// }
|
|
|
|
|
-// getBleDeviceByMac(mac)?.bleDevice?.let {
|
|
|
|
|
-// doConnect(it, loadingCallBack, prepareDoneCallBack)
|
|
|
|
|
-// }
|
|
|
|
|
-// scanResultList?.find { it.mac == mac }?.let {
|
|
|
|
|
loadingCallBack?.invoke(false, null, null)
|
|
loadingCallBack?.invoke(false, null, null)
|
|
|
- if (deviceList.isEmpty()) {
|
|
|
|
|
- LogUtil.w("No ble device found")
|
|
|
|
|
- loadingCallBack?.invoke(false, null, false)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
@@ -566,7 +551,7 @@ object BusinessManager {
|
|
|
/******************************************蓝牙通用准备结束******************************************/
|
|
/******************************************蓝牙通用准备结束******************************************/
|
|
|
|
|
|
|
|
fun getBleDeviceByMac(mac: String?): BleBean? {
|
|
fun getBleDeviceByMac(mac: String?): BleBean? {
|
|
|
- return deviceList.find { it.bleDevice.mac == mac && BleManager.getInstance().isConnected(it.bleDevice) }
|
|
|
|
|
|
|
+ return deviceList.find { it.bleDevice.mac == mac }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|