|
@@ -36,6 +36,7 @@ import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.DeviceRoomInfoVO
|
|
|
+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.VoiceUtil
|
|
@@ -193,23 +194,20 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
val time = System.currentTimeMillis()
|
|
|
if (time - clickTime > 2000) {
|
|
|
//防止重复点击
|
|
|
- if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
|
|
|
- //待机状态
|
|
|
- if (!TextUtils.isEmpty(Constant.SIP_ID)) {
|
|
|
- //没有摄像头则只能拨打语音
|
|
|
- if (Constant.supportCamera) {
|
|
|
- MenuDialog.build(this)
|
|
|
- .config(voiceCall = {
|
|
|
- startCall(Constant.VOICE_CALL)
|
|
|
- }, videoCall = {
|
|
|
- startCall(Constant.VIDEO_CALL)
|
|
|
- }).show()
|
|
|
- } else {
|
|
|
- startCall(Constant.VOICE_CALL)
|
|
|
- }
|
|
|
+ if (!TextUtils.isEmpty(Constant.SIP_ID)) {
|
|
|
+ //没有摄像头则只能拨打语音
|
|
|
+ if (Constant.supportCamera) {
|
|
|
+ MenuDialog.build(this)
|
|
|
+ .config(voiceCall = {
|
|
|
+ startCall(Constant.VOICE_CALL)
|
|
|
+ }, videoCall = {
|
|
|
+ startCall(Constant.VIDEO_CALL)
|
|
|
+ }).show()
|
|
|
} else {
|
|
|
- showMessage("当前设备可能未注册或网络异常,不能呼叫")
|
|
|
+ startCall(Constant.VOICE_CALL)
|
|
|
}
|
|
|
+ } else {
|
|
|
+ showMessage("当前设备可能未注册或网络异常,不能呼叫")
|
|
|
}
|
|
|
|
|
|
clickTime = time
|
|
@@ -218,6 +216,30 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ room_action_call_bed.setOnClickListener {
|
|
|
+ if (Utils.getInBedVOS().size > 0) {
|
|
|
+ CallbedDialogHelper.showDialog(activity, object : CallbedDialogHelper.ClickListener {
|
|
|
+ override fun onVideoClick(bedVO: FrameBedVO?) {
|
|
|
+ if (bedVO != null && bedVO.bedDeviceId != null && !TextUtils.isEmpty(bedVO.customerName)) {
|
|
|
+ startCallBed(Constant.VIDEO_CALL, bedVO.bedDeviceId)
|
|
|
+ } else {
|
|
|
+ showMessage("床位未入住或未绑定设备,不能呼叫!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onVoiceClick(bedVO: FrameBedVO?) {
|
|
|
+ if (bedVO != null && bedVO.bedDeviceId != null && !TextUtils.isEmpty(bedVO.customerName)) {
|
|
|
+ startCallBed(Constant.VOICE_CALL, bedVO.bedDeviceId)
|
|
|
+ } else {
|
|
|
+ showMessage("床位未入住或未绑定设备,不能呼叫!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ showMessage("房间没有床位,不能呼叫!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
app_version.setOnLongClickListener {
|
|
|
AppInfoDialogHelper.showAppDialog(this@CallingdoorActivity,
|
|
|
{ dialog, which -> AppUpdateHelper.reboot(activity) },
|
|
@@ -470,6 +492,24 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //开始呼叫分机
|
|
|
+ fun startCallBed(type: Int, bedId: Int) {
|
|
|
+ //通话之前先判断webrtc socket和tcp是否连接正常,否则不能建立通话
|
|
|
+ if (SocketManager.getInstance().socketOpen() && Constant.TCP_CONNECTED) {
|
|
|
+ //去电界面
|
|
|
+ Constant.CALL_TYPE = type
|
|
|
+ Constant.CALL_STATE = Constant.CALL_OUTGOING
|
|
|
+ var fragment = SkyCallFragment()
|
|
|
+ var bundle = Bundle()
|
|
|
+ bundle.putInt("call_state", 2)
|
|
|
+ bundle.putInt("bed_id", bedId)
|
|
|
+ fragment.arguments = bundle
|
|
|
+ addCallFragment(fragment)
|
|
|
+ } else {
|
|
|
+ showMessage("通话服务或网络未连接,请检查网络稍后再试")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
|
fun onMoonEvent(messageEvent: MessageEvent) {
|
|
|
when (messageEvent.getType()) {
|