Pārlūkot izejas kodu

自定义紧急按钮名称呼叫优化

weizhengliang 1 mēnesi atpakaļ
vecāks
revīzija
2d750436f0

+ 64 - 45
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -67,6 +67,7 @@ import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.*
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.udp.ServerInfoUtil
@@ -2350,35 +2351,46 @@ class NurseHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                             sosName = interactionVO.fromFrameFullName.substringBefore("-")
                         }
 
-                        //如果分机绑定了紧急按钮则用紧急按钮名称
-                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                            || interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                        ) {
+                        //如果分机绑定了紧急按钮则加上紧急按钮名称
+                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                            //数字紧急按钮按设备别名显示
                             if (Locale.CHINESE.getLanguage().equals(language)) {
                                 sosName = Util.appendSpace(interactionVO.fromDeviceName)
                             } else {
                                 sosName = interactionVO.fromDeviceName
                             }
-                        }
 
-                        //语音
-                        if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_OFF) {
-                            RingPlayHelper.playRingTone(activity, R.raw.sos2, true)
-                        } else {
-                            if (SettingConfig.getSosCallNameOn(activity)) {
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().addSpeech(text, true)
-                            } else if (!Strings.isNullOrEmpty(interactionVO.data)) {
-                                var speakText = ""
-                                if (Locale.CHINESE.getLanguage().equals(language)) {
-                                    speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
-                                } else {
-                                    speakText = interactionVO.data.replace("-", ";")
-                                }
-                                SpeechUtil.getInstance().addSpeech(speakText,true)
                             } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
+                            }
+                        } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                            && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
+                            //模拟紧急按钮注册在床位则按床位名称显示
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().addSpeech(text, true)
+                            } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
+                            }
+                        } else {
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
+                                if (!Strings.isNullOrEmpty(interactionVO.data)) {
+                                    var speakText = ""
+                                    if (Locale.CHINESE.getLanguage().equals(language)) {
+                                        speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
+                                    } else {
+                                        speakText = interactionVO.data.replace("-", ";")
+                                    }
+                                    SpeechUtil.getInstance().addSpeech(speakText, true)
+                                } else {
+                                    val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                    SpeechUtil.getInstance().addSpeech(text, true)
+                                }
+                            } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
                             }
                         }
 
@@ -2399,31 +2411,34 @@ class NurseHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                             } else {
                                 sosName = interactionVO.fromFrameFullName.substringBefore("-")
                             }
+
                             //如果分机绑定了紧急按钮则加上紧急按钮名称
-                            if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                                || interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                            ) {
+                            if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
                                 if (Locale.CHINESE.getLanguage().equals(language)) {
                                     sosName = Util.appendSpace(interactionVO.fromDeviceName)
                                 } else {
                                     sosName = interactionVO.fromDeviceName
                                 }
-                            }
 
-                            if (SettingConfig.getSosCallNameOn(activity)) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().removeSpeak(text)
-                            } else if (!Strings.isNullOrEmpty(interactionVO.data)) {
-                                var speakText = ""
-                                if (Locale.CHINESE.getLanguage().equals(language)) {
-                                    speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
-                                } else {
-                                    speakText = interactionVO.data.replace("-", ";")
-                                }
-                                SpeechUtil.getInstance().removeSpeak(speakText)
-                            } else {
+                            } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                                && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().removeSpeak(text)
+                            } else {
+                                if (!Strings.isNullOrEmpty(interactionVO.data)) {
+                                    var speakText = ""
+                                    if (Locale.CHINESE.getLanguage().equals(language)) {
+                                        speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
+                                    } else {
+                                        speakText = interactionVO.data.replace("-", ";")
+                                    }
+                                    SpeechUtil.getInstance().removeSpeak(speakText)
+                                } else {
+                                    val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                    SpeechUtil.getInstance().removeSpeak(text)
+                                }
                             }
                         }
 
@@ -2456,30 +2471,34 @@ class NurseHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                                         } else {
                                             sosName = it.interactionVO.fromFrameFullName.substringBefore("-")
                                         }
+
                                         //如果分机绑定了紧急按钮则加上紧急按钮名称
-                                        if (it.interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                                            || it.interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()) {
+                                        if (it.interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
                                             if (Locale.CHINESE.getLanguage().equals(language)) {
                                                 sosName = Util.appendSpace(it.interactionVO.fromDeviceName)
                                             } else {
                                                 sosName = it.interactionVO.fromDeviceName
                                             }
-                                        }
 
-                                        if (SettingConfig.getSosCallNameOn(activity)) {
                                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                             SpeechUtil.getInstance().removeSpeak(text)
-                                        } else if (!Strings.isNullOrEmpty(it.interactionVO.data)) {
-                                            var speakText = ""
-                                            if (Locale.CHINESE.getLanguage().equals(language)) {
-                                                speakText = Util.appendSpace(it.interactionVO.data.replace("-", ";"))
-                                            } else {
-                                                speakText = it.interactionVO.data.replace("-", ";")
-                                            }
-                                            SpeechUtil.getInstance().removeSpeak(speakText)
-                                        } else {
+                                        } else if (it.interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                                            && it.interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
                                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                             SpeechUtil.getInstance().removeSpeak(text)
+                                        } else {
+                                            if (!Strings.isNullOrEmpty(it.interactionVO.data)) {
+                                                var speakText = ""
+                                                if (Locale.CHINESE.getLanguage().equals(language)) {
+                                                    speakText = Util.appendSpace(it.interactionVO.data.replace("-", ";"))
+                                                } else {
+                                                    speakText = it.interactionVO.data.replace("-", ";")
+                                                }
+                                                SpeechUtil.getInstance().removeSpeak(speakText)
+                                            } else {
+                                                val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                                SpeechUtil.getInstance().removeSpeak(text)
+                                            }
                                         }
                                     }
 

+ 28 - 24
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/adapter/CallRecordsItemAdapter.kt

@@ -29,6 +29,7 @@ import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.EventStatusEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
 import org.greenrobot.eventbus.EventBus
@@ -282,22 +283,23 @@ class CallRecordsItemAdapter(val data:ArrayList<InteractionVO>) : BaseDelegateAd
                     if (itemData.fromFrameFullName != null) {
                         roomNo = itemData.fromFrameFullName.substringBefore("-")
                     }
-                    //如果分机绑定了紧急按钮则加上紧急按钮名称
-                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                        || itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                    ) {
-                        roomNo = itemData.fromDeviceName
-                    }
 
-                    if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                        binding.sickbedTv.text = roomNo
+                    //如果分机绑定了紧急按钮则加上紧急按钮名称
+                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                        binding.sickbedTv.text = itemData.fromDeviceName
                         binding.nameTv.setText(R.string.call_sos)
-                    } else if (!Strings.isNullOrEmpty(itemData.data)) {
-                        binding.sickbedTv.text = itemData.fromFrameFullName
-                        binding.nameTv.text = itemData.data
-                    } else {
+                    } else if (itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                        && itemData.fromFrameType == FrameTypeEnum.BED.value()) {
                         binding.sickbedTv.text = roomNo
                         binding.nameTv.setText(R.string.call_sos)
+                    } else {
+                        if (!Strings.isNullOrEmpty(itemData.data)) {
+                            binding.sickbedTv.text = itemData.fromFrameFullName
+                            binding.nameTv.text = itemData.data
+                        } else {
+                            binding.sickbedTv.text = roomNo
+                            binding.nameTv.setText(R.string.call_sos)
+                        }
                     }
 
                     binding.callStatusImagev.visibility = View.GONE
@@ -308,23 +310,25 @@ class CallRecordsItemAdapter(val data:ArrayList<InteractionVO>) : BaseDelegateAd
                     if (itemData.fromFrameFullName != null) {
                         roomNo = itemData.fromFrameFullName.substringBefore("-")
                     }
-                    //如果分机绑定了紧急按钮则加上紧急按钮名称
-                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                        || itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                    ) {
-                        roomNo = itemData.fromDeviceName
-                    }
 
-                    if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                        binding.sickbedTv.text = roomNo
+                    //如果分机绑定了紧急按钮则加上紧急按钮名称
+                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                        binding.sickbedTv.text = itemData.fromDeviceName
                         binding.nameTv.setText(R.string.call_sos)
-                    } else if (!Strings.isNullOrEmpty(itemData.data)) {
-                        binding.sickbedTv.text = itemData.fromFrameFullName
-                        binding.nameTv.text = itemData.data
-                    } else {
+                    } else if (itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                        && itemData.fromFrameType == FrameTypeEnum.BED.value()) {
                         binding.sickbedTv.text = roomNo
                         binding.nameTv.setText(R.string.call_sos)
+                    } else {
+                        if (!Strings.isNullOrEmpty(itemData.data)) {
+                            binding.sickbedTv.text = itemData.fromFrameFullName
+                            binding.nameTv.text = itemData.data
+                        } else {
+                            binding.sickbedTv.text = roomNo
+                            binding.nameTv.setText(R.string.call_sos)
+                        }
                     }
+
                     binding.callStatusImagev.visibility = View.GONE
                     binding.tabImagev.setImageResource(R.drawable.ic_sos)
                     binding.callListReply.visibility = View.GONE

+ 18 - 22
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/util/LedHelper.java

@@ -10,6 +10,7 @@ import com.wdkl.ncs.android.middleware.common.Constants;
 import com.wdkl.ncs.android.component.nursehome.led.LedManagerUtils;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum;
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType;
 import com.wdkl.ncs.android.middleware.utils.CommonUtils;
 
@@ -61,30 +62,25 @@ public class LedHelper {
                     LedManagerUtils.getInstance().updateProgram(call, 2);
                 }
             }
-        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                || interactionVO.getFromDeviceType() == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()) {
-            //紧急呼叫
-            String frameName = CommonUtils.subStringBefore(interactionVO.getFromFrameFullName(), "-");
-            if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                frameName = interactionVO.getFromDeviceName();
+        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+            //紧急按钮名称显示
+            String frameName = interactionVO.getFromDeviceName();
+            if (isAdd) {
+                //新增led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
+            } else {
+                //删除led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
             }
-
-            if (!Strings.isNullOrEmpty(interactionVO.getData())) {
-                if (isAdd) {
-                    //新增led节目
-                    LedManagerUtils.getInstance().updateProgram(interactionVO.getData(), 1);
-                } else {
-                    //删除led节目
-                    LedManagerUtils.getInstance().updateProgram(interactionVO.getData(), 2);
-                }
+        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                && interactionVO.getFromFrameType() == FrameTypeEnum.BED.value()) {
+            String frameName = interactionVO.getFromFrameFullName().replace("-", "");
+            if (isAdd) {
+                //新增led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
             } else {
-                if (isAdd) {
-                    //新增led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
-                } else {
-                    //删除led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
-                }
+                //删除led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
             }
         } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.ALARM_BUTTON_SOS.value()
                 || interactionVO.getFromDeviceType() == DeviceTypeEnum.ALARM_433BUTTON.value()) {

+ 104 - 84
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/window/IncidentWindow.kt

@@ -38,6 +38,7 @@ import com.wdkl.ncs.android.middleware.tcp.channel.*
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
@@ -424,95 +425,114 @@ class IncidentWindow(var activity: Activity) {
                         binding.handleImagev.setBackgroundResource(R.drawable.sp_event_unhandled_bg)
 
                         //如果分机绑定了紧急按钮则加上紧急按钮名称
-                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                            || interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                        ) {
+                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
                             room = interactionVO.fromDeviceName
-                        }
-
-                        //紧急呼叫显示data中数据
-                        if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, room)
                             binding.incidentTv.text = text
-                        } else if (interactionVO.data != null) {
-                            binding.incidentTv.text = interactionVO.data
+                        } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                            && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
+                            val text = BaseApplication.appContext.getString(R.string.sos_call_speech, room)
+                            binding.incidentTv.text = text
                         } else {
-                            if (tcpModel.action == TcpAction.SOSAction.CALL || tcpModel.action == TcpAction.SOSAction.ROOM_CALL) {
-                                val text = BaseApplication.appContext.getString(
-                                    R.string.sos_call_speech,
-                                    room
-                                )
-                                binding.incidentTv.text = text
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEST) {
-                                //测试报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_TEST.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INTRUSION) {
-                                //入侵报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_INTRUSION.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS) {
-                                //8小时无人报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS) {
-                                //12小时报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS) {
-                                //24小时无人报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFRARED_NO_TRIGGER) {
-                                //无人报警
-                                var str = ""
-                                if (interactionVO.data != null) {
-                                    str = interactionVO.data as String
-                                }
-                                binding.incidentTv.text = str + BaseApplication.appContext.getString(R.string.none_warning)
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL_RADAR) {
-                                //雷达跌倒报警
-                                binding.incidentTv.text = room + StringUtil.getResString(R.string.str_fall_alarm)
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFUSION_RADAR) {
-                                //输液报警
-                                if (interactionVO.data != null) {
-                                    val str = interactionVO.data as String
-                                    binding.incidentTv.text = str
+                            //紧急呼叫显示data中数据
+                            if (interactionVO.data != null) {
+                                binding.incidentTv.text = interactionVO.data
+                            } else {
+                                if (tcpModel.action == TcpAction.SOSAction.CALL || tcpModel.action == TcpAction.SOSAction.ROOM_CALL) {
+                                    val text = BaseApplication.appContext.getString(
+                                        R.string.sos_call_speech,
+                                        room
+                                    )
+                                    binding.incidentTv.text = text
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEST) {
+                                    //测试报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_TEST.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INTRUSION) {
+                                    //入侵报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_INTRUSION.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS) {
+                                    //8小时无人报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS) {
+                                    //12小时报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS) {
+                                    //24小时无人报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFRARED_NO_TRIGGER) {
+                                    //无人报警
+                                    var str = ""
+                                    if (interactionVO.data != null) {
+                                        str = interactionVO.data as String
+                                    }
+                                    binding.incidentTv.text =
+                                        str + BaseApplication.appContext.getString(R.string.none_warning)
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL_RADAR) {
+                                    //雷达跌倒报警
+                                    binding.incidentTv.text =
+                                        room + StringUtil.getResString(R.string.str_fall_alarm)
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFUSION_RADAR) {
+                                    //输液报警
+                                    if (interactionVO.data != null) {
+                                        val str = interactionVO.data as String
+                                        binding.incidentTv.text = str
+                                    }
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DISASSEMBLE) {
+                                    //防拆报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_DISASSEMBLE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FAULT) {
+                                    //故障报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_FAULT.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DOOR_LOCK) {
+                                    //门磁报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_DOOR_LOCK.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_RESTRAINT_BAND) {
+                                    //约束带报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_RESTRAINT_BAND.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_SMOKE) {
+                                    //烟感报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_SMOKE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_GAS) {
+                                    //燃气报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_GAS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_WATER_OVERFLOW) {
+                                    //浸水报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_WATER_OVERFLOW.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_LOW_VOLTAGE) {
+                                    //低电压报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_LOW_VOLTAGE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEMPERATURE) {
+                                    //温度报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_TEMPERATURE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL) {
+                                    //跌倒报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_FALL.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_VITAL) {
+                                    //体征报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_VITAL.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.AlARM_BUTTON) {
+                                    //腕表紧急按钮
+                                    binding.incidentTv.text = BaseApplication.appContext.getString(
+                                        R.string.sos_call_speech,
+                                        interactionVO.fromMemberName
+                                    )
                                 }
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DISASSEMBLE) {
-                                //防拆报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_DISASSEMBLE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FAULT) {
-                                //故障报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_FAULT.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DOOR_LOCK) {
-                                //门磁报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_DOOR_LOCK.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_RESTRAINT_BAND) {
-                                //约束带报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_RESTRAINT_BAND.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_SMOKE) {
-                                //烟感报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_SMOKE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_GAS) {
-                                //燃气报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_GAS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_WATER_OVERFLOW) {
-                                //浸水报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_WATER_OVERFLOW.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_LOW_VOLTAGE) {
-                                //低电压报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_LOW_VOLTAGE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEMPERATURE) {
-                                //温度报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_TEMPERATURE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL) {
-                                //跌倒报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_FALL.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_VITAL) {
-                                //体征报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_VITAL.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.AlARM_BUTTON) {
-                                //腕表紧急按钮
-                                binding.incidentTv.text = BaseApplication.appContext.getString(
-                                    R.string.sos_call_speech,
-                                    interactionVO.fromMemberName
-                                )
                             }
                         }
                     }

+ 2 - 1
android_host/src/main/h10_wke_1h/res/layout/fragment_system_settings.xml

@@ -197,7 +197,8 @@
                         android:layout_height="wrap_content"
                         android:layout_marginTop="2dp"
                         android:layout_marginBottom="10dp"
-                        android:orientation="horizontal">
+                        android:orientation="horizontal"
+                        android:visibility="gone">
 
                         <TextView
                             android:layout_width="wrap_content"

+ 64 - 43
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -59,6 +59,7 @@ import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.*
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.CommonUtils
@@ -1692,35 +1693,48 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                         } else {
                             sosName = interactionVO.fromFrameFullName.substringBefore("-")
                         }
+
                         //如果分机绑定了紧急按钮则加上紧急按钮名称
-                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                            || interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                        ) {
+                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                            //数字紧急按钮按设备别名显示
                             if (Locale.CHINESE.getLanguage().equals(language)) {
                                 sosName = Util.appendSpace(interactionVO.fromDeviceName)
                             } else {
                                 sosName = interactionVO.fromDeviceName
                             }
-                        }
-                        //语音
-                        if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
-                            if (SettingConfig.getSosCallNameOn(activity)) {
+
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().addSpeech(text, true)
-                            } else if (!Strings.isNullOrEmpty(interactionVO.data)) {
-                                var speakText = ""
-                                if (Locale.CHINESE.getLanguage().equals(language)) {
-                                    speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
-                                } else {
-                                    speakText = interactionVO.data.replace("-", ";")
-                                }
-                                SpeechUtil.getInstance().addSpeech(speakText, true)
                             } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
+                            }
+                        } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                            && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
+                            //模拟紧急按钮注册在床位则按床位名称显示
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().addSpeech(text, true)
+                            } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
                             }
                         } else {
-                            RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
+                            if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
+                                if (!Strings.isNullOrEmpty(interactionVO.data)) {
+                                    var speakText = ""
+                                    if (Locale.CHINESE.getLanguage().equals(language)) {
+                                        speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
+                                    } else {
+                                        speakText = interactionVO.data.replace("-", ";")
+                                    }
+                                    SpeechUtil.getInstance().addSpeech(speakText, true)
+                                } else {
+                                    val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                    SpeechUtil.getInstance().addSpeech(text, true)
+                                }
+                            } else {
+                                RingPlayHelper.playRingTone(activity, R.raw.sos2, false)
+                            }
                         }
 
                         //是否开启呼叫转移
@@ -1740,31 +1754,34 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                             } else {
                                 sosName = interactionVO.fromFrameFullName.substringBefore("-")
                             }
+
                             //如果分机绑定了紧急按钮则加上紧急按钮名称
-                            if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                                || interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                            ) {
+                            if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
                                 if (Locale.CHINESE.getLanguage().equals(language)) {
                                     sosName = Util.appendSpace(interactionVO.fromDeviceName)
                                 } else {
                                     sosName = interactionVO.fromDeviceName
                                 }
-                            }
 
-                            if (SettingConfig.getSosCallNameOn(activity)) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().removeSpeak(text)
-                            } else if (!Strings.isNullOrEmpty(interactionVO.data)) {
-                                var speakText = ""
-                                if (Locale.CHINESE.getLanguage().equals(language)) {
-                                    speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
-                                } else {
-                                    speakText = interactionVO.data.replace("-", ";")
-                                }
-                                SpeechUtil.getInstance().removeSpeak(speakText)
-                            } else {
+                            } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                                && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
                                 val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                 SpeechUtil.getInstance().removeSpeak(text)
+                            } else {
+                                if (!Strings.isNullOrEmpty(interactionVO.data)) {
+                                    var speakText = ""
+                                    if (Locale.CHINESE.getLanguage().equals(language)) {
+                                        speakText = Util.appendSpace(interactionVO.data.replace("-", ";"))
+                                    } else {
+                                        speakText = interactionVO.data.replace("-", ";")
+                                    }
+                                    SpeechUtil.getInstance().removeSpeak(speakText)
+                                } else {
+                                    val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                    SpeechUtil.getInstance().removeSpeak(text)
+                                }
                             }
                         }
 
@@ -1797,30 +1814,34 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                                         } else {
                                             sosName = it.interactionVO.fromFrameFullName.substringBefore("-")
                                         }
+
                                         //如果分机绑定了紧急按钮则加上紧急按钮名称
-                                        if (it.interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                                            || it.interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()) {
+                                        if (it.interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
                                             if (Locale.CHINESE.getLanguage().equals(language)) {
                                                 sosName = Util.appendSpace(it.interactionVO.fromDeviceName)
                                             } else {
                                                 sosName = it.interactionVO.fromDeviceName
                                             }
-                                        }
 
-                                        if (SettingConfig.getSosCallNameOn(activity)) {
                                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                             SpeechUtil.getInstance().removeSpeak(text)
-                                        } else if (!Strings.isNullOrEmpty(it.interactionVO.data)) {
-                                            var speakText = ""
-                                            if (Locale.CHINESE.getLanguage().equals(language)) {
-                                                speakText = Util.appendSpace(it.interactionVO.data.replace("-", ";"))
-                                            } else {
-                                                speakText = it.interactionVO.data.replace("-", ";")
-                                            }
-                                            SpeechUtil.getInstance().removeSpeak(speakText)
-                                        } else {
+                                        } else if (it.interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                                            && it.interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
                                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
                                             SpeechUtil.getInstance().removeSpeak(text)
+                                        } else {
+                                            if (!Strings.isNullOrEmpty(it.interactionVO.data)) {
+                                                var speakText = ""
+                                                if (Locale.CHINESE.getLanguage().equals(language)) {
+                                                    speakText = Util.appendSpace(it.interactionVO.data.replace("-", ";"))
+                                                } else {
+                                                    speakText = it.interactionVO.data.replace("-", ";")
+                                                }
+                                                SpeechUtil.getInstance().removeSpeak(speakText)
+                                            } else {
+                                                val text = BaseApplication.appContext.getString(R.string.sos_call_speech, sosName)
+                                                SpeechUtil.getInstance().removeSpeak(text)
+                                            }
                                         }
                                     }
 

+ 27 - 24
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/adapter/CallRecordsItemAdapter.kt

@@ -29,6 +29,7 @@ import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.EventStatusEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
 import org.greenrobot.eventbus.EventBus
@@ -281,22 +282,23 @@ class CallRecordsItemAdapter(val data: ArrayList<InteractionVO>) : BaseDelegateA
                     if (itemData.fromFrameFullName != null) {
                         roomNo = itemData.fromFrameFullName.substringBefore("-")
                     }
-                    //如果分机绑定了紧急按钮则加上紧急按钮名称
-                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                        || itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                    ) {
-                        roomNo = itemData.fromDeviceName
-                    }
 
-                    if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                        binding.sickbedTv.text = roomNo
+                    //如果分机绑定了紧急按钮则加上紧急按钮名称
+                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                        binding.sickbedTv.text = itemData.fromDeviceName
                         binding.nameTv.setText(R.string.call_sos)
-                    } else if (!Strings.isNullOrEmpty(itemData.data)) {
-                        binding.sickbedTv.text = itemData.fromFrameFullName
-                        binding.nameTv.text = itemData.data
-                    } else {
+                    } else if (itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                        && itemData.fromFrameType == FrameTypeEnum.BED.value()) {
                         binding.sickbedTv.text = roomNo
                         binding.nameTv.setText(R.string.call_sos)
+                    } else {
+                        if (!Strings.isNullOrEmpty(itemData.data)) {
+                            binding.sickbedTv.text = itemData.fromFrameFullName
+                            binding.nameTv.text = itemData.data
+                        } else {
+                            binding.sickbedTv.text = roomNo
+                            binding.nameTv.setText(R.string.call_sos)
+                        }
                     }
 
                     binding.callStatusImagev.visibility = View.GONE
@@ -309,22 +311,23 @@ class CallRecordsItemAdapter(val data: ArrayList<InteractionVO>) : BaseDelegateA
                     if (itemData.fromFrameFullName != null) {
                         roomNo = itemData.fromFrameFullName.substringBefore("-")
                     }
-                    //如果分机绑定了紧急按钮则加上紧急按钮名称
-                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                        || itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
-                    ) {
-                        roomNo = itemData.fromDeviceName
-                    }
 
-                    if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                        binding.sickbedTv.text = roomNo
+                    //如果分机绑定了紧急按钮则加上紧急按钮名称
+                    if (itemData.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                        binding.sickbedTv.text = itemData.fromDeviceName
                         binding.nameTv.setText(R.string.call_sos)
-                    } else if (!Strings.isNullOrEmpty(itemData.data)) {
-                        binding.sickbedTv.text = itemData.fromFrameFullName
-                        binding.nameTv.text = itemData.data
-                    } else {
+                    } else if (itemData.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                        && itemData.fromFrameType == FrameTypeEnum.BED.value()) {
                         binding.sickbedTv.text = roomNo
                         binding.nameTv.setText(R.string.call_sos)
+                    } else {
+                        if (!Strings.isNullOrEmpty(itemData.data)) {
+                            binding.sickbedTv.text = itemData.fromFrameFullName
+                            binding.nameTv.text = itemData.data
+                        } else {
+                            binding.sickbedTv.text = roomNo
+                            binding.nameTv.setText(R.string.call_sos)
+                        }
                     }
 
                     binding.callStatusImagev.visibility = View.GONE

+ 19 - 28
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/util/LedHelper.java

@@ -10,6 +10,7 @@ import com.wdkl.ncs.android.middleware.common.Constants;
 import com.wdkl.ncs.android.component.nursehome.led.LedManagerUtils;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum;
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType;
 import com.wdkl.ncs.android.middleware.utils.CommonUtils;
 
@@ -61,35 +62,25 @@ public class LedHelper {
                     LedManagerUtils.getInstance().updateProgram(call, 2);
                 }
             }
-        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.EMERGENCY_BUTTON.value()
-                || interactionVO.getFromDeviceType() == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()) {
-            //紧急呼叫
-            String frameName = CommonUtils.subStringBefore(interactionVO.getFromFrameFullName(), "-");
-            if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
-                frameName = interactionVO.getFromDeviceName();
-                if (isAdd) {
-                    //新增led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
-                } else {
-                    //删除led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
-                }
-            } else if (!Strings.isNullOrEmpty(interactionVO.getData())) {
-                if (isAdd) {
-                    //新增led节目
-                    LedManagerUtils.getInstance().updateProgram(interactionVO.getData(), 1);
-                } else {
-                    //删除led节目
-                    LedManagerUtils.getInstance().updateProgram(interactionVO.getData(), 2);
-                }
+        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+            //紧急按钮名称显示
+            String frameName = interactionVO.getFromDeviceName();
+            if (isAdd) {
+                //新增led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
             } else {
-                if (isAdd) {
-                    //新增led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
-                } else {
-                    //删除led节目
-                    LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
-                }
+                //删除led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
+            }
+        } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                && interactionVO.getFromFrameType() == FrameTypeEnum.BED.value()) {
+            String frameName = interactionVO.getFromFrameFullName().replace("-", "");
+            if (isAdd) {
+                //新增led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 1);
+            } else {
+                //删除led节目
+                LedManagerUtils.getInstance().updateProgram(BaseApplication.appContext.getString(R.string.led_show_emergency_call, frameName), 2);
             }
         } else if (interactionVO.getFromDeviceType() == DeviceTypeEnum.ALARM_BUTTON_SOS.value()
                 || interactionVO.getFromDeviceType() == DeviceTypeEnum.ALARM_433BUTTON.value()) {

+ 101 - 76
android_host/src/main/h10_z3128_1h/java/com/wdkl/ncs/android/component/nursehome/window/IncidentWindow.kt

@@ -32,6 +32,7 @@ import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.*
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
+import com.wdkl.ncs.android.middleware.tcp.enums.FrameTypeEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
@@ -399,86 +400,110 @@ class IncidentWindow(var contexts: Context) {
                             room = interactionVO.fromDeviceName
                         }
 
-                        if (SettingConfig.getSosCallNameOn(BaseApplication.appContext)) {
+                        if (interactionVO.fromDeviceType == DeviceTypeEnum.EMERGENCY_BUTTON.value()) {
+                            room = interactionVO.fromDeviceName
+                            val text = BaseApplication.appContext.getString(R.string.sos_call_speech, room)
+                            binding.incidentTv.text = text
+                        } else if (interactionVO.fromDeviceType == DeviceTypeEnum.SIMULATE_EMERGENCY_BUTTON.value()
+                            && interactionVO.fromFrameType == FrameTypeEnum.BED.value()) {
                             val text = BaseApplication.appContext.getString(R.string.sos_call_speech, room)
                             binding.incidentTv.text = text
-                        } else if (interactionVO.data != null) {
-                            binding.incidentTv.text = interactionVO.data
                         } else {
-                            if (tcpModel.action == TcpAction.SOSAction.CALL || tcpModel.action == TcpAction.SOSAction.ROOM_CALL) {
-                                val text = BaseApplication.appContext.getString(
-                                    R.string.sos_call_speech,
-                                    room
-                                )
-                                binding.incidentTv.text = text
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEST) {
-                                //测试报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_TEST.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INTRUSION) {
-                                //入侵报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_INTRUSION.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS) {
-                                //8小时无人报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS) {
-                                //12小时报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS) {
-                                //24小时无人报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFRARED_NO_TRIGGER) {
-                                //无人报警
-                                var str = ""
-                                if (interactionVO.data != null) {
-                                    str = interactionVO.data as String
-                                }
-                                binding.incidentTv.text = str + BaseApplication.appContext.getString(R.string.none_warning)
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL_RADAR) {
-                                //雷达跌倒报警
-                                binding.incidentTv.text = room + StringUtil.getResString(R.string.str_fall_alarm)
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFUSION_RADAR) {
-                                //输液报警
-                                if (interactionVO.data != null) {
-                                    val str = interactionVO.data as String
-                                    binding.incidentTv.text = str
+                            if (interactionVO.data != null) {
+                                binding.incidentTv.text = interactionVO.data
+                            } else {
+                                if (tcpModel.action == TcpAction.SOSAction.CALL || tcpModel.action == TcpAction.SOSAction.ROOM_CALL) {
+                                    val text = BaseApplication.appContext.getString(
+                                        R.string.sos_call_speech,
+                                        room
+                                    )
+                                    binding.incidentTv.text = text
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEST) {
+                                    //测试报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_TEST.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INTRUSION) {
+                                    //入侵报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_INTRUSION.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS) {
+                                    //8小时无人报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_EIGHT_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS) {
+                                    //12小时报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_TWELVE_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS) {
+                                    //24小时无人报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_ON_TWENTY_FOUR_HOURS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFRARED_NO_TRIGGER) {
+                                    //无人报警
+                                    var str = ""
+                                    if (interactionVO.data != null) {
+                                        str = interactionVO.data as String
+                                    }
+                                    binding.incidentTv.text =
+                                        str + BaseApplication.appContext.getString(R.string.none_warning)
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL_RADAR) {
+                                    //雷达跌倒报警
+                                    binding.incidentTv.text =
+                                        room + StringUtil.getResString(R.string.str_fall_alarm)
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_INFUSION_RADAR) {
+                                    //输液报警
+                                    if (interactionVO.data != null) {
+                                        val str = interactionVO.data as String
+                                        binding.incidentTv.text = str
+                                    }
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DISASSEMBLE) {
+                                    //防拆报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_DISASSEMBLE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FAULT) {
+                                    //故障报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_FAULT.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DOOR_LOCK) {
+                                    //门磁报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_DOOR_LOCK.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_SMOKE) {
+                                    //烟感报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_SMOKE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_GAS) {
+                                    //燃气报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_GAS.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_WATER_OVERFLOW) {
+                                    //浸水报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_WATER_OVERFLOW.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_LOW_VOLTAGE) {
+                                    //低电压报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_LOW_VOLTAGE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEMPERATURE) {
+                                    //温度报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_TEMPERATURE.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL) {
+                                    //跌倒报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_FALL.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.ALARM_VITAL) {
+                                    //体征报警
+                                    binding.incidentTv.text =
+                                        TcpAction.SOSAction.ALARM_VITAL.description
+                                } else if (tcpModel.action == TcpAction.SOSAction.AlARM_BUTTON) {
+                                    //腕表紧急按钮
+                                    val text = BaseApplication.appContext.getString(
+                                        R.string.sos_call_speech,
+                                        interactionVO.fromMemberName
+                                    )
+                                    binding.incidentTv.text = text
                                 }
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DISASSEMBLE) {
-                                //防拆报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_DISASSEMBLE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FAULT) {
-                                //故障报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_FAULT.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_DOOR_LOCK) {
-                                //门磁报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_DOOR_LOCK.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_SMOKE) {
-                                //烟感报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_SMOKE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_GAS) {
-                                //燃气报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_GAS.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_WATER_OVERFLOW) {
-                                //浸水报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_WATER_OVERFLOW.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_LOW_VOLTAGE) {
-                                //低电压报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_LOW_VOLTAGE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_TEMPERATURE) {
-                                //温度报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_TEMPERATURE.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_FALL) {
-                                //跌倒报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_FALL.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.ALARM_VITAL) {
-                                //体征报警
-                                binding.incidentTv.text = TcpAction.SOSAction.ALARM_VITAL.description
-                            } else if (tcpModel.action == TcpAction.SOSAction.AlARM_BUTTON) {
-                                //腕表紧急按钮
-                                val text = BaseApplication.appContext.getString(
-                                    R.string.sos_call_speech,
-                                    interactionVO.fromMemberName
-                                )
-                                binding.incidentTv.text = text
                             }
                         }
                     }

+ 2 - 1
android_host/src/main/h10_z3128_1h/res/layout/fragment_system_settings.xml

@@ -200,7 +200,8 @@
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
                     android:layout_marginBottom="10dp"
-                    android:orientation="horizontal">
+                    android:orientation="horizontal"
+                    android:visibility="gone">
 
                     <TextView
                         android:layout_width="wrap_content"