weizhengliang %!s(int64=4) %!d(string=hai) anos
pai
achega
5da7123625

+ 14 - 6
home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioActivity.java

@@ -27,6 +27,7 @@ import com.starrtc.starrtcsdk.core.pusher.XHCameraRecorder;
 import com.wdkl.ncs.android.component.home.R;
 import com.wdkl.ncs.android.component.home.util.MediaPlayHelper;
 import com.wdkl.ncs.android.component.nursehome.common.Constants;
+import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel;
@@ -403,14 +404,21 @@ public class RTCVoipAudioActivity extends BaseActivity implements View.OnClickLi
                 audioCall();
 
             } else if (tcpModel.getAction() == TcpAction.VoiceAction.REJECT){
-                MediaPlayHelper.getInstance().stopMusic();
-                voiceStatus.setText("对方拒绝接听");
+                //voiceStatus.setText("对方拒绝接听");
+                ExtendMethodsKt.showMessage("对方拒绝接听");
+                stopAndFinish();
             } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING){
-                MediaPlayHelper.getInstance().stopMusic();
-                voiceStatus.setText("对方正在通话");
+                //voiceStatus.setText("对方正在通话");
+                ExtendMethodsKt.showMessage("对方正在通话");
+                stopAndFinish();
             } else if (tcpModel.getAction() == TcpAction.VoiceAction.FAILED){
-                MediaPlayHelper.getInstance().stopMusic();
-                voiceStatus.setText("对方拒绝");
+                //voiceStatus.setText("对方拒绝");
+                ExtendMethodsKt.showMessage("呼叫失败,对方可能不在线");
+                stopAndFinish();
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL){
+                //voiceStatus.setText("对方拒绝");
+                ExtendMethodsKt.showMessage("对方取消呼叫");
+                stopAndFinish();
             }
         }
     }

+ 33 - 2
home/src/main/code/com/wdkl/ncs/android/component/home/activity/RTCVoipAudioRingingActivity.java

@@ -2,6 +2,7 @@ package com.wdkl.ncs.android.component.home.activity;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.View;
 import android.view.WindowManager;
 import android.widget.TextView;
@@ -18,11 +19,18 @@ import com.starrtc.starrtcsdk.apiInterface.IXHResultCallback;
 import com.wdkl.ncs.android.component.home.R;
 import com.wdkl.ncs.android.component.home.util.MediaPlayHelper;
 import com.wdkl.ncs.android.component.nursehome.common.Constants;
+import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel;
 import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
+import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
+import com.wdkl.ncs.android.middleware.utils.MessageEvent;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.text.SimpleDateFormat;
 
@@ -48,11 +56,11 @@ public class RTCVoipAudioRingingActivity extends BaseActivity implements View.On
         bao_mother_name_tv = findViewById(R.id.bao_mother_name_tv);
         interactionVO =  new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
 
+        TextView eventText = (TextView) findViewById(R.id.event_text);
+        eventText.setText(interactionVO.getFromFrameFullName());
         if (Strings.isNullOrEmpty(targetId)){
             findViewById(R.id.hang_up_imagev).setVisibility(View.GONE);
             findViewById(R.id.call_the_voice_imagev).setVisibility(View.GONE);
-            TextView eventText = (TextView) findViewById(R.id.event_text);
-            eventText.setText(interactionVO.getData());
         } else {
             bao_mother_name_tv.setText(interactionVO.getFromMemberName());
             findViewById(R.id.hang_up_imagev).setOnClickListener(this);
@@ -73,6 +81,8 @@ public class RTCVoipAudioRingingActivity extends BaseActivity implements View.On
         MLOC.addHistory(historyBean,true);
 
         MediaPlayHelper.getInstance().playResMusic(R.raw.incoming_call, 1.0f, true);
+
+        EventBus.getDefault().register(this);
     }
 
     public void addListener(){
@@ -116,6 +126,12 @@ public class RTCVoipAudioRingingActivity extends BaseActivity implements View.On
     }
 
     @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        EventBus.getDefault().unregister(this);
+    }
+
+    @Override
     public void onClick(View v) {
         int id = v.getId();
         if (id == R.id.hang_up_imagev) {
@@ -156,4 +172,19 @@ public class RTCVoipAudioRingingActivity extends BaseActivity implements View.On
             finish();
         }
     }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onMoonEvent(MessageEvent messageEvent) {
+        if (messageEvent.getTag() == 2){
+            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
+
+            if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL || tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF){
+                //voiceStatus.setText("对方拒绝");
+                ExtendMethodsKt.showMessage("通话取消");
+                MediaPlayHelper.getInstance().stopMusic();
+                RTCVoipAudioRingingActivity.this.finish();
+            }
+        }
+    }
 }

+ 3 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -34,7 +34,9 @@ public class DeviceChannel {
             //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方拒绝并停留3秒,结束至正常界面
             || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.CALLING) //我方呼出,对方通话中
             //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方占线并停留3秒,结束至正常界面;更新左侧
-            || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.FAILED)){ //我方呼出,对方不在线,设备离线或其它错误
+            || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF)
+            || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.FAILED) //我方呼出,对方不在线,设备离线或其它错误
+            || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.CANCEL)) { //对方取消
             //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方离线并停留3秒,结束至正常界面;更新左侧
             EventBus.getDefault().post(new MessageEvent(tcpModel, 2));
         } else if ((tcpModel.getType()==TcpType.IM && tcpModel.getAction() == TcpAction.IMAction.MSG)

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

@@ -43,6 +43,7 @@ public interface TcpAction {
     enum VoiceAction implements TcpAction {
         CALL("呼叫"),
         ACCEPT("接受呼叫"),
+        CANCEL("取消"),
         REJECT("拒绝"),
         CALLING("通话中"),
         TRANSFER("转接"),