Explorar o código

refactor(更新) :
- 增加硬件录入中提示,防止重复点击
- 增加硬件录入中相关的国际化字符串

周文健 hai 2 meses
pai
achega
b2f52e4737

+ 10 - 0
app/src/main/java/com/grkj/iscs_mars/view/viewmodel/DeviceRegistrationKeyAndLockViewModel.kt

@@ -7,6 +7,7 @@ import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.grkj.iscs_mars.BusinessManager
 import com.grkj.iscs_mars.MyApplication
+import com.grkj.iscs_mars.R
 import com.grkj.iscs_mars.ble.BleConnectionManager
 import com.grkj.iscs_mars.ble.BleSendDispatcher
 import com.grkj.iscs_mars.modbus.DockBean
@@ -14,8 +15,10 @@ import com.grkj.iscs_mars.modbus.ModBusController
 import com.grkj.iscs_mars.model.DeviceConst
 import com.grkj.iscs_mars.model.bo.DockStatusBO
 import com.grkj.iscs_mars.model.bo.LoginUserBO
+import com.grkj.iscs_mars.util.CommonUtils
 import com.grkj.iscs_mars.util.NetApi
 import com.grkj.iscs_mars.util.SPUtils
+import com.grkj.iscs_mars.util.ToastUtils
 import com.grkj.iscs_mars.util.log.LogUtil
 import com.grkj.iscs_mars.view.base.BaseViewModel
 import com.grkj.iscs_mars.view.fragment.DockTestFragment
@@ -34,6 +37,7 @@ class DeviceRegistrationKeyAndLockViewModel : BaseViewModel() {
     var isDestroy: Boolean = false
     var newHardwareKeySize: Int = 0
     var newHardwareLockSize: Int = 0
+    private var isInputting: Boolean = false
     private val newHardwareKeyBean: MutableMap<Byte, MutableList<DockBean.KeyBean>> = mutableMapOf()
     private val alreadyUsedMac: MutableList<String> = mutableListOf()
 
@@ -241,6 +245,11 @@ class DeviceRegistrationKeyAndLockViewModel : BaseViewModel() {
      */
     fun deviceInputData(dockData: MutableList<DockStatusBO>): LiveData<Triple<Boolean, Int, Int>> {
         return liveData(Dispatchers.IO) {
+            if (isInputting) {
+                ToastUtils.tip(CommonUtils.getStr(R.string.device_inputting))
+                return@liveData
+            }
+            isInputting = true
             val dockList = dockData.map { it.dockList }.flatten()
             val deviceList =
                 ModBusController.dockList.filter { it.addr in dockList.map { it.address } }
@@ -263,6 +272,7 @@ class DeviceRegistrationKeyAndLockViewModel : BaseViewModel() {
                         keyDevice.newHardware = false
                     }
                 }
+            isInputting = false
             emit(
                 Triple(
                     true,

+ 1 - 0
app/src/main/res/values-en/strings.xml

@@ -411,4 +411,5 @@
     <string name="hide_point_list">Hide</string>
     <string name="switch_id">ID:%1$s</string>
     <string name="switch_status_tv">Switch Status:</string>
+    <string name="device_inputting">Hardware inputting……</string>
 </resources>

+ 1 - 0
app/src/main/res/values-zh/strings.xml

@@ -411,4 +411,5 @@
     <string name="hide_point_list">隐藏</string>
     <string name="switch_id">编号:%1$s</string>
     <string name="switch_status_tv">开关状态:</string>
+    <string name="device_inputting">硬件录入中……</string>
 </resources>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -411,4 +411,5 @@
     <string name="hide_point_list">隐藏</string>
     <string name="switch_id">编号:%1$s</string>
     <string name="switch_status_tv">开关状态:</string>
+    <string name="device_inputting">硬件录入中……</string>
 </resources>