Browse Source

增加分机自动接听功能

weizhengliang 2 years ago
parent
commit
ff155af71a

+ 6 - 0
callingbed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -671,6 +671,12 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
                 Constant.nurseValid = partSetting.nurseValid
             }
 
+            if (partSetting.autoAccept != null && partSetting.autoAccept == 1) {
+                SettingConfig.setAutoAnswer(activity, true)
+            } else {
+                SettingConfig.setAutoAnswer(activity, false)
+            }
+
             VoiceManagerUtil.setCallVoice(activity, partSetting.dayBedVol)
         } catch (ex: Exception) {
             showMessage(StringUtil.getResString(R.string.setting_params_error) + ex.message)

+ 22 - 4
callingbed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SkyCallFragment.kt

@@ -9,6 +9,7 @@ import android.view.View
 import com.google.gson.Gson
 import com.wdkl.app.ncs.callingbed.R
 import com.wdkl.app.ncs.callingbed.helper.RingPlayHelper
+import com.wdkl.app.ncs.callingbed.settings.SettingConfig
 import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.common.Constant
@@ -93,10 +94,23 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
                 //来电
                 outGoing = false
                 showIncomingCall()
-                RingPlayHelper.playRingTone(baseActivity, R.raw.ring_tone, true)
 
                 janusClient!!.callState = EnumType.CallState.Incoming
                 room = Room(Constant.TARGET_SIP.toBigInteger())
+
+                if (SettingConfig.getAutoAnswer(activity)) {
+                    //自动接听
+                    handler.postDelayed({
+                        if (!callEnded && Constant.CALL_STATE != Constant.CALL_CALLING) {
+                            RingPlayHelper.stopRingTone()
+                            VoiceUtil.acceptAudioCall(Constant.DEVICE_ID, fromId, interactionVO?.id)
+                            acceptCall()
+                            janusClient!!.connect()
+                        }
+                    }, 1200)
+                } else {
+                    RingPlayHelper.playRingTone(baseActivity, R.raw.ring_tone, true)
+                }
             }
 
             /*2 -> {
@@ -193,10 +207,14 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
         Constant.CALL_STATE = Constant.CALL_INCOMING
         sky_voice_call_calling_text.text = StringUtil.getResString(R.string.call_incoming)
         sky_voice_call_outgoing.visibility = View.GONE
-        sky_voice_call_incoming.visibility = View.GONE
+        if (SettingConfig.getAutoAnswer(activity)) {
+            sky_voice_call_incoming.visibility = View.GONE
+        } else {
+            sky_voice_call_incoming.visibility = View.VISIBLE
+        }
+
         sky_voice_call_timeout.visibility = View.GONE
         sky_voice_call_timer.visibility = View.GONE
-        cancelTimer()
     }
 
     //开始接听
@@ -445,7 +463,7 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
                         cancelCall()
                     } else if (serialAction.equals("accept")) {
                         RingPlayHelper.stopRingTone()
-                        Constant.CALL_STATE = Constant.CALL_CALLING
+                        //Constant.CALL_STATE = Constant.CALL_CALLING
                         VoiceUtil.acceptAudioCall(Constant.DEVICE_ID, fromId, interactionVO?.id)
                         acceptCall()
                         janusClient!!.connect()

+ 9 - 0
callingbed/src/main/java/com/wdkl/app/ncs/callingbed/settings/SettingConfig.java

@@ -66,6 +66,8 @@ public class SettingConfig {
 
     //默认语言
     private static final String KEY_LANGUAGE_ID = "KEY_LANGUAGE_ID";
+    //是否自动接通
+    private static final String KEY_SP_AUTO_ANSWER = "KEY_SP_AUTO_ANSWER";
 
     public static int getLanguageId(Context context) {
         return getSP(context).getInt(KEY_LANGUAGE_ID, 2);
@@ -352,6 +354,13 @@ public class SettingConfig {
         getEditor(context).putInt(KEY_SP_NET_ERR_RESET_COUNT, value).apply();
     }
 
+    public static boolean getAutoAnswer(Context context) {
+        return getSP(context).getBoolean(KEY_SP_AUTO_ANSWER, false);
+    }
+
+    public static void setAutoAnswer(Context context, boolean value) {
+        getEditor(context).putBoolean(KEY_SP_AUTO_ANSWER, value).apply();
+    }
 
     private static SharedPreferences getSP(Context context) {
         return context.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);

+ 1 - 3
callingbed/src/main/res/layout/sky_voice_call_layout.xml

@@ -71,9 +71,7 @@
                 android:layout_alignParentBottom="true"
                 android:layout_centerHorizontal="true"
                 android:layout_marginBottom="40dp"
-                android:gravity="center_horizontal"
-                android:orientation="vertical"
-                android:visibility="visible">
+                android:orientation="vertical">
 
                 <Chronometer
                     android:id="@+id/sky_voice_call_timer"

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

@@ -245,6 +245,51 @@ public class PartSettingDO implements Serializable {
     @Column(name = "customize_role_call_second")
     @ApiModelProperty(value = "分机自定义呼叫角色按钮2要呼叫的角色ID", required = true)
     private Integer customizeRoleCallSecond;
+    /**
+     *	分机自定义呼叫角色按钮3对应的角色id
+     */	@Column(name = "customize_role_call_third" )
+    @ApiModelProperty(value="分机自定义呼叫角色按钮3对应的角色id",required=false)
+    private Integer customizeRoleCallThird;
+    /**
+     *	分机自定义呼叫角色按钮4对应的角色id
+     */	@Column(name = "customize_role_call_fourth" )
+    @ApiModelProperty(value="分机自定义呼叫角色按钮4对应的角色id",required=false)
+    private Integer customizeRoleCallFourth;
+    /**
+     *	分机自定义呼叫角色按钮5对应的角色id
+     */	@Column(name = "customize_role_call_fifth" )
+    @ApiModelProperty(value="分机自定义呼叫角色按钮5对应的角色id",required=false)
+    private Integer customizeRoleCallFifth;
+    /**
+     *	科室自定义呼叫医院级设备1的id
+     */	@Column(name = "customize_hospital_call_first" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备1的id",required=false)
+    private Integer customizeHospitalCallFirst;
+    /**
+     *	科室自定义呼叫医院级设备1的名称
+     */	@Column(name = "customize_hospital_call_first_name" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备1的名称",required=false)
+    private String customizeHospitalCallFirstName;
+    /**
+     *	科室自定义呼叫医院级设备2的id
+     */	@Column(name = "customize_hospital_call_second" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备2的id",required=false)
+    private Integer customizeHospitalCallSecond;
+    /**
+     *	科室自定义呼叫医院级设备2的名称
+     */	@Column(name = "customize_hospital_call_second_name" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备2的名称",required=false)
+    private String customizeHospitalCallSecondName;
+    /**
+     *	科室自定义呼叫医院级设备3的id
+     */	@Column(name = "customize_hospital_call_third" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备3的id",required=false)
+    private Integer customizeHospitalCallThird;
+    /**
+     *	科室自定义呼叫医院级设备3的名称
+     */	@Column(name = "customize_hospital_call_third_name" )
+    @ApiModelProperty(value="科室自定义呼叫医院级设备3的名称",required=false)
+    private String customizeHospitalCallThirdName;
 
     @Column(name = "doctor_title")
     @ApiModelProperty(value = "模拟分机医生标题", required = true)
@@ -261,11 +306,60 @@ public class PartSettingDO implements Serializable {
     @Column(name = "nurse_valid")
     @ApiModelProperty(value = "是否显示模拟分机护士标题", required = true)
     private Integer nurseValid;
+    /**
+     *	门口机呼叫护士的标题
+     */
+    @Column(name = "door_nurse_title" )
+    @ApiModelProperty(value="门口机呼叫护士的标题",required=false)
+    private String doorNurseTitle;
+    /**
+     *	是否显示门口机呼叫护士的标题
+     */
+    @Column(name = "door_nurse_valid" )
+    @ApiModelProperty(value="是否显示门口机呼叫护士的标题",required=false)
+    private Integer doorNurseValid;
+    /**
+     *	门口机进入护理的标题
+     */
+    @Column(name = "door_nursing_title" )
+    @ApiModelProperty(value="门口机进入护理的标题",required=false)
+    private String doorNursingTitle;
+    /**
+     *	是否显示进入护理的标题
+     */
+    @Column(name = "door_nursing_valid" )
+    @ApiModelProperty(value="是否显示进入护理的标题",required=false)
+    private Integer doorNursingValid;
 
     @Column(name = "up_seconds")
     @ApiModelProperty(value = "腕表上传定位时间间隔", required = true)
     private Integer upSeconds;
 
+    @Column(name = "auto_accept")
+    @ApiModelProperty(value = "分机是否自动接听,0就是不开启,1就是开启", required = true)
+    private Integer autoAccept;
+
+    @Column(name = "board_show_empty_bed")
+    @ApiModelProperty(value = "信息看板显示空床位", required = true)
+    private Boolean boardShowEmptyBed;
+
+    /**
+     *	事件是否开启转发
+     */	@Column(name = "event_forward" )
+    @ApiModelProperty(value="事件是否开启转发",required=false)
+    private Integer eventForward;
+    /**
+     *	护理灯颜色
+     */	@Column(name = "nursing_color_rgb" )
+    @ApiModelProperty(value="护理门灯颜色",required=false)
+    private String nursingColorRgb;
+    /**
+     *	是否开启双色门灯
+     */	@Column(name = "two_color_door_light_valid" )
+    @ApiModelProperty(value="是否开启双色门灯",required=false)
+    private Integer twoColorDoorLightValid;
+
+
     @PrimaryKeyField
     public Integer getId() {
         return id;
@@ -561,6 +655,78 @@ public class PartSettingDO implements Serializable {
         this.customizeRoleCallSecond = customizeRoleCallSecond;
     }
 
+    public Integer getCustomizeRoleCallThird() {
+        return customizeRoleCallThird;
+    }
+
+    public void setCustomizeRoleCallThird(Integer customizeRoleCallThird) {
+        this.customizeRoleCallThird = customizeRoleCallThird;
+    }
+
+    public Integer getCustomizeRoleCallFourth() {
+        return customizeRoleCallFourth;
+    }
+
+    public void setCustomizeRoleCallFourth(Integer customizeRoleCallFourth) {
+        this.customizeRoleCallFourth = customizeRoleCallFourth;
+    }
+
+    public Integer getCustomizeRoleCallFifth() {
+        return customizeRoleCallFifth;
+    }
+
+    public void setCustomizeRoleCallFifth(Integer customizeRoleCallFifth) {
+        this.customizeRoleCallFifth = customizeRoleCallFifth;
+    }
+
+    public Integer getCustomizeHospitalCallFirst() {
+        return customizeHospitalCallFirst;
+    }
+
+    public void setCustomizeHospitalCallFirst(Integer customizeHospitalCallFirst) {
+        this.customizeHospitalCallFirst = customizeHospitalCallFirst;
+    }
+
+    public String getCustomizeHospitalCallFirstName() {
+        return customizeHospitalCallFirstName;
+    }
+
+    public void setCustomizeHospitalCallFirstName(String customizeHospitalCallFirstName) {
+        this.customizeHospitalCallFirstName = customizeHospitalCallFirstName;
+    }
+
+    public Integer getCustomizeHospitalCallSecond() {
+        return customizeHospitalCallSecond;
+    }
+
+    public void setCustomizeHospitalCallSecond(Integer customizeHospitalCallSecond) {
+        this.customizeHospitalCallSecond = customizeHospitalCallSecond;
+    }
+
+    public String getCustomizeHospitalCallSecondName() {
+        return customizeHospitalCallSecondName;
+    }
+
+    public void setCustomizeHospitalCallSecondName(String customizeHospitalCallSecondName) {
+        this.customizeHospitalCallSecondName = customizeHospitalCallSecondName;
+    }
+
+    public Integer getCustomizeHospitalCallThird() {
+        return customizeHospitalCallThird;
+    }
+
+    public void setCustomizeHospitalCallThird(Integer customizeHospitalCallThird) {
+        this.customizeHospitalCallThird = customizeHospitalCallThird;
+    }
+
+    public String getCustomizeHospitalCallThirdName() {
+        return customizeHospitalCallThirdName;
+    }
+
+    public void setCustomizeHospitalCallThirdName(String customizeHospitalCallThirdName) {
+        this.customizeHospitalCallThirdName = customizeHospitalCallThirdName;
+    }
+
     public String getDoctorTitle() {
         return doctorTitle;
     }
@@ -593,6 +759,38 @@ public class PartSettingDO implements Serializable {
         this.nurseValid = nurseValid;
     }
 
+    public String getDoorNurseTitle() {
+        return doorNurseTitle;
+    }
+
+    public void setDoorNurseTitle(String doorNurseTitle) {
+        this.doorNurseTitle = doorNurseTitle;
+    }
+
+    public Integer getDoorNurseValid() {
+        return doorNurseValid;
+    }
+
+    public void setDoorNurseValid(Integer doorNurseValid) {
+        this.doorNurseValid = doorNurseValid;
+    }
+
+    public String getDoorNursingTitle() {
+        return doorNursingTitle;
+    }
+
+    public void setDoorNursingTitle(String doorNursingTitle) {
+        this.doorNursingTitle = doorNursingTitle;
+    }
+
+    public Integer getDoorNursingValid() {
+        return doorNursingValid;
+    }
+
+    public void setDoorNursingValid(Integer doorNursingValid) {
+        this.doorNursingValid = doorNursingValid;
+    }
+
     public Integer getUpSeconds() {
         return upSeconds;
     }
@@ -600,4 +798,44 @@ public class PartSettingDO implements Serializable {
     public void setUpSeconds(Integer upSeconds) {
         this.upSeconds = upSeconds;
     }
+
+    public Integer getAutoAccept() {
+        return autoAccept;
+    }
+
+    public void setAutoAccept(Integer autoAccept) {
+        this.autoAccept = autoAccept;
+    }
+
+    public Boolean getBoardShowEmptyBed() {
+        return boardShowEmptyBed;
+    }
+
+    public void setBoardShowEmptyBed(Boolean boardShowEmptyBed) {
+        this.boardShowEmptyBed = boardShowEmptyBed;
+    }
+
+    public Integer getEventForward() {
+        return eventForward;
+    }
+
+    public void setEventForward(Integer eventForward) {
+        this.eventForward = eventForward;
+    }
+
+    public String getNursingColorRgb() {
+        return nursingColorRgb;
+    }
+
+    public void setNursingColorRgb(String nursingColorRgb) {
+        this.nursingColorRgb = nursingColorRgb;
+    }
+
+    public Integer getTwoColorDoorLightValid() {
+        return twoColorDoorLightValid;
+    }
+
+    public void setTwoColorDoorLightValid(Integer twoColorDoorLightValid) {
+        this.twoColorDoorLightValid = twoColorDoorLightValid;
+    }
 }