|
@@ -7,14 +7,10 @@ import android.content.BroadcastReceiver
|
|
|
import android.content.Context
|
|
|
import android.content.Intent
|
|
|
import android.content.IntentFilter
|
|
|
-import android.graphics.Color
|
|
|
import android.net.ConnectivityManager
|
|
|
import android.net.Uri
|
|
|
import android.net.wifi.WifiManager
|
|
|
-import android.os.BatteryManager
|
|
|
-import android.os.Build
|
|
|
-import android.os.Bundle
|
|
|
-import android.os.Environment
|
|
|
+import android.os.*
|
|
|
import android.provider.Settings
|
|
|
import android.text.TextUtils
|
|
|
import android.util.Log
|
|
@@ -32,22 +28,18 @@ import com.google.common.base.Strings
|
|
|
import com.google.gson.Gson
|
|
|
import com.wdkl.ncs.android.component.nursehome.BuildConfig
|
|
|
import com.wdkl.ncs.android.component.nursehome.R
|
|
|
-import com.wdkl.ncs.android.component.nursehome.databinding.ActivityNewNurseHomeBinding
|
|
|
import com.wdkl.ncs.android.component.nursehome.databinding.NurseMainDormBinding
|
|
|
import com.wdkl.ncs.android.component.nursehome.dorm.*
|
|
|
import com.wdkl.ncs.android.component.nursehome.fragment.*
|
|
|
import com.wdkl.ncs.android.component.nursehome.hardware.HardWareFactroy
|
|
|
import com.wdkl.ncs.android.component.nursehome.helper.SoundPoolManager
|
|
|
import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
|
|
|
-import com.wdkl.ncs.android.component.nursehome.led.LedItem
|
|
|
import com.wdkl.ncs.android.component.nursehome.led.LedManagerUtils
|
|
|
import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
|
|
|
import com.wdkl.ncs.android.component.nursehome.sip.callback.PhoneCallback
|
|
|
import com.wdkl.ncs.android.component.nursehome.sip.core.LinphoneManager
|
|
|
import com.wdkl.ncs.android.component.nursehome.util.*
|
|
|
import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitCallFragment
|
|
|
-import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitMainFragment
|
|
|
-import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitSetFragment
|
|
|
import com.wdkl.ncs.android.component.nursehome.visit.tcp.VisitTcpClient
|
|
|
import com.wdkl.ncs.android.component.nursehome.window.ImPlayDialogHelper
|
|
|
import com.wdkl.ncs.android.component.nursehome.window.IncidentWindow
|
|
@@ -55,13 +47,9 @@ import com.wdkl.ncs.android.component.nursehome.window.IncidentWindow2
|
|
|
import com.wdkl.ncs.android.lib.base.BaseActivity
|
|
|
import com.wdkl.ncs.android.lib.base.BaseApplication
|
|
|
import com.wdkl.ncs.android.lib.core.locale.LocaleMangerUtils
|
|
|
-import com.wdkl.ncs.android.lib.core.locale.SettingConfigNew
|
|
|
import com.wdkl.ncs.android.lib.utils.*
|
|
|
import com.wdkl.ncs.android.middleware.common.Constant
|
|
|
import com.wdkl.ncs.android.middleware.common.MessageEvent
|
|
|
-import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
|
-import com.wdkl.ncs.android.middleware.dao.DaoManager
|
|
|
-import com.wdkl.ncs.android.middleware.dao.entity.LedDeviceInfoBean
|
|
|
import com.wdkl.ncs.android.middleware.entity.BringItem
|
|
|
import com.wdkl.ncs.android.middleware.entity.CallingItem
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.nursehome.NurseHomeActivityContract
|
|
@@ -90,7 +78,6 @@ import com.wdkl.ncs.android.middleware.utils.StringUtil
|
|
|
import com.wdkl.ncs.janus.util.JanusConstant
|
|
|
import kotlinx.android.synthetic.main.nurse_main_dorm.*
|
|
|
import kotlinx.android.synthetic.main.view_title_layout.*
|
|
|
-import kotlinx.android.synthetic.main.view_title_layout.view_title_layout_iv_sip
|
|
|
import org.greenrobot.eventbus.EventBus
|
|
|
import org.greenrobot.eventbus.Subscribe
|
|
|
import org.greenrobot.eventbus.ThreadMode
|
|
@@ -98,14 +85,12 @@ import org.linphone.core.Call
|
|
|
import org.linphone.core.RegistrationState
|
|
|
import org.linphone.core.TransportType
|
|
|
import serialporttest.utils.SerialPortUtilHost
|
|
|
-import java.io.File
|
|
|
-import java.io.FileOutputStream
|
|
|
-import java.io.PrintWriter
|
|
|
import java.util.*
|
|
|
import java.util.concurrent.Executors
|
|
|
import java.util.concurrent.ScheduledExecutorService
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
import kotlin.collections.ArrayList
|
|
|
+
|
|
|
/**/
|
|
|
|
|
|
/**
|
|
@@ -171,8 +156,8 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
var brIngList = ArrayList<BringItem>()
|
|
|
|
|
|
// 添加字符串到 brIngList 中
|
|
|
- fun addTobrIngList(id: String,bid: String) {
|
|
|
- val item = BringItem(bid,id)
|
|
|
+ fun addTobrIngList(id: String, bid: String) {
|
|
|
+ val item = BringItem(bid, id)
|
|
|
brIngList.add(item)
|
|
|
}
|
|
|
|
|
@@ -514,10 +499,10 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
switchFragment(R.id.callingbed_main_frame, WorkFragment(), WorkFragment)
|
|
|
}
|
|
|
}
|
|
|
- //iot设备
|
|
|
+ //广播
|
|
|
dorm_iot_but.setOnClickListener {
|
|
|
- if (!SystemSettingsFragment.equals(curFragment)) {
|
|
|
- switchFragment(R.id.callingbed_main_frame, IotDeviceFragment(), IotDeviceFragment)
|
|
|
+ if (!BroadcastNewFragment.equals(curFragment)) {
|
|
|
+ switchFragment(R.id.callingbed_main_frame, BroadcastNewFragment(), BroadcastNewFragment)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -530,6 +515,7 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
fun showThemeSet() {
|
|
|
if (!dormThemeFragment.equals(curFragment)) {
|
|
|
switchFragment(R.id.callingbed_main_frame, DormThemeFragment(), dormThemeFragment)
|
|
@@ -928,20 +914,20 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
|
|
|
//通知设备切换在线模式
|
|
|
UdpSendUtil.getInstance().sendUdpData(
|
|
|
- UdpIndex.SERVER_MODE_ONLINE,
|
|
|
- Constant.part_name,
|
|
|
- "",
|
|
|
- "",
|
|
|
- Constant.DEVICE_REGISTER_ID,
|
|
|
- "",
|
|
|
- "",
|
|
|
- "",
|
|
|
- "",
|
|
|
- "",
|
|
|
- "",
|
|
|
- Constant.DEVICE_ID,
|
|
|
- -1,
|
|
|
- Constant.PART_ID
|
|
|
+ UdpIndex.SERVER_MODE_ONLINE,
|
|
|
+ Constant.part_name,
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ Constant.DEVICE_REGISTER_ID,
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ "",
|
|
|
+ Constant.DEVICE_ID,
|
|
|
+ -1,
|
|
|
+ Constant.PART_ID
|
|
|
)
|
|
|
}
|
|
|
}
|
|
@@ -1078,8 +1064,8 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
frameName = item.interactionVO.fromFrameFullName.replace("-", "")
|
|
|
}
|
|
|
val text = BaseApplication.appContext.getString(
|
|
|
- R.string.voice_call_speech,
|
|
|
- frameName
|
|
|
+ R.string.voice_call_speech,
|
|
|
+ frameName
|
|
|
)
|
|
|
SpeechUtil.getInstance().removeSpeak(text)
|
|
|
} else {
|
|
@@ -1337,7 +1323,8 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
Constant.EVENT_TCP_MSG -> {
|
|
|
val tcpModel = messageEvent.getMessage() as TcpModel
|
|
|
Log.e(TAG, "收到tcp消息: " + tcpModel.getType() + " " + tcpModel.getAction())
|
|
|
- if (tcpModel.getType() == TcpType.VOICE) {
|
|
|
+
|
|
|
+ if (tcpModel.getType() == TcpType.VOICE) {
|
|
|
if (tcpModel.action == TcpAction.VoiceAction.VCALL) {
|
|
|
val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
//视频通话请求
|
|
@@ -1349,7 +1336,7 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
val callTcp = VoiceUtil.voiceCalling(tcpModel.tid, Constant.DEVICE_ID, tcpModel.fromId, interactionVO.id)
|
|
|
TcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
return
|
|
|
- } else {
|
|
|
+ }else {
|
|
|
//返回呼叫成功tcp
|
|
|
val responseTcpModel = VoiceUtil.voiceSuccess(tcpModel.tid, tcpModel.toId, tcpModel.fromId)
|
|
|
TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
|
|
@@ -1385,10 +1372,18 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
Constant.CALL_STATE = Constant.CALL_V_INCOMING
|
|
|
|
|
|
acceptCall(interactionVO, false, tcpModel.tid)
|
|
|
-
|
|
|
EventBus.getDefault().post(MessageEvent("finish", Constant.EVENT_FINISHh))
|
|
|
}
|
|
|
- } else if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {
|
|
|
+ }
|
|
|
+ else if (tcpModel.action == TcpAction.VoiceAction.CALL) {
|
|
|
+ showHome()
|
|
|
+ // 延迟1秒发送数据
|
|
|
+ Handler(Looper.getMainLooper()).postDelayed({
|
|
|
+ // 检查呼叫是否已经接听中或通话中
|
|
|
+ EventBus.getDefault().post(MessageEvent(tcpModel, Constant.EVENT_DORM_CALLING))
|
|
|
+ }, 500) // 延迟1秒(1000毫秒)
|
|
|
+ }
|
|
|
+ else if (tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS) {
|
|
|
//服务器返回的呼叫成功tcp
|
|
|
val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
Constant.interactionId = interactionVO.id
|
|
@@ -1822,15 +1817,15 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
if (!SettingConfig.getNbVoiceWarning(activity)) {
|
|
|
return
|
|
|
}
|
|
|
- if (SettingConfig.getTtsMode(activity) != SettingConfig.TTS_ON) {
|
|
|
- SoundPoolManager.getInstance().playSound(5, 1.0f, 1.0f, 0)
|
|
|
- } else {
|
|
|
- if (tcpModel.data != null && tcpModel.data is String) {
|
|
|
- val text = tcpModel.data as String
|
|
|
- SpeechUtil.getInstance().stopSpeak(true)
|
|
|
- SpeechUtil.getInstance().speakSingleText(text)
|
|
|
- }
|
|
|
+ if (SettingConfig.getTtsMode(activity) != SettingConfig.TTS_ON) {
|
|
|
+ SoundPoolManager.getInstance().playSound(5, 1.0f, 1.0f, 0)
|
|
|
+ } else {
|
|
|
+ if (tcpModel.data != null && tcpModel.data is String) {
|
|
|
+ val text = tcpModel.data as String
|
|
|
+ SpeechUtil.getInstance().stopSpeak(true)
|
|
|
+ SpeechUtil.getInstance().speakSingleText(text)
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
} else if (tcpModel.type == TcpType.ENTRACEGUARD) {
|
|
|
if (tcpModel.action == TcpAction.EntraceGuardAction.STRANGER) {
|
|
@@ -1956,10 +1951,10 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
val json = JSON.parseObject(interactionVO.data.toString())
|
|
|
|
|
|
- if(json.containsKey("bId")){
|
|
|
+ if (json.containsKey("bId")) {
|
|
|
var bid = json.getString("bId")
|
|
|
- addTobrIngList(interactionVO.id.toString(),bid)
|
|
|
- }else{
|
|
|
+ addTobrIngList(interactionVO.id.toString(), bid)
|
|
|
+ } else {
|
|
|
//喊话广播
|
|
|
Constant.bcInteractionId = interactionVO.id
|
|
|
}
|
|
@@ -1978,11 +1973,11 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
if (tcpModel.action == TcpAction.RoomCheckAction.START) {
|
|
|
//巡房开始 --
|
|
|
// RoundList.add(frameId.toString())
|
|
|
- EventBus.getDefault().post(MessageEvent(frameId.toString(), Constant.EVENT_ROUND_HOUSE,clerkName.toString()))
|
|
|
+ EventBus.getDefault().post(MessageEvent(frameId.toString(), Constant.EVENT_ROUND_HOUSE, clerkName.toString()))
|
|
|
} else if (tcpModel.action == TcpAction.RoomCheckAction.END) {
|
|
|
//巡房结束
|
|
|
// removeValueFromViditingList(frameId.toString())
|
|
|
- EventBus.getDefault().post(MessageEvent(frameId.toString(), Constant.EVENT_ROUND_HOUSE,""))
|
|
|
+ EventBus.getDefault().post(MessageEvent(frameId.toString(), Constant.EVENT_ROUND_HOUSE, ""))
|
|
|
}
|
|
|
} else if (tcpModel.type == TcpType.REMOTE_VISIT) {
|
|
|
if (tcpModel.action == TcpAction.REMOTEVISITAction.CALL) {
|
|
@@ -1990,78 +1985,78 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
val json = JSON.parseObject(tcpModel.data.toString())
|
|
|
val visitid = json.getString("id")
|
|
|
val toId = json.getString("callBedId")
|
|
|
- val callTcp = SwVisitUtil.visitCall(Constant.DEVICE_ID,toId.toInt() ,visitid)
|
|
|
+ val callTcp = SwVisitUtil.visitCall(Constant.DEVICE_ID, toId.toInt(), visitid)
|
|
|
TcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
viditingList.add(visitid.toString())
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
} else if (tcpModel.action == TcpAction.REMOTEVISITAction.FAILED) {
|
|
|
//收到 分机不在线,通知界面,转接给小程序服务器
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
- val callTcp = SwVisitUtil.visitHandoff( visitid)
|
|
|
+ val callTcp = SwVisitUtil.visitHandoff(visitid)
|
|
|
VisitTcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
- if (skyCallFragment is VisitCallFragment){
|
|
|
+ if (skyCallFragment is VisitCallFragment) {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_REMOVE_CALL_FRAGMENT))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
}
|
|
|
- }else if (tcpModel.action == TcpAction.REMOTEVISITAction.CANCEL) {
|
|
|
+ } else if (tcpModel.action == TcpAction.REMOTEVISITAction.CANCEL) {
|
|
|
//收到 小程序取消 通知页面 比对id,取消探视(或者刷新页面)直接转给分机
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
- val callTcp = SwVisitUtil.visitCancel(Constant.DEVICE_ID,visitid)
|
|
|
+ val callTcp = SwVisitUtil.visitCancel(Constant.DEVICE_ID, visitid)
|
|
|
TcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
- if (skyCallFragment is VisitCallFragment){
|
|
|
+ if (skyCallFragment is VisitCallFragment) {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_REMOVE_CALL_FRAGMENT))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
}
|
|
|
|
|
|
- }else if (tcpModel.action == TcpAction.REMOTEVISITAction.HANDOFF) {
|
|
|
+ } else if (tcpModel.action == TcpAction.REMOTEVISITAction.HANDOFF) {
|
|
|
//收到 挂断 fromId不为null的是分机发过来的,为null的是 直接转给分机并且通知主机界面关闭
|
|
|
- if(tcpModel.tid!=null){
|
|
|
+ if (tcpModel.tid != null) {
|
|
|
//分机发过来的
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
val callTcp = SwVisitUtil.visitWxHANDOFF(visitid)
|
|
|
VisitTcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//小程序发过来的
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
- val callTcp = SwVisitUtil.visitHangup(Constant.DEVICE_ID,visitid)
|
|
|
+ val callTcp = SwVisitUtil.visitHangup(Constant.DEVICE_ID, visitid)
|
|
|
TcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
}
|
|
|
- if (skyCallFragment is VisitCallFragment){
|
|
|
+ if (skyCallFragment is VisitCallFragment) {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_REMOVE_CALL_FRAGMENT))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
}
|
|
|
- }else if (tcpModel.action == TcpAction.REMOTEVISITAction.DATA) {
|
|
|
+ } else if (tcpModel.action == TcpAction.REMOTEVISITAction.DATA) {
|
|
|
//收到 通知刷新预约界面,左侧消息小红点。
|
|
|
SoundPoolManager.getInstance().playSound(6, 1.0f, 1.0f, 0)
|
|
|
EventBus.getDefault().post(MessageEvent("refresh", Constant.EVENT_VISIT_list))
|
|
|
|
|
|
- }else if (tcpModel.action == TcpAction.REMOTEVISITAction.CALLING) {
|
|
|
+ } else if (tcpModel.action == TcpAction.REMOTEVISITAction.CALLING) {
|
|
|
//收到 通知小程序 分机正在通话中
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
val callTcp = SwVisitUtil.visitIngCall(visitid)
|
|
|
VisitTcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
- if (skyCallFragment is VisitCallFragment){
|
|
|
+ if (skyCallFragment is VisitCallFragment) {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_REMOVE_CALL_FRAGMENT))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
}
|
|
|
- }else if (tcpModel.action == TcpAction.REMOTEVISITAction.REJECT) {
|
|
|
+ } else if (tcpModel.action == TcpAction.REMOTEVISITAction.REJECT) {
|
|
|
//收到 通知小程序 分机拒绝
|
|
|
val visitid = tcpModel.data.toString()
|
|
|
val callTcp = SwVisitUtil.visitreject(visitid)
|
|
|
VisitTcpClient.getInstance().sendMsg(callTcp.toJson())
|
|
|
removeValueFromViditingList(visitid.toString())
|
|
|
- if (skyCallFragment is VisitCallFragment){
|
|
|
+ if (skyCallFragment is VisitCallFragment) {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_REMOVE_CALL_FRAGMENT))
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
EventBus.getDefault().post(MessageEvent("BackCall", Constant.EVENT_VISIT_list))
|
|
|
}
|
|
|
}
|
|
@@ -2126,7 +2121,7 @@ class NurseHome2Activity : BaseActivity<NurseHomeActivityPresenter, NurseMainDo
|
|
|
}
|
|
|
|
|
|
Constant.EVENT_V_br_set -> {
|
|
|
- destroyFragment(R.id.callingbed_main_frame,curFragment)
|
|
|
+ destroyFragment(R.id.callingbed_main_frame, curFragment)
|
|
|
supportFragmentManager.inTransaction {
|
|
|
// curFragment = BroadcastSetFragment
|
|
|
val bundle = Bundle()
|