Browse Source

优化事件状态显示,优化事件语音播报等

weizhengliang 9 tháng trước cách đây
mục cha
commit
5e809ceba0

+ 0 - 6
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/activity/WatchCallRecordsActivity.kt

@@ -65,8 +65,6 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
 
     private val watchCallRecordsItemAdapter = WatchCallRecordsItemAdapter(ArrayList())
 
-    private lateinit var loadingDialog: LoadingDialog
-
     private var customerId = ""
 
     var all = "ALL"
@@ -105,8 +103,6 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
         call_records_recyv.layoutManager = virtualLayoutManager
         call_records_recyv.adapter = delegateAdapter
 
-        //loadingDialog = CommonTool.createLoadingDialog(this, R.layout.custom_loading,R.id.loadding_image)
-
         receivedData = intent.getSerializableExtra("data") as WatchContactsVO?
         action = intent.getStringExtra("action")
         customerId = intent.getStringExtra("customer_id").toString()
@@ -296,10 +292,8 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
             Log.i(TAG, tcpModel.toJson())
             if (tcpModel.type == TcpType.VOICE) {
                 if (tcpModel.action == TcpAction.VoiceAction.SUCCESS) {
-                    //loadingDialog.dismiss()
                     //界面呈现,逻辑在service中
                 } else if (tcpModel.action == TcpAction.VoiceAction.FAILED) {
-                    //loadingDialog.dismiss()
                     call_relyout.isEnabled = true
                     DeviceChannel.calling = false
                     DeviceChannel.callId = 0

+ 0 - 3
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/adapter/NewEventItemAdapter.kt

@@ -65,18 +65,15 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val activity: Activ
         holder.bind { binding ->
             val itemData = getItem(position)
 
-            val toDeviceId:Int?
             binding.eliEventTime.text = TimeTransition().stampToDate(itemData.createDate*1000)
             //binding.eliRoomName.text = itemData.fromFrameFullName
             var showName: String? = ""
             if (itemData.fromDeviceMemberId == Constants.memberId){
                 binding.eliRoomName.text = itemData.toFrameFullName
                 showName = itemData.toMemberName
-                toDeviceId = itemData.toDeviceId
             } else {
                 binding.eliRoomName.text = itemData.fromFrameFullName
                 showName = itemData.fromMemberName
-                toDeviceId = itemData.fromDeviceId
             }
 
             if (TextUtils.isEmpty(showName)) {

+ 43 - 18
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/adapter/WatchCallRecordsItemAdapter.kt

@@ -14,6 +14,7 @@ import com.wdkl.ncs.android.lib.adapter.BaseDelegateAdapter
 import com.wdkl.ncs.android.lib.utils.BaseRecyclerViewHolder
 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.EventStatusEnum
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import com.wdkl.ncs.android.middleware.utils.StringUtil
 
@@ -83,6 +84,48 @@ class WatchCallRecordsItemAdapter(val data: ArrayList<InteractionVO>) : BaseDele
                 binding.nameTv.text = "To: " + itemData.toFrameFullName
             }
 
+            if (itemData.actionType == TcpType.EVENT.name) {
+                if (itemData.actionEndMemberId != null) {
+                    //已响应
+                    binding.treatmentStateImagev.setImageResource(R.drawable.checked_100)
+                    binding.treatmentStateImagev.visibility = View.VISIBLE
+                    binding.playTv.visibility = View.GONE
+                    binding.projectTv.visibility = View.VISIBLE
+                    binding.conductorNameTv.visibility = View.VISIBLE
+                    binding.projectTv.text = itemData.data
+                    binding.conductorNameTv.text = itemData.actionEndMemberName
+                    binding.processingTimeTv.text = TimeTransition().stampToDate(itemData.actionEnd*1000)
+                    binding.projectTv.setBackgroundResource(R.drawable.sp_event_do)
+                    binding.callStatusImagev.setImageResource(R.drawable.event_do)
+                    binding.callStatusImagev.visibility = View.VISIBLE
+                } else {
+                    if (itemData.actionStatus == EventStatusEnum.CANCELED.status) {
+                        //已取消
+                        binding.treatmentStateImagev.visibility = View.GONE
+                        binding.playTv.visibility = View.GONE
+                        binding.projectTv.visibility = View.VISIBLE
+                        binding.projectTv.text = itemData.data
+                        binding.projectTv.setBackgroundResource(R.drawable.sp_event_cancel)
+                        binding.callStatusImagev.setImageResource(R.drawable.event_undo)
+                        binding.callStatusImagev.visibility = View.VISIBLE
+                        binding.processingTimeTv.setText(R.string.event_cancel)
+                    } else {
+                        //未响应
+                        binding.treatmentStateImagev.setImageResource(R.drawable.unchecked_100)
+                        binding.treatmentStateImagev.visibility = View.VISIBLE
+                        binding.playTv.visibility = View.GONE
+                        binding.projectTv.visibility = View.VISIBLE
+                        binding.projectTv.text = itemData.data
+                        binding.projectTv.setBackgroundResource(R.drawable.sp_event_undo)
+                        binding.callStatusImagev.setImageResource(R.drawable.event_undo)
+                        binding.callStatusImagev.visibility = View.VISIBLE
+                        binding.processingTimeTv.setText(R.string.event_undo)
+                    }
+                }
+
+                return
+            }
+
             //是否已播放 已响应
             if (itemData.actionEnd != null) {
                 binding.treatmentStateImagev.setImageResource(R.drawable.checked_100)
@@ -99,16 +142,6 @@ class WatchCallRecordsItemAdapter(val data: ArrayList<InteractionVO>) : BaseDele
                     binding.projectTv.setBackgroundResource(R.drawable.sp_event_do)
                     binding.callStatusImagev.setImageResource(R.drawable.sos_96)
                     binding.callStatusImagev.visibility = View.VISIBLE
-                }else if(itemData.actionType == TcpType.EVENT.name){//事件已经响应 相应的数据
-                    binding.playTv.visibility = View.GONE
-                    binding.projectTv.visibility = View.VISIBLE
-                    binding.conductorNameTv.visibility = View.VISIBLE
-                    binding.projectTv.text = itemData.data
-                    binding.conductorNameTv.text = itemData.actionEndMemberName
-                    //binding.processingTimeTv.text = TimeTransition().stampToDate(itemData.actionEnd*1000)
-                    binding.projectTv.setBackgroundResource(R.drawable.sp_event_do)
-                    binding.callStatusImagev.setImageResource(R.drawable.event_do)
-                    binding.callStatusImagev.visibility = View.VISIBLE
                 }else if (itemData.actionType == TcpType.IM.name){//语音已播放
 
                     binding.projectTv.visibility = View.GONE
@@ -147,14 +180,6 @@ class WatchCallRecordsItemAdapter(val data: ArrayList<InteractionVO>) : BaseDele
                     //binding.processingTimeTv.setText(R.string.event_undo)
                     binding.callStatusImagev.setImageResource(R.drawable.sos_96)
                     binding.callStatusImagev.visibility = View.VISIBLE
-                }else if(itemData.actionType == TcpType.EVENT.name){//事件未处理
-                    binding.playTv.visibility = View.GONE
-                    binding.projectTv.visibility = View.VISIBLE
-                    binding.projectTv.text = itemData.data
-                    binding.projectTv.setBackgroundResource(R.drawable.sp_event_undo)
-                    binding.callStatusImagev.setImageResource(R.drawable.event_undo)
-                    binding.callStatusImagev.visibility = View.VISIBLE
-                    //binding.processingTimeTv.setText(R.string.event_undo)
                 }else if (itemData.actionType == TcpType.IM.name){//语音未播放
                     binding.projectTv.visibility = View.GONE
                     binding.playTv.visibility = View.VISIBLE

+ 11 - 15
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt

@@ -546,7 +546,9 @@ class WdKeepAliveService : AbsWorkService() {
                     } else {
                         EventBus.getDefault().post(MessageEvent("update_event", Constants.EVENT_UPDATE_EVENT))
                     }
-                } else if (tcpModel.action == TcpAction.EventAction.CANCEL || tcpModel.action == TcpAction.EventAction.COMPLETED) { // 收到事件取消 或事件完成
+                } else if (tcpModel.action == TcpAction.EventAction.CANCEL
+                    || tcpModel.action == TcpAction.EventAction.COMPLETED
+                    || tcpModel.action == TcpAction.EventAction.RESPONSED) { // 收到事件取消 或事件完成
                     //语音播报处理
                     eventSpeechOut(tcpModel)
                     //震动提醒
@@ -911,15 +913,16 @@ class WdKeepAliveService : AbsWorkService() {
                 if (Locale.CHINESE.getLanguage().equals(language)) {
                     SpeechUtil.getInstance().startSpeak("您有新的事件待处理, " + eventStr)
                 } else {
-                    RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
+                    //RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
+
+                    val text = interactionVO.fromFrameFullName.replace("-", ",") + ", " + interactionVO.data
+                    SpeechUtil.getInstance().startSpeak(text)
                 }
             } else {
-                //MediaPlayHelper.getInstance().playResMusic(R.raw.new_event, 1.0f, false)
-                RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.new_event, false)
+                RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
             }
         } else if (model.action == TcpAction.SOSAction.CALL || model.action == TcpAction.SOSAction.ROOM_CALL) {
             AppTool.Time.delay(200) {
-                //MediaPlayHelper.getInstance().playResMusic(R.raw.sos, 1.0f, true)
                 RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.sos, false)
             }
         } else if (model.type == TcpType.EVENT && model.action == TcpAction.EventAction.CANCEL) { // 事件取消
@@ -933,10 +936,7 @@ class WdKeepAliveService : AbsWorkService() {
                     RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
                 }
             } else {
-                AppTool.Time.delay(200) {
-                    //MediaPlayHelper.getInstance().playResMusic(R.raw.new_event, 1.0f, false)
-                    RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.new_event, false)
-                }
+                RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
             }
         } else if (model.type == TcpType.EVENT && model.action == TcpAction.EventAction.COMPLETED) { //事件完成
             val eventStr = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ",")) + ", " +
@@ -949,9 +949,7 @@ class WdKeepAliveService : AbsWorkService() {
                     RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
                 }
             } else {
-                AppTool.Time.delay(200) {
-                    RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
-                }
+                RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
             }
         } else if(model.type==TcpType.EVENT && model.action==TcpAction.EventAction.RESPONSED){
             val eventStr = Util.appendSpace(interactionVO.fromFrameFullName.replace("-", ",")) + ", " + interactionVO.data + "事件已由"+interactionVO.actionEndMemberName+"响应"
@@ -963,9 +961,7 @@ class WdKeepAliveService : AbsWorkService() {
                     RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
                 }
             } else {
-                AppTool.Time.delay(200) {
-                    RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
-                }
+                RingPlayHelper.playRingTone(BaseApplication.appContext, R.raw.event, false)
             }
         } else if (model.action == TcpAction.VoiceAction.HCALL || model.action == TcpAction.VoiceAction.CALL) {
             val callRoom = interactionVO.fromFrameFullName.replace("-", " ")

+ 5 - 0
android_mobile/src/main/yd_w_xiaomi_2_chile/res/drawable/sp_event_cancel.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#9FD8DF"/>
+    <corners android:radius="5sp"/>
+</shape>

+ 1 - 6
android_mobile/src/main/yd_w_xiaomi_2_chile/res/layout/adapter_watch_call_records_item.xml

@@ -15,12 +15,6 @@
             android:layout_centerVertical="true"
             android:orientation="vertical">
 
-<!--            <ImageView-->
-<!--                android:id="@+id/tab_imagev"-->
-<!--                android:layout_width="wrap_content"-->
-<!--                android:layout_height="wrap_content"-->
-<!--                android:src="@drawable/hu_ru_yi_jie" />-->
-
             <ImageView
                 android:id="@+id/call_status_imagev"
                 android:layout_width="26dp"
@@ -127,6 +121,7 @@
                     android:layout_width="0dp"
                     android:layout_height="wrap_content"
                     android:layout_weight="1"
+                    android:textColor="#F78B8F"
                     android:gravity="end"
                     android:textSize="12sp" />
             </LinearLayout>

+ 63 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/EventStatusEnum.java

@@ -0,0 +1,63 @@
+package com.wdkl.ncs.android.middleware.tcp.enums;
+
+/**
+ * @author wuyunfeng
+ * 2021-12-04 15:19
+ * 按键事件状态枚举
+ */
+public enum EventStatusEnum {
+
+    SENDED(1, "已发送"),
+    RESPONSED(2, "已响应"),
+    CANCELED(3, "已取消"),
+    COMPLETED(4, "已完成");
+
+
+    private final int value;
+    private final String status;
+
+    EventStatusEnum(int value, String status) {
+        this.value = value;
+        this.status = status;
+    }
+
+    public int getValue() {
+        return value;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    /**
+     * 通过status 转换成枚举
+     * @param status
+     * @return
+     */
+    public static EventStatusEnum parse(String status) {
+        EventStatusEnum[] values = EventStatusEnum.values();
+        for (EventStatusEnum value : values) {
+            if (value.getStatus().equals(status)) {
+                return value;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 通过value值转换成枚举
+     *
+     * @param value
+     * @return
+     */
+    public static EventStatusEnum parse(int value) {
+        EventStatusEnum[] values = EventStatusEnum.values();
+        for (EventStatusEnum eventStatusEnum : values) {
+            if (eventStatusEnum.getValue() == value) {
+                return eventStatusEnum;
+            }
+        }
+        return null;
+    }
+
+}

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

@@ -170,6 +170,7 @@
     <string name="event_voice_call">Llamar</string>
     <string name="event_undo">Deshacer</string>
     <string name="event_responded">Contestado</string>
+    <string name="event_cancel">Canceled</string>
     <string name="device_change_check">Confirmar cambio?</string>
     <string name="device_change_tips">Modificando, espere</string>
     <string name="invalid_phone_number">Teléfono no válido: %s</string>

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

@@ -162,6 +162,7 @@
     <string name="event_voice_call">Позвонить</string>
     <string name="event_undo">Отменить</string>
     <string name="event_responded">Отвечено</string>
+    <string name="event_cancel">Canceled</string>
     <string name="device_change_check">Подтвердить изменение?</string>
     <string name="device_change_tips">Изменение, подождите</string>
     <string name="invalid_phone_number">Неверный номер телефона: %s</string>

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

@@ -170,6 +170,7 @@
     <string name="event_voice_call">通话</string>
     <string name="event_undo">未处理</string>
     <string name="event_responded">已响应</string>
+    <string name="event_cancel">已取消</string>
     <string name="device_change_check">是否确认切换?</string>
     <string name="device_change_tips">切换中,请稍后</string>
     <string name="invalid_phone_number">非法号码: %s</string>

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

@@ -170,6 +170,7 @@
     <string name="event_voice_call">Call</string>
     <string name="event_undo">Undo</string>
     <string name="event_responded">Responded</string>
+    <string name="event_cancel">Canceled</string>
     <string name="device_change_check">Change confirm?</string>
     <string name="device_change_tips">Changing, wait</string>
     <string name="invalid_phone_number">Invalid phone: %s</string>