sleep mode 727/1 727/head
authorcheng <chengyf@zhihuishixun.com>
Mon, 19 Aug 2024 08:40:59 +0000 (16:40 +0800)
committercheng <chengyf@zhihuishixun.com>
Mon, 19 Aug 2024 08:40:59 +0000 (16:40 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp

index 748388c..5a9c347 100644 (file)
@@ -383,11 +383,7 @@ extern "C"
                 // uapi_dev_runtime_set_sleep_status(0);\r
                 //  do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, NULL);\r
                 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "起床啦!");\r
-                if (OHOS::ConfigModel::GetInstance()->GetDnotdisturb())\r
-                {\r
-                    OHOS::ConfigModel::GetInstance()->SetDnotdisturb(false); // 关闭勿扰\r
-                    SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);\r
-                }\r
+\r
                 if (curTime.tm_hour == wake_time_hour && curTime.tm_min == wake_time_min && curTime.tm_sec == 0)\r
                 {\r
                     OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
@@ -396,12 +392,9 @@ extern "C"
                     OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
                     SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0);\r
                 }\r
-                {\r
-                    mmi_sleep_mode_flag_set(false); // switch off\r
+                                \r
+                OHOS::SleepModel::GetInstance().ExitSleepModeAction();\r
 \r
-                    const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
-                    display_api->set_brightness(OHOS::ConfigModel::GetInstance()->GetBrightness());\r
-                }\r
                 if (uapi_dev_runtime_get_sleep_status() == 0)\r
                 {\r
                     // 设置状态为小睡\r
@@ -427,17 +420,9 @@ extern "C"
                     AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
                     OHOS::SleepModel::GetInstance().DeleteSleepData(); // 清空前一天睡眠数据\r
                 }\r
-                if (!OHOS::ConfigModel::GetInstance()->GetDnotdisturb())\r
-                {\r
-                    OHOS::ConfigModel::GetInstance()->SetDnotdisturb(true); // 开启勿扰\r
-                    SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);\r
-                }\r
-                {\r
-                    mmi_sleep_mode_flag_set(true);    // switch on\r
-                    mmi_flip_wrist_switch_set(false); // switch off\r
-                    const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
-                    display_api->set_brightness(51);\r
-                }\r
+\r
+                OHOS::SleepModel::GetInstance().EnterSleepModeAction();\r
+\r
                 LOS_Msleep(1000);\r
                 do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL);\r
             }\r
index 01821c2..74a3c81 100644 (file)
@@ -16,6 +16,7 @@
 #include <ThemeStyleModel.h>
 #include "heart_blood/health_service/health_service.h"
 #include "battery_hal.h"
+#include "ConfigModelC.h"
 
 namespace OHOS
 {
@@ -172,6 +173,11 @@ namespace OHOS
                 HealthService::GetInstance()->SetHealthCurrent(highHealthState);
                 viewId = VIEW_CHECK_INVALID;
             }
+            if(true == mmi_sleep_mode_flag_get())
+            {
+                if(VIEW_DNOTDISTURB == viewId)
+                    return false; 
+            }
             NativeAbility::GetInstance().EnterSlice(viewId, type);
             return true;
         }
index 7fdfd34..9d42149 100644 (file)
@@ -2,6 +2,7 @@
 #include "displaybrightness/include/DisplayBrightnessModel.h"\r
 #include "wearable_log.h"\r
 #include "ConfigModel.h"\r
+#include "ConfigModelC.h"\r
 #include "ui_resource_string.h"\r
 #include <UiConfig.h>\r
 namespace OHOS\r
@@ -348,6 +349,10 @@ namespace OHOS
             return false;\r
         }\r
         RaiseToBrightnessCheckBoxButton->SetOnChangeListener(presenter_);\r
+        if(true == mmi_sleep_mode_flag_get())\r
+        {\r
+            RaiseToBrightnessCheckBoxButton->SetTouchable(false);\r
+        }\r
         return true;\r
     }\r
 \r
index 88c848f..d8a32e9 100644 (file)
@@ -119,6 +119,10 @@ namespace OHOS
         void Sleep_StartTimer(uint32_t interval);
         void Sleep_StopTimer(void);
 
+        //
+        void EnterSleepModeAction(void);
+        void ExitSleepModeAction(void);
+
     private:
         SleepModel();
         SleepModel(const SleepModel &);
@@ -137,6 +141,13 @@ namespace OHOS
         int goal_total_time = 0;
 
         SLEEPSTATE sleepstate_ = SLEEPSTATE::WAKE;
+
+        typedef struct
+        {
+            bool DnotdisturbFlag;
+            bool FlipWristFlag;
+        }DeviceStateBeforeSleep;
+        DeviceStateBeforeSleep DeviceStateBeforeSleep_ = {0}; 
     };
 }
 
index a1bc6a0..1de307f 100644 (file)
@@ -40,6 +40,8 @@
 #include "thread_adapter.h"
 #include "cmsis_os.h"
 #include "ui_service.h"
+#include "ConfigModelC.h"
+#include "power_display_service.h"
 
 extern "C" errcode_t uapi_get_TIME_STR(uint32_t time, char *p_time, char date_separator, char time_separator, date_format_t format);
 extern "C" int get_sleep_time_from_config_model(void);
@@ -754,4 +756,46 @@ namespace OHOS
             g_timer = NULL;
         }
     }
+
+    void SleepModel::EnterSleepModeAction(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:EnterSleepModeAction]", __LINE__);
+        // switch on
+        mmi_sleep_mode_flag_set(true);
+        
+        // switch on donotdisturb
+        DeviceStateBeforeSleep_.DnotdisturbFlag = OHOS::ConfigModel::GetInstance()->GetDnotdisturb();
+        OHOS::ConfigModel::GetInstance()->SetDnotdisturb(true); // 开启勿扰
+        SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);
+
+        // switch off flip wrist
+        DeviceStateBeforeSleep_.FlipWristFlag = mmi_flip_wrist_switch_get();
+        mmi_flip_wrist_switch_set(false); // switch off
+
+        // turn down brightness
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        display_api->set_brightness(51);
+
+    }
+
+    void SleepModel::ExitSleepModeAction(void)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ExitSleepModeAction]", __LINE__);
+        // switch off
+        mmi_sleep_mode_flag_set(false);
+
+        // reset donotdisturb
+        bool DnotdisturbFlag = DeviceStateBeforeSleep_.DnotdisturbFlag;
+        OHOS::ConfigModel::GetInstance()->SetDnotdisturb(DnotdisturbFlag);
+        SendMsgToUIService(UI_UPDATE_DNOTDISTURB_MODE, 0, nullptr, 0);
+
+        // reset flip wrist
+        bool FlipWristFlag = DeviceStateBeforeSleep_.FlipWristFlag;
+        mmi_flip_wrist_switch_set(FlipWristFlag);
+
+        // reset brightness
+        const power_display_svr_api_t *display_api = power_display_svr_get_api();
+        display_api->set_brightness(OHOS::ConfigModel::GetInstance()->GetBrightness());
+
+    }
 }
\ No newline at end of file
index 4169bff..669cf3a 100644 (file)
@@ -25,6 +25,7 @@
 #include "cat1_server.h"
 // #include "TraingCardPresenter.h"
 #include "../../../../../../drivers/peripheral/vibrator/service/vibrator_service.h"
+#include "../../../../../../drivers/peripheral/config/include/ConfigModelC.h"
 
 #ifdef FD230
 #include "uiservice/include/ui_service.h" 
@@ -1794,6 +1795,11 @@ int get_ScreenDuration(void) //获取亮屏时长
 }
 void Set_RaiseToWake(bool value) //抬婉亮屏开关 
 {
+    if(true == mmi_sleep_mode_flag_get())
+    {
+        return;
+    }
+
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetRaiseToWake(value);
 #ifdef FD230