Bläddra i källkod

进入护理和退出护理时保存状态,若设备重启后即时恢复状态

weizhengliang 2 år sedan
förälder
incheckning
5588198171

+ 40 - 21
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -108,7 +108,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     private var initialized :Boolean = false
     private var loaded: Boolean = false
 
-    private var nursingInteId: Int? = null
+    private var nursingInteId: Int = -1
 
     private var clickTime : Long = 0
     private var clickSosTime : Long = 0
@@ -465,6 +465,31 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
         }
     }
 
+    private fun enterNursing() {
+        if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
+            SerialPortHelper.setDoorLight(1, Constant.nursingColor) //绿色
+        }
+        //room_action_nurse.text = "退出护理"
+        room_action_nurse.setBackgroundResource(R.mipmap.ic_bottom_btn_bg)
+        if (TextUtils.isEmpty(Constant.NursingTitle)) {
+            tv_room_name.text = Constant.ROOM_NAME + StringUtil.getResString(R.string.nursing_title)
+        } else {
+            tv_room_name.text = Constant.ROOM_NAME + " " + Constant.NursingTitle + "..."
+        }
+        tv_room_name.setTextColor(resources.getColor(R.color.nursing_color))
+    }
+
+    private fun exitNursing() {
+        if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
+            //SerialPortHelper.setDoorLight(1, "111") //白色
+            DoorLightHelper.resetDoorLight()
+        }
+        //room_action_nurse.text = "进入护理"
+        room_action_nurse.setBackgroundResource(R.mipmap.bg_bottom_btn)
+        tv_room_name.text = Constant.ROOM_NAME
+        tv_room_name.setTextColor(resources.getColor(R.color.main_color))
+    }
+
     override fun bindEvent() {
         //护理按钮
         room_action_nurse.setOnLongClickListener {
@@ -480,30 +505,17 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
             if (Constant.inNursing) {
                 Constant.inNursing = false
-                if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
-                    //SerialPortHelper.setDoorLight(1, "111") //白色
-                    DoorLightHelper.resetDoorLight()
-                }
-                //room_action_nurse.text = "进入护理"
-                room_action_nurse.setBackgroundResource(R.mipmap.bg_bottom_btn)
-                tv_room_name.text = Constant.ROOM_NAME
-                tv_room_name.setTextColor(resources.getColor(R.color.main_color))
-                if (Constant.DEVICE_ID != -1 && nursingInteId != null) {
+                SettingConfig.setInNursing(activity, false)
+                exitNursing()
+
+                if (Constant.DEVICE_ID != -1 && nursingInteId != -1) {
                     OtherUtil.sendNursingEnd(Constant.DEVICE_ID, nursingInteId)
                 }
             } else {
                 Constant.inNursing = true
-                if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
-                    SerialPortHelper.setDoorLight(1, Constant.nursingColor) //绿色
-                }
-                //room_action_nurse.text = "退出护理"
-                room_action_nurse.setBackgroundResource(R.mipmap.ic_bottom_btn_bg)
-                if (TextUtils.isEmpty(Constant.NursingTitle)) {
-                    tv_room_name.text = Constant.ROOM_NAME + StringUtil.getResString(R.string.nursing_title)
-                } else {
-                    tv_room_name.text = Constant.ROOM_NAME + " " + Constant.NursingTitle + "..."
-                }
-                tv_room_name.setTextColor(resources.getColor(R.color.nursing_color))
+                SettingConfig.setInNursing(activity, true)
+                enterNursing()
+
                 if (Constant.DEVICE_ID != -1) {
                     OtherUtil.sendNursing(Constant.DEVICE_ID)
                 }
@@ -948,6 +960,12 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             ex.printStackTrace()
         }
 
+        Constant.inNursing = SettingConfig.getInNursing(activity)
+        if (Constant.inNursing) {
+            nursingInteId = SettingConfig.getNursingId(activity)
+            enterNursing()
+        }
+
         updateSettings(true)
 
         EventBus.getDefault().post(MessageEvent("updateCustom", Constant.EVENT_UPDATE_CUSTOM))
@@ -1196,6 +1214,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                         if (tcpModel.action == TcpAction.SideAction.NURSING) {
                             val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
                             nursingInteId = interactionVO.id
+                            SettingConfig.setNursingId(activity, nursingInteId)
                         } else {
                             /*if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
                                 DoorLightHelper.handleDoorLight(tcpModel)

+ 20 - 0
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/settings/SettingConfig.java

@@ -60,6 +60,10 @@ public class SettingConfig {
     private static final String KEY_LANGUAGE_ID = "KEY_LANGUAGE_ID";
     private static final String KEY_LANGUAGE_MODE = "KEY_LANGUAGE_MODE";
 
+    //护理状态
+    private static final String KEY_IN_NURSING = "KEY_IN_NURSING";
+    private static final String KEY_NURSING_ID = "KEY_NURSING_ID";
+
     public static int getLanguageId(Context context) {
         //0--auto, 1--English, 2--中文, 3--西班牙语, 4--俄语
         return getSP(context).getInt(KEY_LANGUAGE_ID, 0);
@@ -78,6 +82,22 @@ public class SettingConfig {
         getEditor(context).putInt(KEY_LANGUAGE_MODE, mode).apply();
     }
 
+    public static boolean getInNursing(Context context) {
+        return getSP(context).getBoolean(KEY_IN_NURSING, false);
+    }
+
+    public static void setInNursing(Context context, boolean nursing) {
+        getEditor(context).putBoolean(KEY_IN_NURSING, nursing).apply();
+    }
+
+    public static int getNursingId(Context context) {
+        return getSP(context).getInt(KEY_NURSING_ID, -1);
+    }
+
+    public static void setNursingId(Context context, int nursingId) {
+        getEditor(context).putInt(KEY_NURSING_ID, nursingId).apply();
+    }
+
     /**
      * 获取白天亮度
      *