Pārlūkot izejas kodu

修改分机通话协议类型优先使用科室配置

weizhengliang 1 mēnesi atpakaļ
vecāks
revīzija
fadb1eef8a

+ 2 - 4
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivationActivity.kt

@@ -90,10 +90,6 @@ class CallingbedActivationActivity  : BaseActivity<CallingbedActivationPresenter
 
     var viewService: ViewService? = null
 
-
-
-
-
     override fun getLayId(): Int {
 
         val currentLanguage: String = Locale.getDefault().getLanguage()
@@ -155,6 +151,8 @@ class CallingbedActivationActivity  : BaseActivity<CallingbedActivationPresenter
         }
 
         setSerialListener()
+
+        SoundPoolManager.getInstance().init()
     }
 
     private fun requestManagerPermission() {

+ 45 - 15
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -344,8 +344,6 @@ class CallingbedActivity :BaseActivity<BedCallingbedActivityPresenter, Callingbe
 
         HardWareFactory.getHardTools().setSerial(this)
 
-        SoundPoolManager.getInstance().init()
-
         //更新状态图标
         updateNetState()
 
@@ -1238,6 +1236,49 @@ class CallingbedActivity :BaseActivity<BedCallingbedActivityPresenter, Callingbe
 
         EventBus.getDefault().post(MessageEvent("updateCustom", Constant.EVENT_UPDATE_CUSTOM))
 
+        Log.e(TAG, "part settings voice type: " + partSetting.voiceType)
+        //语音通话协议以科室配置为准
+        val orgSipEnable = SettingConfig.getSipEnabled(activity)
+        if (!TextUtils.isEmpty(partSetting.voiceType)) {
+            //科室有配置通话协议
+            if (partSetting.voiceType == "SIP") {
+                //sip模式
+                SettingConfig.setSipEnable(activity, true)
+                if (!orgSipEnable) {
+                    AppTool.Time.delay(8000) {
+                        AppUpdateHelper.restartApp(activity)
+                    }
+                }
+            } else {
+                //webrtc模式
+                SettingConfig.setSipEnable(activity, false)
+                if (orgSipEnable) {
+                    AppTool.Time.delay(8000) {
+                        AppUpdateHelper.restartApp(activity)
+                    }
+                }
+            }
+        } else {
+            //科室未配置通话协议,按全局配置
+            if ("sip".equals(Constant.voice_type)) {
+                //使用sip通话
+                SettingConfig.setSipEnable(activity, true)
+                if (!orgSipEnable) {
+                    AppTool.Time.delay(8000) {
+                        AppUpdateHelper.restartApp(activity)
+                    }
+                }
+            } else {
+                //使用webrtc通话
+                SettingConfig.setSipEnable(activity, false)
+                if (orgSipEnable) {
+                    AppTool.Time.delay(8000) {
+                        AppUpdateHelper.restartApp(activity)
+                    }
+                }
+            }
+        }
+
         //配置sip账号并连接sip服务器
         if (SettingConfig.getSipEnabled(activity) && !sipReg) {
             //配置sip账户
@@ -1291,23 +1332,12 @@ class CallingbedActivity :BaseActivity<BedCallingbedActivityPresenter, Callingbe
         }
 
         if (data.voiceType != null) {
-            val orgSipEnable = SettingConfig.getSipEnabled(activity)
             if ("sip".equals(data.voiceType)) {
                 //使用sip通话
-                SettingConfig.setSipEnable(activity, true)
-                if (!orgSipEnable) {
-                    handler.postDelayed({
-                        AppUpdateHelper.reboot(activity)
-                    }, 8000)
-                }
+                Constant.voice_type = "sip"
             } else {
                 //使用webrtc通话
-                SettingConfig.setSipEnable(activity, false)
-                if (orgSipEnable) {
-                    handler.postDelayed({
-                        AppUpdateHelper.reboot(activity)
-                    }, 8000)
-                }
+                Constant.voice_type = "webrtc"
             }
         }
 

+ 0 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedDormitoryActivity.kt

@@ -277,7 +277,6 @@ class CallingbedDormitoryActivity :BaseActivity<BedCallingbedActivityPresenter,
         RecordHelper.getInstance().init()
         EventBus.getDefault().register(this)
         HardWareFactory.getHardTools().setSerial2(this)
-        SoundPoolManager.getInstance().init()
 
         //更新状态图标
         updateNetState()

+ 0 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedMomActivity.kt

@@ -307,8 +307,6 @@ class CallingbedMomActivity :BaseActivity<BedCallingbedActivityPresenter, Callin
         RecordHelper.getInstance().init()
         EventBus.getDefault().register(this)
 
-        SoundPoolManager.getInstance().init()
-
         //更新状态图标
         updateNetState()
 

+ 0 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/OfflineCallingbedActivity.kt

@@ -185,8 +185,6 @@ class OfflineCallingbedActivity :BaseActivity<BedCallingbedActivityPresenter, Ca
         // 串口监听
         setSerialListener()
 
-        SoundPoolManager.getInstance().init()
-
         //禁止下拉状态栏
         Utils.setStatusBarDisable(activity, Utils.STATUS_BAR_DISABLE_EXPAND)
 

+ 11 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dos/PartSettingDO.java

@@ -642,6 +642,9 @@ public class PartSettingDO implements Serializable {
     @ApiModelProperty(value="离线设备数量",required=false)
     private Integer offlineDeviceNumber;
 
+    //通话协议类型
+    private String voiceType;
+
 
     @PrimaryKeyField
     public Integer getId() {
@@ -1482,6 +1485,14 @@ public class PartSettingDO implements Serializable {
         this.offlineDeviceNumber = offlineDeviceNumber;
     }
 
+    public String getVoiceType() {
+        return voiceType;
+    }
+
+    public void setVoiceType(String voiceType) {
+        this.voiceType = voiceType;
+    }
+
     @Override
     public String toString() {
         return "PartSettingDO{" +