|
@@ -2,9 +2,11 @@ package com.wdkl.ncs.android.component.home.activity
|
|
|
|
|
|
import android.content.Intent
|
|
|
import android.graphics.Color
|
|
|
+import android.util.Log
|
|
|
import android.view.View
|
|
|
import com.enation.javashop.android.jrouter.external.annotation.Router
|
|
|
import com.enation.javashop.net.engine.model.NetState
|
|
|
+import com.google.gson.Gson
|
|
|
import com.wdkl.ncs.android.component.home.R
|
|
|
import com.wdkl.ncs.android.component.home.databinding.WatchActivityHomeBinding
|
|
|
import com.wdkl.ncs.android.component.home.launch.HomeLaunch
|
|
@@ -14,10 +16,19 @@ import com.wdkl.ncs.android.lib.utils.push
|
|
|
import com.wdkl.ncs.android.lib.utils.showMessage
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
|
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
|
|
|
+<<<<<<< HEAD
|
|
|
import com.wdkl.ncs.android.middleware.tcp.TcpClient
|
|
|
+=======
|
|
|
+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.VoiceUtil
|
|
|
+>>>>>>> 71a42c92efd855c2d6a4127d6a0cd4980eb7601d
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
|
+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
|
|
|
import kotlinx.android.synthetic.main.watch_activity_home.*
|
|
|
+import org.greenrobot.eventbus.EventBus
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
|
|
|
@@ -39,11 +50,17 @@ class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivity
|
|
|
|
|
|
Thread ( Runnable {
|
|
|
run {
|
|
|
+<<<<<<< HEAD
|
|
|
TcpClient.getInstance().init("192.168.1.138", 5080, 9)
|
|
|
// TcpClient.getInstance().init("47.106.200.55", 5080, 9)
|
|
|
}
|
|
|
}).start()
|
|
|
|
|
|
+=======
|
|
|
+ TcpClient.getInstance().init("192.168.1.138",5080,10)
|
|
|
+ }
|
|
|
+ }).start()
|
|
|
+>>>>>>> 71a42c92efd855c2d6a4127d6a0cd4980eb7601d
|
|
|
}
|
|
|
|
|
|
override fun bindEvent() {
|
|
@@ -98,11 +115,74 @@ class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivity
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // ====================================== 处理tcp
|
|
|
+ var calling :Boolean=false
|
|
|
+
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun onMoonEvent(messageEvent: MessageEvent) {
|
|
|
- var messageEvent = messageEvent.getMessage() as TcpModel
|
|
|
-// if(messageEvent.getAction() === TcpAction.EventAction.KEY_CLICK){
|
|
|
-// Log.e(TAG,"收到tcp消息")
|
|
|
-// }
|
|
|
+ if (messageEvent.type == 1) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var tcpModel = messageEvent.getMessage() as TcpModel
|
|
|
+ var responseTcpModel :TcpModel
|
|
|
+
|
|
|
+ when (tcpModel.getType()) {
|
|
|
+ TcpType.CALLBACK -> if (tcpModel.getAction() === TcpAction.CallbackAction.SUCCESS) {
|
|
|
+ //todo: 刷新呼叫记录列表
|
|
|
+
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.CallbackAction.FAILED) {
|
|
|
+ //呼叫失败
|
|
|
+ }
|
|
|
+ TcpType.VOICE -> if (tcpModel.getAction() === TcpAction.VoiceAction.CALL) { //语音呼入
|
|
|
+ val interactionVO = Gson().fromJson<InteractionVO>(tcpModel.getData().toString(), InteractionVO::class.java)
|
|
|
+ //判断当前是否通话
|
|
|
+ // 通话中
|
|
|
+ if (calling) {
|
|
|
+ responseTcpModel = VoiceUtil.voiceCalling(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
|
|
|
+ //给服务器发送正在通话中 tcp
|
|
|
+ TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
|
|
|
+ } else {
|
|
|
+ responseTcpModel = VoiceUtil.voiceSuccess(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
|
|
|
+ TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
|
|
|
+
|
|
|
+ //界面呈现
|
|
|
+ AppTool.Time.delay(300){
|
|
|
+ var intent = Intent()
|
|
|
+ intent.setClass(this,RTCVoipAudioRingingActivity::class.java)
|
|
|
+ intent.putExtra("targetId", interactionVO.fromSipId)
|
|
|
+ intent.putExtra("TcpModel",tcpModel)
|
|
|
+ startActivity(intent)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.ACCEPT) { //我方呼出,对方接受
|
|
|
+ //todo:调用通话中界面;建立数据通话
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.REJECT) { //我方呼出,对方拒绝
|
|
|
+ //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方拒绝并停留3秒,结束至正常界面
|
|
|
+
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.CALLING) { //我方呼出,对方通话中
|
|
|
+ //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方占线并停留3秒,结束至正常界面;更新左侧
|
|
|
+
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.FAILED) { //我方呼出,对方不在线,设备离线或其它错误
|
|
|
+ //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方离线并停留3秒,结束至正常界面;更新左侧
|
|
|
+
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.HANDOFF) { //对方挂断,不论我方呼出或呼入
|
|
|
+ //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方已挂断并停留3秒,结束至正常界面;更新左侧
|
|
|
+
|
|
|
+ } else if (tcpModel.getAction() === TcpAction.VoiceAction.SUCCESS) {
|
|
|
+ //todo 更新呼出的TcpModel,data放置vo
|
|
|
+ }
|
|
|
+ TcpType.VIDEO -> {
|
|
|
+ }
|
|
|
+ TcpType.IM -> if (tcpModel.getAction() === TcpAction.IMAction.MSG) {
|
|
|
+ //todo: 使用通话中界面,显示有语音留言,停留3秒,结束至正常界面
|
|
|
+
|
|
|
+ }
|
|
|
+ TcpType.EVENT -> if (tcpModel.getAction() === TcpAction.EventAction.KEY_CLICK) { //有新事件过来
|
|
|
+ //todo: 服务端通过data给出具体的事件名称放置data。使用通话中界面,显示事件名称,停留3秒,结束至正常界面
|
|
|
+ Log.e(TAG, "收到事件tcp")
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|