#975手表,增加滑到睡眠界面进行数据更新
authorCaisking <3449750381@qq.com>
Thu, 10 Oct 2024 03:20:05 +0000 (11:20 +0800)
committerCaisking <3449750381@qq.com>
Thu, 10 Oct 2024 03:20:05 +0000 (11:20 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepModel.cpp

index c926335..bc2a293 100644 (file)
@@ -438,7 +438,7 @@ extern "C"
                     OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
                     // 早安提醒(关闭)\r
                     // AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, (uint8_t *)sleep_notify_time, 4);\r
-                    OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
+                    // OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
                     SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0);\r
                 }\r
 \r
@@ -450,7 +450,7 @@ extern "C"
                     uapi_dev_runtime_set_absolute_static_status(0); // 清零绝对静止状态\r
                     // uapi_dev_runtime_set_nap_monitoring_status(1);\r
                     // uapi_dev_runtime_set_sleep_monitoring_status(0);\r
-                    OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
+                    // OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
                     set_keep_in_wear_det_mode(1);                 // 开启小睡佩戴监测\r
                     SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0);\r
                     do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL); // 算法底层切换小睡监测模式\r
index 0c4e72f..e17de7d 100644 (file)
@@ -446,6 +446,11 @@ namespace OHOS
                 sleepCardView->SetCurrentPage(0);
             }
         }
+        if (SleepModel::GetInstance().CheckSleepTime()) {
+            //通知消息更新
+            GraphicService::GetInstance()->PostGraphicEvent(
+            std::bind(&OHOS::SleepModel::UpdateSleepView, &OHOS::SleepModel::GetInstance()));
+          }
     }
     /*天气卡片*/
     void MainPresenterSample::ResetWeatherCardView()
index 1588811..ea96a5c 100644 (file)
@@ -1,19 +1,4 @@
-/*
- * @Author: penglei 1624952103@qq.com
- * @Date: 2024-06-26 19:36:48
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-10-05 18:30:44
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
- * @Description:
- *
- * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
- */
-/***
- * @Date: 2024-06-25 10:34:10
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-26 09:51:50
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/include/SleepModel.h
- */
+
 
 #ifndef Sleep_MODEL_H
 #define Sleep_MODEL_H
@@ -112,6 +97,7 @@ namespace OHOS
         void update_time_info(uint32_t timestamp, std::string &timeStr);
         void update_sleep(SLEEP_T *data);
         void ReInitData(); // 重新刷新UI
+
         void set_sleep_goal();
         int get_sleep_hour();
         int get_sleep_min();
@@ -138,6 +124,8 @@ namespace OHOS
         bool SaveSleepData(const SleepDataUI &data); // 更新睡眠数据
         bool DeleteSleepData();                      // 清空睡眠文件
 
+        bool CheckSleepTime();//对睡眠时间进行校验
+
         void UpdateSleepView();
         std::string GetUpdateSleepTime();
 
@@ -177,6 +165,7 @@ namespace OHOS
         int goal_total_time = 0;
         int nap_total_time = 0;
 
+        uint32_t sleep_update_time{0};
 
         SLEEPSTATE sleepstate_ = SLEEPSTATE::WAKE;
         int CradId = 0; // 主界面状态
index 8aae038..00ae317 100644 (file)
@@ -880,11 +880,20 @@ namespace OHOS
   {
     sleep_time_str.clear();
     // 获取睡眠最新时间
-    uint32_t sleep_time = get_sleep_update_timestamp();
+    sleep_update_time = get_sleep_update_timestamp();
     // 获取时间戳
-    update_time_info(sleep_time, sleep_time_str);
+    update_time_info(sleep_update_time, sleep_time_str);
     return sleep_time_str;
   }
+  //校验时间更新
+  bool SleepModel::CheckSleepTime()
+  {
+    // 获取睡眠最新时间
+    if (sleep_update_time != get_sleep_update_timestamp()) {
+      return true;
+      }
+    return false;
+  }
   void SleepModel::update_sleep(SLEEP_T *data)
   {
     if (data == nullptr)