Ver código fonte

## [1.1.23] version 42 - 2020-08-06
### Fixed
- 修复若干BUG

allen 3 anos atrás
pai
commit
0e2940c7db

+ 1 - 1
WebRTC/src/main/java/com/wdkl/core/socket/IEvent.java

@@ -35,7 +35,7 @@ public interface IEvent {
     // ice-candidate
     void onIceCandidate(String userId, String id, int label, String candidate);
 
-    void onLeave(String userId);
+    void onLeave(String room, String userId);
 
     void logout(String str);
 

+ 2 - 1
WebRTC/src/main/java/com/wdkl/core/socket/MyWebSocket.java

@@ -268,8 +268,9 @@ public class MyWebSocket extends WebSocketClient {
     private void handleLeave(Map map) {
         Map data = (Map) map.get("data");
         if (data != null) {
+            String room = (String) data.get("room");
             String fromID = (String) data.get("fromID");
-            this.iEvent.onLeave(fromID);
+            this.iEvent.onLeave(room, fromID);
         }
     }
 

+ 2 - 2
WebRTC/src/main/java/com/wdkl/core/socket/SocketManager.java

@@ -326,10 +326,10 @@ public class SocketManager implements IEvent {
     }
 
     @Override
-    public void onLeave(String userId) {
+    public void onLeave(String room, String userId) {
         handler.post(() -> {
             CallSession currentSession = SkyEngineKit.Instance().getCurrentSession();
-            if (currentSession != null) {
+            if (currentSession != null && currentSession.getRoomId().equals(room)) {
                 currentSession.onLeave(userId);
             }
         });

+ 2 - 2
build.gradle

@@ -47,12 +47,12 @@ buildscript {
     /**
      * APP版本码
      */
-    ext.app_version_code = 40
+    ext.app_version_code = 42
 
     /**
      * APP版本号
      */
-    ext.app_version = "1.1.21"
+    ext.app_version = "1.1.23"
 
     /**
      * 项目依赖库

+ 8 - 3
home/src/main/code/com/wdkl/ncs/android/component/home/activity/NewEventListActivity.kt

@@ -151,12 +151,17 @@ class NewEventListActivity : BaseActivity<NewEventListPresenter,ActivityEventLis
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 2) {
+        if (messageEvent.tag == 0) {
             mVibrator.cancel()
             val resTcpModel = messageEvent.getMessage() as TcpModel
-            if (resTcpModel.action == TcpAction.VoiceAction.FAILED) {
+            if (resTcpModel.type === TcpType.CALLBACK && resTcpModel.action === TcpAction.VoiceAction.FAILED) {
                 showMessage("呼叫失败,可能对方不在线")
-            } else if (resTcpModel.action == TcpAction.VoiceAction.CALLING) {
+                dismissDialog()
+            }
+        } else if (messageEvent.tag == 2) {
+            mVibrator.cancel()
+            val resTcpModel = messageEvent.getMessage() as TcpModel
+            if (resTcpModel.action == TcpAction.VoiceAction.CALLING) {
                 showMessage("对方通话中")
             }
         } else if (messageEvent.tag == 4) {

+ 6 - 1
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt

@@ -356,12 +356,13 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didChangeState(var1: EnumType.CallState?) {
-
+        Log.d(TAG + "_peer","didChangeState EnumType.CallState=" + var1?.name)
     }
 
     override fun didDisconnected(userId: String?) {
         //val session = gEngineKit?.currentSession
         //Log.i(TAG+"_peer","userId : $userId <> myId = ${session?.mMyId} , targetId = ${session?.mTargetId}, roomId = ${session?.roomId}, state = ${session?.state}")
+        Log.d(TAG + "_peer","didDisconnected userId=" + userId)
         gEngineKit?.endCall()
         runOnUiThread(Runnable {
             //showMessage("对方挂断")
@@ -375,6 +376,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didError(error: String?) {
+        Log.d(TAG + "_peer","didError error=" + error)
         gEngineKit?.endCall()
         if (error != null) {
             Log.e(TAG, error)
@@ -392,6 +394,8 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didCallEndWithReason(var1: EnumType.CallEndReason?) {
+        Log.d(TAG + "_peer","didCallEndWithReason EnumType.CallEndReason=" + var1?.name)
+
         runOnUiThread(Runnable {
             when (var1) {
                 CallEndReason.Busy -> {
@@ -457,6 +461,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener, CallSessionCal
     }
 
     override fun didUserLeave(userId: String?) {
+        Log.d(TAG + "_peer","didUserLeave userId=" + userId)
         gEngineKit?.endCall()
         runOnUiThread {
             showMessage("用户 $userId 离开")

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

@@ -63,7 +63,11 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val context: Contex
 
             binding.eliEventTime.text = TimeTransition().stampToDate(itemData.createDate*1000)
             binding.eliRoomName.text = itemData.fromFrameFullName
-            binding.eliMemberName.text = itemData.fromMemberName
+            if (itemData.fromDeviceMemberId == Constants.memberId){
+                binding.eliMemberName.text = itemData.toMemberName
+            } else {
+                binding.eliMemberName.text = itemData.fromMemberName
+            }
 
             when (itemData.actionType){
                 TcpType.EVENT.name->{
@@ -139,8 +143,14 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val context: Contex
 
             binding.eliCallout.setOnClickListener {
                 loadingDialog.show()
-                val tcpModel = VoiceUtil.voiceCall(Constants.deviceId, itemData.fromDeviceId)
-                TcpClient.getInstance().sendMsg(tcpModel.toJson())
+                if (itemData.fromDeviceMemberId == Constants.memberId){
+                    val tcpModel = VoiceUtil.voiceCall(Constants.deviceId, itemData.toDeviceId)
+                    TcpClient.getInstance().sendMsg(tcpModel.toJson())
+                } else {
+                    val tcpModel = VoiceUtil.voiceCall(Constants.deviceId, itemData.fromDeviceId)
+                    TcpClient.getInstance().sendMsg(tcpModel.toJson())
+                }
+
                 Handler().postDelayed({
                     loadingDialog.dismiss()
                 },2000)

+ 21 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/TcpClientHandler.java

@@ -2,8 +2,13 @@ package com.wdkl.ncs.android.middleware.tcp;
 
 import android.util.Log;
 
+import com.google.gson.FieldNamingPolicy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import com.wdkl.ncs.android.component.nursehome.common.Constants;
 import com.wdkl.ncs.android.lib.utils.AppTool;
+import com.wdkl.ncs.android.middleware.api.ApiManager;
+import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceUtil;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
@@ -142,7 +147,22 @@ public class TcpClientHandler extends SimpleChannelInboundHandler<String> {
             //超时3次,其它处理
             Log.i(TAG,"TcpClientHandler 重新连接"+(retryTimes-1)+"次,结束");
             retryTimes = 0;
-            //todo: 从API获取新的serverIP和serverPort,全新连接
+
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    while (!TcpClientHandler.connected) {
+                        if (TcpClient.getInstance().channel == null || !TcpClient.getInstance().channel.isActive()) {
+                            TcpClient.getInstance().init(Constants.Companion.getTcpServer(), Constants.Companion.getTcpPort(), Constants.Companion.getHeartBeat());
+                            try {
+                                Thread.sleep(10 * 60 * 1000);   //每10分钟重试
+                            } catch (InterruptedException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                }
+            }).start();
             //TcpClient.getInstance().init();
             return;
         }

+ 14 - 0
readme.md

@@ -26,6 +26,20 @@
 
 ---
 
+## [1.1.23] version 42 - 2020-08-06
+### Fixed
+- 修复若干BUG
+
+---
+
+## [1.1.22] version 41 - 2020-08-06
+### Fixed
+- 修复若干BUG
+### Changed
+- 超出连接次数时,每10分钟再次重连tcp
+
+---
+
 ## [1.1.21] version 40 - 2020-08-06
 ### Fixed
 - 通话逻辑修改