Browse Source

优化门灯控制

weizhengliang 2 years ago
parent
commit
d22fa1effc

+ 14 - 10
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -121,6 +121,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     private var clickSosTime : Long = 0
     private var clickVersionTime : Long = 0
     private var clickCount = 1
+    private var callNums = 0
 
     private var serverSuccess = false
     private var cancelRestart = false
@@ -600,6 +601,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 showMessage(R.string.net_error)
             }
 
+            callNums == 0
+            DoorLightHelper.resetDoorLight()
+
             SpeechUtil.getInstance().stopSpeak()
             bedCalls.clear()
             view_flipper.removeAllViews()
@@ -1309,27 +1313,24 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
     private fun callControl(tcpModel: TcpModel) {
         if (tcpModel.action == TcpAction.SideAction.CALL) {
+            callNums++
             SerialPortHelper.setDoorLight(1, "200")
-            //显示分机呼叫信息
-            //val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-            //updateBedCall(interactionVO, true)
         } else if (tcpModel.action == TcpAction.SideAction.SOS_CALL) {
             SerialPortHelper.setDoorLight(1, "200")
             Constant.sosOn = true
         } else if (tcpModel.action == TcpAction.SideAction.ACCEPT || tcpModel.action == TcpAction.SideAction.CANCEL) {
-            //val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-            //updateBedCall(interactionVO, false)
+            callNums--
+            if (callNums < 0) {
+                callNums = 0
+            }
 
             //如果当前还有其他床位呼叫或者是紧急呼叫则不重置门灯
-            if (bedCalls.size == 0 && !Constant.sosOn) {
+            if (callNums == 0 && !Constant.sosOn) {
                 DoorLightHelper.resetDoorLight()
             }
         } else if (tcpModel.action == TcpAction.SideAction.SOS_CANCEL) {
-            DoorLightHelper.resetDoorLight()
             Constant.sosOn = false
-
-            //如果当前还有其他床位呼叫或者是紧急呼叫则不重置门灯
-            if (bedCalls.size == 0) {
+            if (callNums == 0) {
                 DoorLightHelper.resetDoorLight()
             }
         }
@@ -1442,6 +1443,9 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 runOnUiThread {
                     showCalls()
                 }
+            } else {
+                callNums == 0
+                DoorLightHelper.resetDoorLight()
             }
         } catch (ex: Exception) {
             ex.printStackTrace()