|
@@ -52,6 +52,7 @@ import com.wdkl.ncs.android.middleware.model.vo.BedDeviceInfoVO
|
|
|
import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
|
|
|
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.OtherUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.VideoUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
|
|
|
import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
|
|
@@ -65,6 +66,8 @@ import org.greenrobot.eventbus.ThreadMode
|
|
|
import serialporttest.utils.SerialPortUtil
|
|
|
import java.io.DataOutputStream
|
|
|
import java.io.IOException
|
|
|
+import java.io.PrintWriter
|
|
|
+import java.lang.Process
|
|
|
import java.lang.ref.WeakReference
|
|
|
|
|
|
|
|
@@ -120,6 +123,8 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
//呼叫护士
|
|
|
//private val callNurseFragment = "call_nurse_fragment"
|
|
|
|
|
|
+ private val uninstallApk = true
|
|
|
+
|
|
|
companion object {
|
|
|
private const val TIME_WHAT = 1000
|
|
|
}
|
|
@@ -151,10 +156,12 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
//音频初始化
|
|
|
SoundPoolHelper.getInstance().init(applicationContext)
|
|
|
|
|
|
- AppTool.Time.delay(2000) {
|
|
|
+ AppTool.Time.delay(1500) {
|
|
|
//打开手柄mic
|
|
|
SerialPortHelper.setHandsMIC(true)
|
|
|
SerialPortHelper.setSosLight("0")
|
|
|
+ //初始化灭掉护理灯
|
|
|
+ SerialPortHelper.dismissNurseLedLight()
|
|
|
}
|
|
|
|
|
|
EventBus.getDefault().register(this)
|
|
@@ -170,7 +177,17 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
switchToMainFragment()
|
|
|
|
|
|
//默认打开网络调试
|
|
|
- openNetwrokDebug()
|
|
|
+ //openNetwrokDebug()
|
|
|
+
|
|
|
+ //卸载原来二代系统床头分机apk
|
|
|
+ if (uninstallApk) {
|
|
|
+ //卸载老的5寸分机app
|
|
|
+ Thread {
|
|
|
+ if (checkAppExist()) {
|
|
|
+ uninstallApp()
|
|
|
+ }
|
|
|
+ }.start()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//开启网络调试
|
|
@@ -204,6 +221,35 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
os.flush()
|
|
|
}
|
|
|
|
|
|
+ private fun checkAppExist() : Boolean {
|
|
|
+ val packageInfo = packageManager.getInstalledPackages(0)
|
|
|
+ var appExist = false
|
|
|
+ for (pInfo in packageInfo) {
|
|
|
+ val appName = "com.wdkl.callingbed"
|
|
|
+ if (appName == pInfo.packageName) {
|
|
|
+ appExist = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Log.e("callingbed", "callingbed app exist: " + appExist)
|
|
|
+ return appExist
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun uninstallApp() {
|
|
|
+ val process: Process
|
|
|
+ val printWriter: PrintWriter
|
|
|
+ try {
|
|
|
+ process = Runtime.getRuntime().exec("su")
|
|
|
+ printWriter = PrintWriter(process.outputStream)
|
|
|
+ printWriter.println("pm uninstall com.wdkl.callingbed")
|
|
|
+ printWriter.flush()
|
|
|
+ printWriter.close()
|
|
|
+ Log.e("uninstall", "uninstall end")
|
|
|
+ } catch (e: java.lang.Exception) {
|
|
|
+ Log.e("uninstall", "uninstall e:" + e.message)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun bindEvent() {
|
|
|
}
|
|
|
|
|
@@ -238,9 +284,6 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
nurseConfigAdpter = NurseConfigAdpter(activity, configList)
|
|
|
rv_left_list.layoutManager = linearLayout
|
|
|
rv_left_list.adapter = nurseConfigAdpter
|
|
|
-
|
|
|
- //初始化灭掉护理灯
|
|
|
- SerialPortHelper.dismissNurseLedLight()
|
|
|
}
|
|
|
|
|
|
//数据加载错误
|
|
@@ -381,7 +424,11 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
override fun updateNurseConfig(list: List<NurseConfigDto>) {
|
|
|
if (list.isNotEmpty()) {
|
|
|
for ((index, e) in list.withIndex()) {
|
|
|
- configList.set(index, e)
|
|
|
+ if (index < configList.size) {
|
|
|
+ configList.set(index, e)
|
|
|
+ } else {
|
|
|
+ configList.add(e)
|
|
|
+ }
|
|
|
}
|
|
|
nurseConfigAdpter.updateData(configList)
|
|
|
//护理灯刷新
|
|
@@ -719,7 +766,17 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
backTimeout = 0
|
|
|
if (isVisible(right_menu)) {
|
|
|
hideRightMenu(true)
|
|
|
- //showMessage("增援请求已发送!")
|
|
|
+ showMessage("增援请求已发送!")
|
|
|
+ if (Constant.TCP_CONNECTED) {
|
|
|
+ if (Constant.DEVICE_ID != -1) {
|
|
|
+ OtherUtil.sendReinforce(Constant.DEVICE_ID)
|
|
|
+ } else {
|
|
|
+ showMessage("没有设备id!")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ showMessage("网络异常,请求失败!")
|
|
|
+ }
|
|
|
+
|
|
|
//switchToFragment(R.id.callingbed_main_frame, SupportFragment(), supportFragment)
|
|
|
//SoundPoolHelper.getInstance().playSound(2)
|
|
|
} else {
|
|
@@ -888,25 +945,31 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
val tcpModel = messageEvent.message as TcpModel
|
|
|
Log.d("TCP", "received tcp action: " + tcpModel.action + ", type: " + tcpModel.type)
|
|
|
if (tcpModel.getType() == TcpType.VOICE) {
|
|
|
- val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
- if (tcpModel.action == TcpAction.VoiceAction.CALL) {
|
|
|
- Constant.fromId = tcpModel.fromId
|
|
|
- Constant.interactionId = interactionVO.id
|
|
|
- Constant.TARGET_SIP = interactionVO.fromSipId
|
|
|
- Constant.CALL_STATE = Constant.CALL_INCOMING
|
|
|
- //通话之前先判断webrtc socket是否连接上,否则不能建立通话
|
|
|
- if (Constant.TCP_CONNECTED && !TextUtils.isEmpty(Constant.SIP_ID)) {
|
|
|
- //来电界面
|
|
|
- var fragment = SkyCallFragment()
|
|
|
- var bundle = Bundle()
|
|
|
- bundle.putInt("call_state", 1)
|
|
|
- bundle.putSerializable("tcp_model", tcpModel)
|
|
|
- fragment.arguments = bundle
|
|
|
- addCallFragment(fragment)
|
|
|
- } else {
|
|
|
- showMessage("服务未连接或sipId为空")
|
|
|
- Constant.CALL_STATE = Constant.CALL_STANDBY
|
|
|
- VoiceUtil.rejectAudioCall(Constant.DEVICE_ID, Constant.fromId, Constant.interactionId)
|
|
|
+ if (tcpModel.data != null) {
|
|
|
+ val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
|
|
|
+ if (tcpModel.action == TcpAction.VoiceAction.CALL) {
|
|
|
+ Constant.fromId = tcpModel.fromId
|
|
|
+ Constant.interactionId = interactionVO.id
|
|
|
+ Constant.TARGET_SIP = interactionVO.fromSipId
|
|
|
+ Constant.CALL_STATE = Constant.CALL_INCOMING
|
|
|
+ //通话之前先判断webrtc socket是否连接上,否则不能建立通话
|
|
|
+ if (Constant.TCP_CONNECTED && !TextUtils.isEmpty(Constant.SIP_ID)) {
|
|
|
+ //来电界面
|
|
|
+ var fragment = SkyCallFragment()
|
|
|
+ var bundle = Bundle()
|
|
|
+ bundle.putInt("call_state", 1)
|
|
|
+ bundle.putSerializable("tcp_model", tcpModel)
|
|
|
+ fragment.arguments = bundle
|
|
|
+ addCallFragment(fragment)
|
|
|
+ } else {
|
|
|
+ showMessage("服务未连接或sipId为空")
|
|
|
+ Constant.CALL_STATE = Constant.CALL_STANDBY
|
|
|
+ VoiceUtil.rejectAudioCall(
|
|
|
+ Constant.DEVICE_ID,
|
|
|
+ Constant.fromId,
|
|
|
+ Constant.interactionId
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
} else if (tcpModel.type == TcpType.SIDE) {
|