|
@@ -1,5 +1,6 @@
|
|
|
package com.wdkl.ncs.android.component.nursehome.activity
|
|
|
|
|
|
+import android.app.Dialog
|
|
|
import android.app.NotificationManager
|
|
|
import android.content.BroadcastReceiver
|
|
|
import android.content.Context
|
|
@@ -14,15 +15,21 @@ import android.support.v4.app.FragmentManager
|
|
|
import android.support.v4.app.FragmentTransaction
|
|
|
import android.text.TextUtils
|
|
|
import android.util.Log
|
|
|
+import android.view.LayoutInflater
|
|
|
import android.view.View
|
|
|
+import android.widget.ImageView
|
|
|
+import android.widget.LinearLayout
|
|
|
+import android.widget.RelativeLayout
|
|
|
import com.enation.javashop.android.jrouter.external.annotation.Router
|
|
|
import com.enation.javashop.net.engine.model.NetState
|
|
|
+import com.google.gson.Gson
|
|
|
import com.starrtc.demo.demo.MLOC
|
|
|
import com.starrtc.demo.demo.voip.VoipActivity
|
|
|
import com.starrtc.demo.demo.voip.VoipAudioActivity
|
|
|
import com.wdkl.core.consts.Urls
|
|
|
import com.wdkl.core.socket.IUserState
|
|
|
import com.wdkl.core.socket.SocketManager
|
|
|
+import com.wdkl.core.voip.CallSingleActivity
|
|
|
import com.wdkl.ncs.android.component.nursehome.R
|
|
|
import com.wdkl.ncs.android.component.nursehome.SipUtil.SipCallBack
|
|
|
import com.wdkl.ncs.android.component.nursehome.SipUtil.SipHelperUtil
|
|
@@ -31,6 +38,7 @@ import com.wdkl.ncs.android.component.nursehome.databinding.ActivityNurseHomeBin
|
|
|
import com.wdkl.ncs.android.component.nursehome.fragment.*
|
|
|
import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
|
|
|
import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
|
|
|
+import com.wdkl.ncs.android.component.nursehome.util.CallDialogHelper
|
|
|
import com.wdkl.ncs.android.component.nursehome.util.ScreenManagerUtil
|
|
|
import com.wdkl.ncs.android.component.nursehome.util.TimeTransition
|
|
|
import com.wdkl.ncs.android.component.nursehome.util.VoiceManagerUtil
|
|
@@ -44,8 +52,13 @@ import com.wdkl.ncs.android.middleware.model.ChildCategoryShell
|
|
|
import com.wdkl.ncs.android.middleware.model.bean.SettingConfiguration
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.CallingHistoryVO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
|
|
|
+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.tcp.enums.TcpType
|
|
|
import com.wdkl.ncs.android.middleware.utils.MessageEvent
|
|
|
import kotlinx.android.synthetic.main.activity_nurse_home.*
|
|
|
import kotlinx.android.synthetic.main.right_list.*
|
|
@@ -70,6 +83,10 @@ class NurseHomeActivity : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
|
|
|
|
|
|
var receiver :TimeReceiver? = null
|
|
|
|
|
|
+ //来电设备id
|
|
|
+ //private var fromId: Int = -1
|
|
|
+ //Interaction ID
|
|
|
+ //private var interactionId: Int = -1
|
|
|
|
|
|
/**
|
|
|
* 提供layoutID
|
|
@@ -518,12 +535,76 @@ fun call(tyte:Int){
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun onMoonEvent(messageEvent: MessageEvent) {
|
|
|
- Log.e(TAG,"收到tcp消息")
|
|
|
- var messageEvent = messageEvent.getMessage() as TcpModel
|
|
|
+ when (messageEvent.type) {
|
|
|
+ Constants.EVENT_TCP_MSG -> {
|
|
|
+ var tcpModel = messageEvent.getMessage() as TcpModel
|
|
|
+ var interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
+ Log.e(TAG, "收到tcp消息" + tcpModel.getType() + " " + tcpModel.getAction())
|
|
|
+ if (tcpModel.getType() == TcpType.VOICE) {
|
|
|
+ if (tcpModel.getAction() == TcpAction.VoiceAction.CALL) {//收到新的呼叫
|
|
|
+ Constants.fromId = tcpModel.fromId
|
|
|
+ Constants.interactionId = interactionVO.id
|
|
|
+
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ CallDialogHelper.showCallDialog(this@NurseHomeActivity, 1, View.OnClickListener {
|
|
|
+ //呼出取消
|
|
|
+ }, View.OnClickListener {
|
|
|
+ //来电接听
|
|
|
+ DeviceChannel.calling = true
|
|
|
+ VoiceUtil.acceptAudioCall(Integer.parseInt(Constants.ids), Constants.fromId, Constants.interactionId)
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ }, View.OnClickListener {
|
|
|
+ //来电拒接
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ VoiceUtil.rejectAudioCall(Integer.parseInt(Constants.ids), Constants.fromId, Constants.interactionId)
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ })
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT) {//对方接受语音
|
|
|
+ Log.e(TAG, "对方接受语音" + tcpModel.toJson())
|
|
|
+ Constants.interactionId = interactionVO.id
|
|
|
+ Constants.fromId = tcpModel.fromId
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+
|
|
|
+ DeviceChannel.calling = true
|
|
|
+ if (Constants.call_type == 1) {
|
|
|
+ CallSingleActivity.openActivity(activity, interactionVO.toSipId, true, interactionVO.toSipId, false, false)
|
|
|
+ } else {
|
|
|
+ CallSingleActivity.openActivity(activity, interactionVO.toSipId, true, interactionVO.toSipId, true, false)
|
|
|
+ }
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.REJECT) {//对方拒绝
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL) {//对方取消
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING) {//对方通话中
|
|
|
+ showMessage("对方忙线中")
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.FAILED) {//对方不在线 呼叫失败
|
|
|
+ showMessage("对方离线或不存在,呼叫失败")
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF) {//对方挂断
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ } else if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {//服务器返回的呼叫成功tcp
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ CallDialogHelper.showCallDialog(this@NurseHomeActivity, 0, View.OnClickListener {
|
|
|
+ //呼出取消
|
|
|
+ DeviceChannel.calling = false
|
|
|
+ VoiceUtil.cancelAudioCall(Integer.parseInt(Constants.ids), interactionVO.toDeviceId)
|
|
|
+ CallDialogHelper.dismissCallDialog()
|
|
|
+ }, View.OnClickListener {
|
|
|
+ //来电接听
|
|
|
+ }, View.OnClickListener {
|
|
|
+ //来电拒接
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-// if(messageEvent.getAction() === TcpAction.EventAction.KEY_CLICK){
|
|
|
-// Log.e(TAG,"收到tcp消息")
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
|