设置运动结束界面不能弹窗目标达成 3235/2
authorCaisking <Casiking@zhihuishixun.com>
Tue, 3 Mar 2026 06:06:47 +0000 (14:06 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 3 Mar 2026 06:06:47 +0000 (14:06 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingEnddataView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traingrecord/src/TraingRecordPresenter.cpp
code/sdk/application/wearable/fd272/service/msg_center/src/msg_center_customer.cpp
code/sdk/zhihui/utils/custom_runtime.c
code/sdk/zhihui/utils/custom_runtime.h

index e93f7c7..dd5ed66 100644 (file)
@@ -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() {
index 730a946..e3f1aa6 100644 (file)
@@ -34,6 +34,7 @@
  #include <sstream>\r
  #include <thread>\r
  #include <unordered_map>\r
+ #include "custom_runtime.h"\r
  \r
  extern "C" void do_cywee_service_check_msg(int cmd, int data[]);\r
  \r
@@ -618,6 +619,7 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) {
      // 进入训练详情\r
      NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGENDDATA);\r
      NativeAbility::GetInstance().ClearSliceIdStack(); // 清空所有SLiceId栈元素\r
+     uapi_dev_runtime_set_train_status_is_end_flag(1);\r
    } else {\r
      // 进入训练记录\r
      // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_RECORD);\r
index 9e18454..017eacd 100644 (file)
@@ -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");
index 30793ca..e5885e9 100644 (file)
@@ -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;
index 0966eca..8df62c2 100644 (file)
@@ -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)
 {
index 9f781fb..5d1175c 100644 (file)
@@ -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 未开启省电