Pārlūkot izejas kodu

优化医生主机,移动设备,其他主机呼叫显示及语音播报

weizhengliang 2 gadi atpakaļ
vecāks
revīzija
b7dd6eab49

+ 40 - 3
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -1200,7 +1200,19 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurse
                                 }
                                 if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                     //val frameName = item.interactionVO.fromFrameFullName.replace("-", "")
-                                    val frameName = Util.appendSpace(item.interactionVO.fromFrameFullName.replace("-", ","))
+                                    var frameName = ""
+                                    if (DeviceTypeEnum.DOCTOR_HOST.value() == item.interactionVO.fromDeviceType
+                                        || DeviceTypeEnum.NURSE_HOST.value() == item.interactionVO.fromDeviceType
+                                        || DeviceTypeEnum.OTHER_HOST.value() == item.interactionVO.fromDeviceType) {
+                                        //医生机,护士主机,其他主机,总控主机等
+                                        frameName = item.interactionVO.fromDeviceName
+                                    } else if (DeviceTypeEnum.NURSE_WATCH.value() == item.interactionVO.fromDeviceType) {
+                                        //移动设备
+                                        frameName = item.interactionVO.fromMemberName
+                                    } else {
+                                        //其他
+                                        frameName = Util.appendSpace(item.interactionVO.fromFrameFullName.replace("-", ","))
+                                    }
                                     SpeechUtil.getInstance().removeSpeak(frameName + "呼叫")
                                 } else {
                                     //如果呼叫列表只有一个呼叫了,说明删除这个之后就清空了,此时关闭铃声或音乐
@@ -1481,7 +1493,18 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurse
                             bundle.putInt("call_state", 0)
                             bundle.putBoolean("visiting", false)
                             //bundle.putString("targetId", targetId)
-                            bundle.putString("call_name", interactionVO.toFrameFullName)
+                            if (DeviceTypeEnum.DOCTOR_HOST.value() == interactionVO.toDeviceType
+                                || DeviceTypeEnum.NURSE_HOST.value() == interactionVO.toDeviceType
+                                || DeviceTypeEnum.OTHER_HOST.value() == interactionVO.toDeviceType) {
+                                //医生机,护士主机,其他主机,总控主机等
+                                bundle.putString("call_name", interactionVO.toDeviceName)
+                            } else if (DeviceTypeEnum.NURSE_WATCH.value() == interactionVO.toDeviceType) {
+                                //移动设备
+                                bundle.putString("call_name", interactionVO.toMemberName)
+                            } else {
+                                //其他设备
+                                bundle.putString("call_name", interactionVO.toFrameFullName)
+                            }
                             fragment.arguments = bundle
                             addCallFragment(fragment)
                         } else {
@@ -1735,7 +1758,21 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurse
                     //Constants.CALL_STATE = Constants.CALL_CALLING
                     //DeviceChannel.calling = true
 
-                    acceptCall(item.fromFrameFullName)
+                    var name = ""
+                    if (DeviceTypeEnum.DOCTOR_HOST.value() == item.fromDeviceType
+                        || DeviceTypeEnum.NURSE_HOST.value() == item.fromDeviceType
+                        || DeviceTypeEnum.OTHER_HOST.value() == item.fromDeviceType) {
+                        //医生机,护士主机,其他主机,总控主机等
+                        name = item.fromDeviceName
+                    } else if (DeviceTypeEnum.NURSE_WATCH.value() == item.fromDeviceType) {
+                        //移动设备
+                        name = item.fromMemberName
+                    } else {
+                        //其他
+                        name = item.fromFrameFullName
+                    }
+
+                    acceptCall(name)
                     VoiceUtil.acceptAudioCall(Constants.ids, Constants.fromId, Constants.interactionId)
                 } else {
                     showMessage("通话服务还未建立连接,暂时无法通话")

+ 19 - 2
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/CallingItemAdapter.kt

@@ -15,6 +15,7 @@ import com.wdkl.ncs.android.component.nursehome.util.SpeechUtil
 import com.wdkl.ncs.android.component.nursehome.util.TimeTransition
 import com.wdkl.ncs.android.middleware.entity.CallingItem
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
 import org.greenrobot.eventbus.EventBus
 
@@ -38,8 +39,24 @@ class CallingItemAdapter : RecyclerView.Adapter<CallingItemAdapter.ParentViewHol
     override fun onBindViewHolder(holder: ParentViewHolder?, position: Int) {
         try {
             val itemData = callingData.get(position).interactionVO
-            holder?.callingBedName?.text = itemData.fromFrameFullName
-            holder?.callingName?.text = itemData.fromMemberName
+            var frameName = ""
+            var memberName = ""
+            if (DeviceTypeEnum.DOCTOR_HOST.value() == itemData.fromDeviceType
+                || DeviceTypeEnum.NURSE_HOST.value() == itemData.fromDeviceType
+                || DeviceTypeEnum.OTHER_HOST.value() == itemData.fromDeviceType) {
+                //医生机,护士主机,其他主机,总控主机等
+                frameName = itemData.fromDeviceName
+            } else if (DeviceTypeEnum.NURSE_WATCH.value() == itemData.fromDeviceType) {
+                //移动设备
+                frameName = itemData.fromMemberName
+            } else {
+                //其他
+                frameName = itemData.fromFrameFullName
+                memberName = itemData.fromMemberName
+            }
+
+            holder?.callingBedName?.text = frameName
+            holder?.callingName?.text = memberName
             if (itemData.createDate != null) {
                 holder?.callingTime?.text = TimeTransition.stampToDateTime(itemData.createDate * 1000)
             }

+ 27 - 2
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/CallRecordsFragment.kt

@@ -30,6 +30,7 @@ import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.CallRecordsFrag
 import com.wdkl.ncs.android.middleware.model.vo.EventVO
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
 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.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
@@ -320,7 +321,19 @@ class CallRecordsFragment: BaseFragment<CallRecordsFragmentPresenter, FragmentCa
                         ) {
                             if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                                 //val frameName = interactionVO.fromFrameFullName.replace("-", "")
-                                val frameName = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ","))
+                                var frameName = ""
+                                if (DeviceTypeEnum.DOCTOR_HOST.value() == interactionVO.fromDeviceType
+                                    || DeviceTypeEnum.NURSE_HOST.value() == interactionVO.fromDeviceType
+                                    || DeviceTypeEnum.OTHER_HOST.value() == interactionVO.fromDeviceType) {
+                                    //医生机,护士主机,其他主机,总控主机等
+                                    frameName = interactionVO.fromDeviceName
+                                } else if (DeviceTypeEnum.NURSE_WATCH.value() == interactionVO.fromDeviceType) {
+                                    //移动设备
+                                    frameName = interactionVO.fromMemberName
+                                } else {
+                                    //其他
+                                    frameName = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ","))
+                                }
                                 SpeechUtil.getInstance().addSpeech(frameName + "呼叫", false)
                             } else {
                                 RingPlayHelper.playRingTone(activity, R.raw.ring_tone, true)
@@ -338,7 +351,19 @@ class CallRecordsFragment: BaseFragment<CallRecordsFragmentPresenter, FragmentCa
                         LedHelper.updateLedInfo(interactionVO, false, false)
                         if (SettingConfig.getTtsMode(activity) == SettingConfig.TTS_ON) {
                             //val frameName = interactionVO.fromFrameFullName.replace("-", "")
-                            val frameName = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ","))
+                            var frameName = ""
+                            if (DeviceTypeEnum.DOCTOR_HOST.value() == interactionVO.fromDeviceType
+                                || DeviceTypeEnum.NURSE_HOST.value() == interactionVO.fromDeviceType
+                                || DeviceTypeEnum.OTHER_HOST.value() == interactionVO.fromDeviceType) {
+                                //医生机,护士主机,其他主机,总控主机等
+                                frameName = interactionVO.fromDeviceName
+                            } else if (DeviceTypeEnum.NURSE_WATCH.value() == interactionVO.fromDeviceType) {
+                                //移动设备
+                                frameName = interactionVO.fromMemberName
+                            } else {
+                                //其他
+                                frameName = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ","))
+                            }
                             SpeechUtil.getInstance().removeSpeak(frameName + "呼叫")
                         } else {
                             //如果呼叫列表只有一个呼叫了,说明删除这个之后就清空了,此时关闭铃声或音乐

+ 2 - 1
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/SkyCallFragment.kt

@@ -206,11 +206,11 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
 
     //开始接听
     private fun showCallView(outgoing: Boolean) {
-        sky_call_name.text = callName
         if (outgoing) {
             countDownTimer.start()
             sky_voice_call_calling_text.text = "正在呼叫 " + callName
         } else {
+            sky_call_name.text = callName
             sky_voice_call_calling_text.text = "连接中..."
         }
         sky_voice_call_outgoing.visibility = View.VISIBLE
@@ -222,6 +222,7 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
             return
         }
 
+        sky_call_name.text = callName
         if (audioOnly) {
             ll_voice_call.visibility = View.VISIBLE
         } else {

+ 1 - 1
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/util/Util.kt

@@ -43,7 +43,7 @@ object Util {
         return cpuWakeLock
     }
 
-    fun appendSpace(para: String): String? {
+    fun appendSpace(para: String): String {
         val length = para.length
         val value = CharArray(length shl 1)
         var i = 0

+ 1 - 1
nursehome/src/main/res/layout/sky_voice_call_layout.xml

@@ -46,7 +46,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:gravity="center"
-                    android:text="--"
+                    android:text=""
                     android:textColor="@color/white"
                     android:textSize="32sp" />