浏览代码

退出时,关所有有设备的卡扣,不拿的设备下次重新分配

Frankensteinly 8 月之前
父节点
当前提交
b24e2bb1c6
共有 1 个文件被更改,包括 21 次插入0 次删除
  1. 21 0
      app/src/main/java/com/grkj/iscs/view/fragment/SettingFragment.kt

+ 21 - 0
app/src/main/java/com/grkj/iscs/view/fragment/SettingFragment.kt

@@ -1,7 +1,14 @@
 package com.grkj.iscs.view.fragment
 
 import android.content.Intent
+import com.grkj.iscs.BusinessManager
 import com.grkj.iscs.databinding.FragmentSettingBinding
+import com.grkj.iscs.modbus.ModBusController.controlKeyBuckle
+import com.grkj.iscs.modbus.ModBusController.controlLockBuckle
+import com.grkj.iscs.modbus.ModBusController.dockList
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_KEY
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_LOCK
+import com.grkj.iscs.model.DeviceConst.DOCK_TYPE_PORTABLE
 import com.grkj.iscs.util.NetApi
 import com.grkj.iscs.view.activity.LoginActivity
 import com.grkj.iscs.view.base.BaseFragment
@@ -17,6 +24,20 @@ class SettingFragment : BaseFragment<FragmentSettingBinding>() {
     override fun initView() {
         mBinding?.cbLogout?.setOnClickListener {
             NetApi.logout()
+            // 关所有有设备的卡扣
+            dockList.filter { it.type == DOCK_TYPE_LOCK || it.type == DOCK_TYPE_PORTABLE }.forEach { dockBean ->
+                val hasLockIdxList = dockBean.getLockList().filter { it.isExist }.map { it.idx } as MutableList<Int>
+                controlLockBuckle(false, dockBean.addr, hasLockIdxList)
+            }
+            dockList.filter { it.type == DOCK_TYPE_KEY || it.type == DOCK_TYPE_PORTABLE }.forEach { dockBean ->
+                dockBean.getKeyList().forEach { key ->
+                    if (key.isExist) {
+                        controlKeyBuckle(false, key.isLeft, dockBean.addr)
+                    }
+                }
+            }
+            // 不拿的设备不归你,下次登录重新按需分配
+            BusinessManager.mDeviceTakeList.clear()
             startActivity(Intent(context, LoginActivity::class.java))
         }
     }