From 4fb7ff998ba612f9bf418df2e0f3045e83f67e03 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Fri, 25 Oct 2024 21:43:25 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A8=E7=9B=98=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?utf8?q?=E6=AD=A5=E6=95=B0=E5=AE=8C=E6=88=90=E7=9B=AE=E6=A0=87=E7=99=BE?= =?utf8?q?=E5=88=86=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/activity/src/ActivityModel.cpp | 2 + .../nativeui/goal/include/goalmodel.h | 1 + .../fd230app/nativeui/goal/src/goalmodel.cpp | 5 +++ .../main/include/dial/DialModelStepgoal.h | 29 ++++++++++++++ .../main/src/dial/DialModelStepgoal.cpp | 39 +++++++++++++++++++ 5 files changed, 76 insertions(+) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoal.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/activity/src/ActivityModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/activity/src/ActivityModel.cpp index 925fae3f0..a05caf528 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/activity/src/ActivityModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/activity/src/ActivityModel.cpp @@ -23,6 +23,7 @@ #include "DialModelSteps.h" #include "DialModelCalorie.h" #include "DialModelDistance.h" +#include "DialModelStepgoal.h" #include "cywee_service.h" #include "custom_runtime.h" #include "goal/include/goalmodel.h" @@ -141,6 +142,7 @@ static void Notify(void *args, const Topic topic, Request* request) OHOS::ActivityModel::GetInstance()->ReviseStepCounter(counter); OHOS::DialModelSteps::GetInstance() ->UpdateSteps(counter);//更新表盘步数 + OHOS::DialModelStepgoal::GetInstance() ->UpdateStepgoal(counter);//更新表盘目标 OHOS::DialModelDistance::GetInstance() ->UpdateDistance(get_distance_data());//更新表盘距离 OHOS::DialModelCalorie::GetInstance() ->UpdateCalorie(get_calories_data());//更新表盘卡路里 diff --git a/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h b/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h index 2c99a7186..7758b33ca 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h @@ -46,6 +46,7 @@ namespace OHOS char* getstandnew(); void updata(); void GoalModelInitdata(); + uint32_t getstepgoaldata(); uint8_t get_step_goal_show() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp b/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp index ad5a45064..b051f6d3c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp @@ -12,6 +12,7 @@ #include "ConfigModel.h" #include "cywee_hal.h" #include "goal_notification.h" + namespace OHOS { @@ -62,6 +63,10 @@ namespace OHOS } return value; } + uint32_t GoalModel::getstepgoaldata() + { + return step; + } char stepgoalstr[20]; char *GoalModel::getstepGoal() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoal.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoal.h new file mode 100644 index 000000000..77ee2f53f --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoal.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoal + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Stepgoal_H +#define DIAL_MODEL_Stepgoal_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoal : public DialBaseModel { +public: + DialModelStepgoal() {} + ~DialModelStepgoal() override {} + static DialModelStepgoal *GetInstance() { + static DialModelStepgoal instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateStepgoal(uint32_t Stepgoal); + +private: + float stepgoal_ = 0; // 11520.0: default step value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp new file mode 100644 index 000000000..a07e2a643 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp @@ -0,0 +1,39 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelSteps + * Author: + * Create: 2023-12 + */ + +#include "DialModelStepgoal.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL, + OHOS::DialModelStepgoal::GetInstance()); + +namespace OHOS { +bool DialModelStepgoal::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + out = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::STEP_TARGET, stepgoal_); + return true; +} + +void DialModelStepgoal::UpdateStepgoal(uint32_t steps) { + uint32_t step_ = static_cast(steps); + uint32_t goal = GoalModel::GetInstance().getstepgoaldata(); + if (goal > 0) { + stepgoal_ = (static_cast(step_) / goal) * 100; + if (stepgoal_ > 100) + stepgoal_ = 100; + stepgoal_ = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::STEP_TARGET, stepgoal_); + } + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_STEPS_GOAL, + stepgoal_); + } +} +} // namespace OHOS -- 2.17.1