Эх сурвалжийг харах

优化蓝牙连接准备注册判断,防止有连接的设备但是没有token的情况

Frankensteinly 8 сар өмнө
parent
commit
33343c2903

+ 13 - 2
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -468,17 +468,28 @@ object BusinessManager {
     fun registerConnectListener(mac: String, callBack: ((Boolean, BleBean?) -> Unit)? = null) {
         LogUtil.i("registerConnectListener : $mac")
         if (connectListeners.any { it.mac == mac }) {
+            LogUtil.w("Ignore mac : $mac 已存在")
             return
         }
         if (deviceList.none { it.bleDevice.mac == mac }) {
             connectListeners.add(ConnectListener(mac, callBack))
-            if (connectListeners.size == 1) {
+            if (connectListeners.size > 0) {
                 Executor.runOnMain {
                     connectKey()
                 }
             }
         } else {
-            callBack?.invoke(true, deviceList.find { it.bleDevice.mac == mac })
+            val bean = deviceList.find { it.bleDevice.mac == mac }
+            if (bean?.token == null) {
+                connectListeners.add(ConnectListener(mac, callBack))
+                if (connectListeners.size > 0) {
+                    Executor.runOnMain {
+                        connectKey()
+                    }
+                }
+                return
+            }
+            callBack?.invoke(true, bean)
         }
     }