|
@@ -15,6 +15,7 @@ import android.view.animation.AnimationUtils
|
|
|
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.app.ncs.callingbed.BuildConfig
|
|
|
//import com.wdkl.app.ncs.callingbed.sip.SipHelper
|
|
|
//import com.wdkl.app.ncs.callingbed.sip.SipStatus
|
|
|
//import com.vvsip.ansip.IVvsipServiceListener
|
|
@@ -34,7 +35,9 @@ import com.wdkl.core.socket.IUserState
|
|
|
import com.wdkl.core.socket.SocketManager
|
|
|
//import com.wdkl.app.ncs.sip.service.SipService
|
|
|
import com.wdkl.ncs.android.lib.base.BaseActivity
|
|
|
+import com.wdkl.ncs.android.lib.utils.AppTool
|
|
|
import com.wdkl.ncs.android.lib.utils.TimeHandle
|
|
|
+import com.wdkl.ncs.android.lib.utils.push
|
|
|
import com.wdkl.ncs.android.lib.utils.showMessage
|
|
|
import com.wdkl.ncs.android.lib.vo.filter
|
|
|
import com.wdkl.ncs.android.lib.widget.MenuDialog
|
|
@@ -43,6 +46,8 @@ import com.wdkl.ncs.android.middleware.common.MessageEvent
|
|
|
import com.wdkl.ncs.android.middleware.common.SipStatus
|
|
|
import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CallingbedActivityContract
|
|
|
import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.CallingbedActivityPresenter
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
|
|
|
+import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.NurseConfigDto
|
|
|
import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
|
|
@@ -88,12 +93,14 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
private var configList = ArrayList<NurseConfigDto>()
|
|
|
private var sipServiceRunning :Boolean = false
|
|
|
private var initialized :Boolean = false
|
|
|
+ private var updating :Boolean = false
|
|
|
|
|
|
//通话界面fragment
|
|
|
private var skyCallFragment: Fragment? = null
|
|
|
|
|
|
//网络异常计数
|
|
|
private var netErrCount : Int = 0
|
|
|
+ private var clickSosTime : Long = 0
|
|
|
|
|
|
//主信息
|
|
|
private val mainFragment = "main_fragment"
|
|
@@ -275,6 +282,11 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ //加载分机所绑定紧急按钮设备信息
|
|
|
+ if (deviceInfo.frameId != null) {
|
|
|
+ presenter.getEmergencyDeviceInfo(deviceInfo.frameId)
|
|
|
+ }
|
|
|
+
|
|
|
initialized = true
|
|
|
presenter.loadPartSettings(Constant.PART_ID)
|
|
|
|
|
@@ -483,6 +495,15 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
}
|
|
|
}*/
|
|
|
|
|
|
+ fun checkAppVersion() {
|
|
|
+ Constant.APP_PATH = ""
|
|
|
+ //获取APP版本信息,5寸分机type=4
|
|
|
+ if (Constant.PART_ID != null) {
|
|
|
+ presenter.getAppVersion(Constant.PART_ID, 4)
|
|
|
+ }
|
|
|
+ Log.d("AppUpdate", "checkAppVersion =====>> Constant.PART_ID: " + Constant.PART_ID)
|
|
|
+ }
|
|
|
+
|
|
|
private fun updateSettings(forceSet: Boolean) {
|
|
|
val currentTimestamp = System.currentTimeMillis()
|
|
|
|
|
@@ -537,6 +558,28 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ override fun loadAppVersion(appInfo: AppVersionDO) {
|
|
|
+ Log.d("AppUpdate", "loadAppVersion111 =====>> version_code: " + appInfo.versionCode + ", path: " + appInfo.appPath)
|
|
|
+ val newAppVersion = appInfo.versionCode.substring(1)
|
|
|
+ Log.d("AppUpdate", "loadAppVersion222 =====>> newAppVersion: " + newAppVersion + ", curAppVersion: " + BuildConfig.VERSION_NAME)
|
|
|
+ showMessage("获取版本成功,当前版本: " + BuildConfig.VERSION_NAME + "_" + BuildConfig.VERSION_CODE + ", 服务器版本: " + newAppVersion + "_" + appInfo.versionNo)
|
|
|
+
|
|
|
+ //服务器版本和当前版本不一致才做升级操作
|
|
|
+ if (BuildConfig.VERSION_CODE != appInfo.versionNo && !updating) {
|
|
|
+ Constant.APP_PATH = appInfo.appPath
|
|
|
+ updating = true
|
|
|
+ AppTool.Time.delay(200) {
|
|
|
+ push("/callingbed/update")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun showEmergencyInfo(deviceInfo: DeviceDO) {
|
|
|
+ if (deviceInfo.id != null) {
|
|
|
+ Constant.EMERGENCY_ID = deviceInfo.id
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun serialPortBedOnclick(buffer: ByteArray) {
|
|
|
Log.d("serialPortBedOnclick", "buffer[0]:" + buffer[0] + ", buffer[1]:" + buffer[1] + ", buffer[2]:" + buffer[2]
|
|
|
+ ", buffer[3]:" + buffer[3] + ", buffer[4]:" + buffer[4] + ", buffer[5]:" + buffer[5] + ", buffer[6]:" + buffer[6]
|
|
@@ -597,6 +640,19 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
clickCall()
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //紧急呼叫
|
|
|
+ else if (buffer[7].toInt() == 1 || buffer[7].toInt() == 2) {
|
|
|
+ //卫生间紧急按钮: 一定时间内重复多次按无效
|
|
|
+ if (System.currentTimeMillis() - clickSosTime > 10000) {
|
|
|
+ runOnUiThread {
|
|
|
+ clickSosTime = System.currentTimeMillis()
|
|
|
+ if (Constant.DEVICE_STATUS == 1 && Constant.TCP_CONNECTED) {
|
|
|
+ SOSHelper.sosStart()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
override fun serialPortBedOnclickString(str: String) {
|
|
@@ -864,12 +920,12 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
|
|
|
} else if (tcpModel.type == TcpType.SOS) {
|
|
|
if (tcpModel.action == TcpAction.SOSAction.CANCEL) {
|
|
|
//紧急呼叫已处理
|
|
|
- //SOSHelper.sosStop()
|
|
|
+ SOSHelper.sosStop()
|
|
|
}
|
|
|
} else if (tcpModel.type == TcpType.DEVICE) {
|
|
|
//检查APP版本
|
|
|
if (tcpModel.getAction() == TcpAction.DeviceAction.APP_UPDATE) {
|
|
|
- //checkAppVersion()
|
|
|
+ checkAppVersion()
|
|
|
} else if (tcpModel.action == TcpAction.DeviceAction.RESTART) {
|
|
|
//收到重启app指令,若当前处于正常待机状态则直接重启app,否则等待通话结束再重启
|
|
|
if (Constant.CALL_STATE == Constant.CALL_STANDBY) {
|