From f633dacf1d539bb66276cae4df681129ddd691e3 Mon Sep 17 00:00:00 2001 From: Caisking Date: Tue, 3 Mar 2026 14:06:47 +0800 Subject: [PATCH] =?utf8?q?=E8=AE=BE=E7=BD=AE=E8=BF=90=E5=8A=A8=E7=BB=93?= =?utf8?q?=E6=9D=9F=E7=95=8C=E9=9D=A2=E4=B8=8D=E8=83=BD=E5=BC=B9=E7=AA=97?= =?utf8?q?=E7=9B=AE=E6=A0=87=E8=BE=BE=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingEnddataView.cpp | 8 +++++++- .../traing/training_card/src/TraingCardPresenter.cpp | 2 ++ .../traingrecord/src/TraingRecordPresenter.cpp | 3 +++ .../service/msg_center/src/msg_center_customer.cpp | 8 +++++--- code/sdk/zhihui/utils/custom_runtime.c | 10 ++++++++++ code/sdk/zhihui/utils/custom_runtime.h | 8 ++++++++ 6 files changed, 35 insertions(+), 4 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp index e93f7c79e..dd5ed6682 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp @@ -2,6 +2,7 @@ #include "traing/include/TraingEnddataView.h" #include "UiConfig.h" +#include "custom_runtime.h" #include "common/image_cache_manager.h" #include "components/ui_button.h" #include "components/ui_canvas.h" @@ -47,11 +48,16 @@ ColorType textColor = Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f); static TraingEnddataView *g_pTraingEnddataView{nullptr}; -TraingEnddataView::TraingEnddataView() { g_pTraingEnddataView = this; } +TraingEnddataView::TraingEnddataView() { + //设置一个结束界面flag 如果是runtime是结束界面就不能弹窗 + uapi_dev_runtime_set_train_status_is_end_flag(1); + g_pTraingEnddataView = this; +} TraingEnddataView::~TraingEnddataView() { DeInit(); g_pTraingEnddataView = nullptr; + uapi_dev_runtime_set_train_status_is_end_flag(0); } TraingEnddataView *TraingEnddataView::GetInstance() { diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp index 730a94684..e3f1aa68d 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -34,6 +34,7 @@ #include #include #include + #include "custom_runtime.h" extern "C" void do_cywee_service_check_msg(int cmd, int data[]); @@ -618,6 +619,7 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) { // 进入训练详情 NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA); NativeAbility::GetInstance().ClearSliceIdStack(); // 清空所有SLiceId栈元素 + uapi_dev_runtime_set_train_status_is_end_flag(1); } else { // 进入训练记录 // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_RECORD); diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp index 9e1845420..017eacd78 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp @@ -25,6 +25,8 @@ #include "NativeRegisterManager.h" #include "uicomponents/UIComponents.h" + +#include "custom_runtime.h" namespace OHOS { REGIST_MENU_PRO(VIEW_TRAINING_RECORD, TraingRecordView, TraingRecordPresenter, @@ -150,6 +152,7 @@ namespace OHOS // 这样OnStart()中调用IsNeedGPS()时能正确判断 TraingModel::GetInstance()->SetSportdata(&sportData); NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGENDDATA); + uapi_dev_runtime_set_train_status_is_end_flag(1); return true; } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the sportDataVector is error"); diff --git a/code/sdk/application/wearable/fd272/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/fd272/service/msg_center/src/msg_center_customer.cpp index 30793ca4c..e5885e9e2 100644 --- a/code/sdk/application/wearable/fd272/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/fd272/service/msg_center/src/msg_center_customer.cpp @@ -1066,9 +1066,11 @@ void MsgCenterNotifyLowPowerAlarmProc(const Topic topic, Request* req) } // /* 运动过程中不弹目标达成,避免打扰用户;使用 runtime 训练状态(0 未训练/结束,1 训练中) */ - // if (uapi_dev_runtime_get_train_status() != 0) { - // return; - // } + if (uapi_dev_runtime_get_train_status_is_end_flag() != 0) { + return; + } + + /* 同时只弹一个:本轮只发布第一个达成的目标,顺序:步数 -> 距离 -> 燃脂 -> 站立 -> 卡路里 */ bool published = false; diff --git a/code/sdk/zhihui/utils/custom_runtime.c b/code/sdk/zhihui/utils/custom_runtime.c index 0966eca76..8df62c264 100644 --- a/code/sdk/zhihui/utils/custom_runtime.c +++ b/code/sdk/zhihui/utils/custom_runtime.c @@ -79,6 +79,7 @@ typedef struct uint8_t sedentary_status; uint8_t drinkremind_status; uint8_t train_status;//训练状态 + uint8_t train_status_is_end_flag;//训练结束界面标志,1 处于结束界面 0 非结束界面 uint8_t saveele_status;//省电模式状态 uint8_t lock_status;//密码锁状态 uint8_t motion_recognition_status;//运动识别开关状态 @@ -452,6 +453,15 @@ uint8_t uapi_dev_runtime_get_train_status(void) { return g_runtime.train_status; } +/*设置训练结束界面标志*/ +void uapi_dev_runtime_set_train_status_is_end_flag(uint8_t flag) +{ + g_runtime.train_status_is_end_flag = flag; +} +uint8_t uapi_dev_runtime_get_train_status_is_end_flag(void) +{ + return g_runtime.train_status_is_end_flag; +} /*设置省电模式状态*/ void uapi_dev_runtime_set_saveele_status(uint8_t status) { diff --git a/code/sdk/zhihui/utils/custom_runtime.h b/code/sdk/zhihui/utils/custom_runtime.h index 9f781fb84..5d1175cb8 100644 --- a/code/sdk/zhihui/utils/custom_runtime.h +++ b/code/sdk/zhihui/utils/custom_runtime.h @@ -96,6 +96,14 @@ uint8_t uapi_dev_runtime_get_drinkremind_status(void); void uapi_dev_runtime_set_train_status(uint8_t status); uint8_t uapi_dev_runtime_get_train_status(void); +/* + 设置训练结束界面标志 + 0 非结束界面 + 1 处于结束界面(不弹窗等) +*/ +void uapi_dev_runtime_set_train_status_is_end_flag(uint8_t flag); +uint8_t uapi_dev_runtime_get_train_status_is_end_flag(void); + /* 设置训练状态 0 未开启省电 -- 2.17.1