#include "sleep/include/SleepModel.h"\r
#include "cat1_server_hal.h"\r
#include "custom_runtime.h"\r
+#include "uiservice/include/ui_service.h"\r
\r
#ifdef __cplusplus\r
extern "C"\r
OHOS::ConfigModel::GetInstance()->SetDnotdisturb(false); // 关闭勿扰\r
}\r
LOS_Msleep(1000);\r
- OHOS::SleepModel::GetInstance().ReInitData();//更新睡眠数据\r
+ OHOS::SleepModel::GetInstance().ReInitData(); // 更新睡眠数据\r
+ SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0);\r
do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL);\r
}\r
// 进入睡眠模式\r
void ClearAll(void);
AppGroupView *SleepPageInit(void);
- AppGroupView *SleepimePageInit(void);
+ AppGroupView *SleepTimePageInit(void);
SleepView *GetSleepView(void);
SleepTimeView *GetSleepTimeView(void);
UIView *GetSleepControlPageView(void);
+
public:
void OnStart() override;
void OnSetUpView() override;
bool SaveSleepData(const SleepDataUI &data); // 更新睡眠数据
bool DeleteSleepData(); // 清空睡眠文件
+ void UpdateSleepView();
+
private:
SleepModel();
SleepModel(const SleepModel &);
+/***
+ * @Date: 2024-06-25 10:33:08
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-12 20:00:41
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/sleep/src/SleepControlPresenter.cpp
+ */
#include "AppViewIDs.h"
#include "NativeAbility.h"
#include "sleep/include/SleepControlPresenter.h"
return sleepView;
}
- AppGroupView *SleepControlView::SleepimePageInit(void)
+ AppGroupView *SleepControlView::SleepTimePageInit(void)
{
sleeptimeView = new SleepTimeView();
if (sleeptimeView == nullptr)
static const SleepControlViewMapper g_pageMapper[] = {
{MAINSLEEPVIEW, &SleepControlView::SleepPageInit},
- {SLEEPTIMEVIEW, &SleepControlView::SleepimePageInit},
+ {SLEEPTIMEVIEW, &SleepControlView::SleepTimePageInit},
};
AppGroupView *SleepControlView::CreatePage(uint8_t SleepControlPageId)
}
return nullptr; // 如果没有找到匹配的视图ID,返回 nullptr
}
+
}
\ No newline at end of file
delete data; // 释放内存
}
+
+ void SleepModel::UpdateSleepView()
+ {
+ SleepControlView *p_SleepControlView = SleepControlView::GetInstance();
+ if (p_SleepControlView != nullptr)
+ {
+ if (p_SleepControlView->GetSleepView())
+ {
+ p_SleepControlView->GetSleepView()->SleepDataRefresh();
+ }
+ if (p_SleepControlView->GetSleepTimeView())
+ {
+ p_SleepControlView->GetSleepTimeView()->SleepDataRefresh();
+ }
+ }
+ }
static constexpr const char *SLEEP_JSON_PATH = "/user/userdata/health/sleep.json";
// 读取睡眠数据
SleepDataUI *SleepModel::ReadSleepData()
// 有数据则刷新
if (sleep_hour != 0 || sleep_min != 0)
{
- sleep->SetText((SleepModel::GetInstance().get_rest_str()).c_str());
- wake->SetText((SleepModel::GetInstance().get_wake_str()).c_str());
+ if (sleep != nullptr && wake != nullptr)
+ {
+ sleep->SetText((SleepModel::GetInstance().get_rest_str()).c_str());
+ wake->SetText((SleepModel::GetInstance().get_wake_str()).c_str());
+ }
+ }
+ if (goal != nullptr)
+ {
+ goal->SetText((SleepModel::GetInstance().get_goal_str()).c_str());
}
- goal->SetText((SleepModel::GetInstance().get_goal_str()).c_str());
}
void SleepTimeView::ClearAll()
// 有数据则刷新
if (sleep_hour != 0 || sleep_min != 0)
{
- time_hour->SetText(hour_str.c_str());
- time_minute->SetText(min_str.c_str());
-
- int value = (float(SleepModel::GetInstance().get_sleep_total()) / float(SleepModel::GetInstance().get_sleep_goal())) * 100;
+ if (time_hour != nullptr && time_minute != nullptr)
+ {
+ time_hour->SetText(hour_str.c_str());
+ time_minute->SetText(min_str.c_str());
+ }
+ float value = (static_cast<float>(SleepModel::GetInstance().get_sleep_total()) / static_cast<float>(SleepModel::GetInstance().get_sleep_goal())) * 100.0f;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "value %d!", value);
circleProgress_->SetValue(value);
- Invalidate();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Updata SleepTime!");
- RootView::GetInstance()->Invalidate();
}
// 更新目标时间
int totaltime = SleepModel::GetInstance().get_sleep_goal();
- UpdateLabel(goaltime, totaltime, STR_SLEEPMGOAL);
+ if (goaltime != nullptr)
+ {
+ UpdateLabel(goaltime, totaltime, STR_SLEEPMGOAL);
+ }
+
+ RootView::GetInstance()->Invalidate();
}
void SleepView::ClearAll()
+/***
+ * @Date: 2024-07-12 19:25:33
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-12 20:20:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
+ */
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
UI_UPDATE_SILENT_MODE, //更新静音模式
UI_UPDATE_WEATHER_DATA, //天气数据更新
+ UI_UPDATE_SLEEP_DATA, //睡眠数据更新
+
UI_AI_RESPONSE_USERDATA, //跳转到返回结果视图
UI_UPDATE_AI_QUESTION_STR, //更新AI答案的字符串
MAX_NUM_HANDLER,
#include <iostream>
#include "displaybrightness/include/DisplayBrightnessModel.h"
#include "soundandvibration/include/SoundAndVibrationModel.h"
+#include "sleep/include/SleepModel.h"
#include "aivoice/include/AiVoiceModel.h"
#include "weather/include/WeatherModel.h"
#include "uiservice/include/ui_service.h"
static void HandleUpdateSilentMode(Request *request);
static void HandleAiResponseUserData(Request *request);
static void HandleUpdateAIQuestionStr(Request *request);
+static void HandleUpdateSleep(Request *request);
+
// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
MsgHandlerEntry msgHandlers[] = {
{UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode},
{UI_AI_RESPONSE_USERDATA, HandleAiResponseUserData},
{UI_UPDATE_AI_QUESTION_STR, HandleUpdateAIQuestionStr},
+
+ {UI_UPDATE_SLEEP_DATA, HandleUpdateSleep},
};
/* -------------------------------------------------------------------------- */
static void ScreenTurnOn(Request *request)
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::AiVoiceModel::UpdateAiAnswerStr, &OHOS::AiVoiceModel::GetInstance()));
}
+
+void HandleUpdateSleep(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::SleepModel::UpdateSleepView, &OHOS::SleepModel::GetInstance()));
+}
/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}