Browse Source

#CHANGE
- 1.服务器修改设置时及时更新参数
- 2.修改超时未接听后不能再呼叫问题

weizhengliang 3 years ago
parent
commit
b3ed477696

+ 0 - 9
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/nursehome/DeviceContract.kt

@@ -20,11 +20,6 @@ interface DeviceContract {
          */
         fun showData(data: NurseDeviceInfoVO)
 
-        /**
-         * 设置配置数据
-         */
-        fun showSettingData(data: PartSettingDO)
-
         fun onNoneNet()
     }
 
@@ -37,10 +32,6 @@ interface DeviceContract {
          */
         fun loadData(ethMac: String)
 
-        /**
-         * 获取设置数据
-         */
-        fun getSettingData(partId:Int)
     }
 
 

+ 11 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/nursehome/NurseHomeActivityContract.kt

@@ -3,6 +3,7 @@ package com.wdkl.ncs.android.middleware.logic.contract.nursehome
 import com.wdkl.ncs.android.lib.base.BaseContract
 import com.wdkl.ncs.android.middleware.model.ChildCategoryShell
 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
 
 /**
@@ -18,6 +19,11 @@ interface NurseHomeActivityContract{
          * 显示tcp通讯数据
          */
         fun showTcpData(data: TcpSeverDTO)
+
+        /**
+         * 设置配置数据
+         */
+        fun showSettingData(data: PartSettingDO)
     }
 
 
@@ -29,5 +35,10 @@ interface NurseHomeActivityContract{
          * 获取tcp通讯地址和心跳间隔
          */
         fun loadTcpData()
+
+        /**
+         * 获取设置数据
+         */
+        fun getSettingData(partId:Int)
     }
 }

+ 0 - 23
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/nursehome/DevicePresenter.kt

@@ -36,12 +36,6 @@ class DevicePresenter @Inject constructor() : RxPresenter<DeviceContract.View>()
     @Inject
     protected lateinit var deviceApi: DeviceApi
 
-    /**
-     * 设置api
-     */
-    @Inject
-    protected lateinit var settingApi: SettingApi
-
 
     /**
      *依赖注入初始化
@@ -64,9 +58,6 @@ class DevicePresenter @Inject constructor() : RxPresenter<DeviceContract.View>()
                 is NurseDeviceInfoVO -> {
                     providerView().showData(result)
                 }
-                is PartSettingDO -> {
-                    providerView().showSettingData(result)
-                }
             }
 
         }
@@ -103,18 +94,4 @@ class DevicePresenter @Inject constructor() : RxPresenter<DeviceContract.View>()
 
     }
 
-    override fun getSettingData(partId: Int) {
-        settingApi.getPartSetting(partId).map {
-            var PartSettingDO = PartSettingDO()
-
-            var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-//                    var gson = Gson();
-            PartSettingDO = gson.fromJson(it.getJsonString(), PartSettingDO::class.java)
-            return@map PartSettingDO
-        }
-                .compose(ThreadFromUtils.defaultSchedulers())
-                .subscribe(observable)
-    }
-
-
 }

+ 23 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/nursehome/NurseHomeActivityPresenter.kt

@@ -11,12 +11,14 @@ import com.wdkl.ncs.android.lib.utils.getJsonString
 import com.wdkl.ncs.android.lib.utils.more
 import com.wdkl.ncs.android.middleware.api.HelloApi
 import com.wdkl.ncs.android.middleware.api.NurseHomeApi
+import com.wdkl.ncs.android.middleware.api.SettingApi
 import com.wdkl.ncs.android.middleware.api.TCPApi
 import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
 import com.wdkl.ncs.android.middleware.logic.contract.hello.HelloActivityContract
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.NurseHomeActivityContract
 import com.wdkl.ncs.android.middleware.model.ChildCategoryShell
 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 io.reactivex.disposables.Disposable
 import org.json.JSONArray
@@ -34,6 +36,12 @@ class NurseHomeActivityPresenter @Inject constructor() :RxPresenter<NurseHomeAct
     protected lateinit var nurseHomeApi: NurseHomeApi
 
     /**
+     * 设置api
+     */
+    @Inject
+    protected lateinit var settingApi: SettingApi
+
+    /**
      * 获取tcp api
      */
     @Inject
@@ -64,6 +72,9 @@ class NurseHomeActivityPresenter @Inject constructor() :RxPresenter<NurseHomeAct
                 is TcpSeverDTO -> {
                     providerView().showTcpData(result)
                 }
+                is PartSettingDO -> {
+                    providerView().showSettingData(result)
+                }
             }
         }
 
@@ -103,4 +114,16 @@ class NurseHomeActivityPresenter @Inject constructor() :RxPresenter<NurseHomeAct
             .subscribe(observer)
 
     }
+
+    override fun getSettingData(partId: Int) {
+        settingApi.getPartSetting(partId).map {
+            var PartSettingDO = PartSettingDO()
+
+            var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+            PartSettingDO = gson.fromJson(it.getJsonString(), PartSettingDO::class.java)
+            return@map PartSettingDO
+        }
+            .compose(ThreadFromUtils.defaultSchedulers())
+            .subscribe(observer)
+    }
 }

+ 1 - 4
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -148,10 +148,7 @@ public class DeviceChannel {
                 }
                 break;
             case DEVICE:
-                if (tcpModel.getAction()== TcpAction.DeviceAction.RESTART){
-                    //todo:重启设备
-                    EventBus.getDefault().post(new MessageEvent(tcpModel,Constants.Companion.getEVENT_TCP_MSG()));
-                }
+                EventBus.getDefault().post(new MessageEvent(tcpModel,Constants.Companion.getEVENT_TCP_MSG()));
                 break;
             case SOS:
                 //紧急呼叫优先级最高,如果当前正在通话需要将其打断

+ 64 - 6
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -44,6 +44,7 @@ import com.wdkl.ncs.android.middleware.logic.contract.nursehome.NurseHomeActivit
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.NurseHomeActivityPresenter
 import com.wdkl.ncs.android.middleware.model.bean.SettingConfiguration
 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.CallingHistoryVO
 import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
@@ -142,9 +143,6 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
         SocketManager.getInstance().addUserStateCallback(this)
         connectSocket()
 
-        //设置设置配置
-        setSettingConfiguration()
-
         initCountDownTimer()
         updateNetState()
         updateTime()
@@ -334,6 +332,53 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                 TcpClient.getInstance().init(Constants.tcp_ip, Constants.tcp_port!!.toInt(), Constants.reader_idle_time!!.toInt())
             }
         }).start()
+
+        //加载系统设置参数
+        presenter.getSettingData(Constants.part_id)
+    }
+
+    /**
+     * 得到设置配置的信息
+     */
+    override fun showSettingData(data: PartSettingDO) {
+        Log.e(TAG,"收到返回的设置配置信息 ")
+        Log.e(TAG,"partId "+data.partId)
+
+        SettingConfiguration.getInstance().createTime  = data.createTime
+        if (data.updateTime != null) {
+            SettingConfiguration.getInstance().updateTime = data.updateTime
+        } else {
+            SettingConfiguration.getInstance().updateTime = data.createTime
+        }
+        SettingConfiguration.getInstance().partId  = data.partId
+        SettingConfiguration.getInstance().dayStart  = data.dayStart
+        SettingConfiguration.getInstance().dayLight  = data.dayLight
+        SettingConfiguration.getInstance().dayVol  = data.dayVol
+        SettingConfiguration.getInstance().dayRingVol  = data.dayRingVol
+        SettingConfiguration.getInstance().dayRingTimes  = data.dayRingTimes
+        SettingConfiguration.getInstance().dayNurseLed  = data.dayNurseLed
+        SettingConfiguration.getInstance().dayDoorVol  = data.dayDoorVol
+        SettingConfiguration.getInstance().dayBedVol  = data.dayBedVol
+        SettingConfiguration.getInstance().dayTransferBoxVol  = data.dayTransferBoxVol
+        SettingConfiguration.getInstance().dayTransferBoxSystemVol  = data.dayTransferBoxSystemVol
+        SettingConfiguration.getInstance().nightStart  = data.nightStart
+        SettingConfiguration.getInstance().nightLight  = data.nightLight
+        SettingConfiguration.getInstance().nightVol  = data.nightVol
+        SettingConfiguration.getInstance().nightRingVol  = data.nightRingVol
+        SettingConfiguration.getInstance().nightRingTimes  = data.nightRingTimes
+        SettingConfiguration.getInstance().nightNurseLed  = data.nightNurseLed
+        SettingConfiguration.getInstance().nightDoorVol  = data.nightDoorVol
+        SettingConfiguration.getInstance().nightBedVol  = data.nightBedVol
+        SettingConfiguration.getInstance().nightTransferBoxVol  = data.nightTransferBoxVol
+        SettingConfiguration.getInstance().nightTransferBoxSystemVol  = data.nightTransferBoxSystemVol
+        SettingConfiguration.getInstance().sleepSecondsNurse  = data.sleepSecondsNurse
+        SettingConfiguration.getInstance().sleepSecondsDoor  = data.sleepSecondsDoor
+        SettingConfiguration.getInstance().sleepSecondsBed  = data.sleepSecondsBed
+        SettingConfiguration.getInstance().sipOvertime  = data.sipOvertime
+
+        //设置设置配置
+        setSettingConfiguration()
+        initCountDownTimer()
     }
 
 
@@ -541,6 +586,10 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
     }
 
     fun initCountDownTimer() {
+        if (SettingConfiguration.getInstance().sipOvertime <= 0) {
+            SettingConfiguration.getInstance().sipOvertime = 30
+        }
+
         countDownTimer = object: CountDownTimer(SettingConfiguration.getInstance().sipOvertime*1000L, 1000) {
             override fun onTick(millisUntilFinished: Long) {
                 //
@@ -549,6 +598,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
             override fun onFinish() {
                 //呼叫超时,退出呼叫界面
                 showMessage("无人接听...")
+                DeviceChannel.calling = false
                 VoiceUtil.cancelAudioCall(Integer.parseInt(Constants.ids), callTargetId)
                 CallDialogHelper.dismissCallDialog()
             }
@@ -623,9 +673,9 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
         when (messageEvent.getType()) {
             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) {
+                    var interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                     if (tcpModel.getAction() == TcpAction.VoiceAction.CALL) {//收到新的呼叫
                         Constants.fromId = tcpModel.fromId
                         Constants.interactionId = interactionVO.id
@@ -721,6 +771,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                         EventBus.getDefault().post(MessageEvent(0, Constants.EVENT_REFRESH_CALL_LIST))
                     }
                 } else if (tcpModel.type == TcpType.SOS) {
+                    var interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                     if (tcpModel.action == TcpAction.SOSAction.CALL) {
                         //紧急呼叫优先级最高,如果当前有通话或正在呼叫的需要将其打断
                         if (Constants.CALL_STATE == Constants.CALL_INCOMING) {
@@ -758,6 +809,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                         EventBus.getDefault().post(MessageEvent(0, Constants.EVENT_REFRESH_CALL_LIST))
                     }
                 } else if (tcpModel.type == TcpType.VIDEO) {
+                    var interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                     if (tcpModel.action == TcpAction.VideoAction.VIDEO_OUT_CALL) {
                         //收到探视请求,弹出提示
                         Constants.fromId = tcpModel.fromId
@@ -815,6 +867,12 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                         CallDialogHelper.dismissCallDialog()
                         showMessage("分机正在通话中,请稍后再试...")
                     }
+                } else if (tcpModel.type == TcpType.DEVICE) {
+                    if (tcpModel.action == TcpAction.DeviceAction.SYSTEM_SETTING) {
+                        if (Constants.part_id != -1) {
+                            presenter.getSettingData(Constants.part_id)
+                        }
+                    }
                 }
             }
 
@@ -822,8 +880,8 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
                 if (Constants.CALL_STATE != Constants.CALL_CALLING) {
                     if (SettingConfig.getTtsMode(this) == SettingConfig.TTS_ON) {
                         val tcpModel = messageEvent.getMessage() as TcpModel
-                        val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                        val frameName = interactionVO.fromFrameFullName.replace("-", "")
+                        val interaction = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
+                        val frameName = interaction.fromFrameFullName.replace("-", "")
                         SpeechUtil.getInstance().addSpeech(frameName + "呼叫", false)
                     }
                 }

+ 0 - 45
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/RegisterActivity.kt

@@ -179,10 +179,6 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
 
         handler.removeCallbacksAndMessages(null)
 
-        if(data.partId != null){
-            presenter.getSettingData(data.partId)
-        }
-
         AppTool.Time.delay(1000) {
             push("/nursehome/main")
             finish()
@@ -190,47 +186,6 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
     }
 
     /**
-     * 得到设置配置的信息
-     */
-    override fun showSettingData(data: PartSettingDO) {
-        Log.e(TAG,"收到返回的设置配置信息 ")
-        Log.e(TAG,"partId "+data.partId)
-
-        SettingConfiguration.getInstance().createTime  = data.createTime
-        if (data.updateTime != null) {
-            SettingConfiguration.getInstance().updateTime = data.updateTime
-        } else {
-            SettingConfiguration.getInstance().updateTime = data.createTime
-        }
-        SettingConfiguration.getInstance().partId  = data.partId
-        SettingConfiguration.getInstance().dayStart  = data.dayStart
-        SettingConfiguration.getInstance().dayLight  = data.dayLight
-        SettingConfiguration.getInstance().dayVol  = data.dayVol
-        SettingConfiguration.getInstance().dayRingVol  = data.dayRingVol
-        SettingConfiguration.getInstance().dayRingTimes  = data.dayRingTimes
-        SettingConfiguration.getInstance().dayNurseLed  = data.dayNurseLed
-        SettingConfiguration.getInstance().dayDoorVol  = data.dayDoorVol
-        SettingConfiguration.getInstance().dayBedVol  = data.dayBedVol
-        SettingConfiguration.getInstance().dayTransferBoxVol  = data.dayTransferBoxVol
-        SettingConfiguration.getInstance().dayTransferBoxSystemVol  = data.dayTransferBoxSystemVol
-        SettingConfiguration.getInstance().nightStart  = data.nightStart
-        SettingConfiguration.getInstance().nightLight  = data.nightLight
-        SettingConfiguration.getInstance().nightVol  = data.nightVol
-        SettingConfiguration.getInstance().nightRingVol  = data.nightRingVol
-        SettingConfiguration.getInstance().nightRingTimes  = data.nightRingTimes
-        SettingConfiguration.getInstance().nightNurseLed  = data.nightNurseLed
-        SettingConfiguration.getInstance().nightDoorVol  = data.nightDoorVol
-        SettingConfiguration.getInstance().nightBedVol  = data.nightBedVol
-        SettingConfiguration.getInstance().nightTransferBoxVol  = data.nightTransferBoxVol
-        SettingConfiguration.getInstance().nightTransferBoxSystemVol  = data.nightTransferBoxSystemVol
-        SettingConfiguration.getInstance().sleepSecondsNurse  = data.sleepSecondsNurse
-        SettingConfiguration.getInstance().sleepSecondsDoor  = data.sleepSecondsDoor
-        SettingConfiguration.getInstance().sleepSecondsBed  = data.sleepSecondsBed
-        SettingConfiguration.getInstance().sipOvertime  = data.sipOvertime
-
-    }
-
-    /**
      *绑定事件
      */
     override fun bindEvent() {