Ver código fonte

refactor(更新) :
- 退出登录的时候把没有钥匙和挂锁的卡扣打开

周文健 5 meses atrás
pai
commit
6811b9ece5

+ 5 - 0
app/src/main/java/com/grkj/iscs/BusinessManager.kt

@@ -1879,13 +1879,18 @@ object BusinessManager {
             .forEach { dockBean ->
                 val hasLockIdxList =
                     dockBean.getLockList().filter { it.isExist }.map { it.idx } as MutableList<Int>
+                val noLockIdxList =
+                    dockBean.getLockList().filter { !it.isExist }.map { it.idx } as MutableList<Int>
                 ModBusController.controlLockBuckle(false, dockBean.addr, hasLockIdxList)
+                ModBusController.controlLockBuckle(true, dockBean.addr, noLockIdxList)
             }
         dockList.filter { it.type == DOCK_TYPE_KEY || it.type == DOCK_TYPE_PORTABLE }
             .forEach { dockBean ->
                 dockBean.getKeyList().forEach { key ->
                     if (key.isExist) {
                         ModBusController.controlKeyBuckle(false, key.isLeft, dockBean.addr)
+                    } else {
+                        ModBusController.controlKeyBuckle(true, key.isLeft, dockBean.addr)
                     }
                 }
             }

+ 3 - 1
app/src/main/java/com/grkj/iscs/ble/BleConnectionManager.kt

@@ -65,7 +65,9 @@ object BleConnectionManager {
     fun registerConnectListener(mac: String, callBack: ((Boolean, BleBean?) -> Unit)? = null) {
         LogUtil.i("registerConnectListener : $mac")
         // 已连接且已获取 token
-        deviceList.find { it.bleDevice.mac == mac && it.token != null }?.let { bean ->
+        deviceList.find {
+            it.bleDevice.mac == mac && BleManager.getInstance().isConnected(mac) && it.token != null
+        }?.let { bean ->
             callBack?.invoke(true, bean)
             return
         }