From: Caisking Date: Tue, 17 Jun 2025 11:04:41 +0000 (+0800) Subject: 增加血压检测失败UI X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=60f2444e562f5cee0342c1d48e1c6dd0be986852;p=mirrors%2FFD230.git 增加血压检测失败UI --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index b628bc32e..e65e91a2b 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -243,6 +243,7 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectBeginView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectEndView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPCalPosReqView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPLastCalibrationTimeView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h new file mode 100644 index 000000000..2bc9e4078 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h @@ -0,0 +1,35 @@ + +#ifndef BP_DetectFial_VIEW_H +#define BP_DetectFial_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "components/ui_button.h" +#include "components/ui_label_button.h" +#include "components/ui_view_group.h" +#include "components/ui_scroll_view.h" +#include "components/ui_label_button_ext.h" +namespace OHOS +{ + + class BPDetectFailView + { + public: + BPDetectFailView(); + ~BPDetectFailView(); + static BPDetectFailView *GetInstance(); + UIViewGroup * BPDetectFailInit(); + + + void UpdateText(); + + private: + UIImageView *icon_fail = nullptr; + UILabelExt *titlefail = nullptr; + UILabelButtonExt *ReCheckButton{nullptr}; + + UIViewGroup *group{nullptr}; + }; +} + +#endif // 血压主界面 \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h index fceee4d66..d0e19fd7c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h @@ -35,6 +35,7 @@ #include "bloodpressure/include/detection/BPDetectBeginView.h" #include "bloodpressure/include/detection/BPDetectEndView.h" #include "bloodpressure/include/detection/BPDetectErrorView.h" +#include "bloodpressure/include/detection/BPDetectFailView.h" #define CLICK_BLOOD_PRESSURE "click_bloodpressure" #define RE_CLICK_BLOOD_PRESSURE "re_click_bloodpressure" @@ -52,10 +53,12 @@ typedef enum : uint8_t { UNDER_CALIBRATION_BPVIEW, //结果界面 RESULT_BPVIEW, - //检测异常界面 + //预警值界面 ERROR_BPVIEW, //sos求救界面 SOS_BPVIEW, + //测量失败界面 + FAIL_BPVIEW, MAX_BPDECETVIEW, } BPDETECTVIEWID; @@ -82,6 +85,7 @@ public: bool ChangeBPDetectBeginView(int16_t thisView); bool ChangeBPDetectEndView(int16_t thisView); bool ChangeBPDetectErrorView(int16_t thisView); + bool ChangeBPDetectFailView(int16_t thisView); private: UIViewGroup *group[MAX_BPDECETVIEW]{nullptr}; @@ -90,6 +94,7 @@ private: BPDetectBeginView *g_pBPDetectBeginView = nullptr; BPDetectEndView *g_pBPDetectEndView = nullptr; BPDetectErrorView *g_pBPDetectErrorView = nullptr; + BPDetectFailView *g_pBPDetectFailView = nullptr; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp new file mode 100644 index 000000000..d7c612aab --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp @@ -0,0 +1,90 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 14:36:25 + * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodpressure/src/BPDetectFailView.cpp + */ + +#include "ui_resource_image.h" +#include "UiConfig.h" +#include "wearable_log.h" +#include "uicomponents/UIComponents.h" +#include "bloodpressure/include/detection/BPDetectionPresenter.h" +#include "bloodpressure/include/detection/BPDetectFailView.h" +#include "bloodpressure/include/BPModel.h" +namespace OHOS +{ + static BPDetectFailView *g_pBPDetectFailView{nullptr}; + static const char* image_bp = "/user/res/BPCalibration/error.bin"; + + BPDetectFailView::BPDetectFailView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::BPDetectFailView"); + g_pBPDetectFailView = this; + } + BPDetectFailView::~BPDetectFailView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::~BPDetectFailView"); + if(group) + { + group->RemoveAll(); + if(icon_fail) + { + delete icon_fail; + icon_fail = nullptr; + } + if(titlefail) + { + delete titlefail; + titlefail = nullptr; + } + if(ReCheckButton) + { + delete ReCheckButton; + ReCheckButton = nullptr; + } + } + delete group; + group = nullptr; + g_pBPDetectFailView = nullptr; + } + + BPDetectFailView *BPDetectFailView::GetInstance() + { + return g_pBPDetectFailView; + } + + + + /*** + * @description: + * @return 是否初始化成功 + */ + UIViewGroup *BPDetectFailView::BPDetectFailInit() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool BPDetectFailView::InitView()"); + group = new UIViewGroup(); + group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + + + InitImageView(icon_fail, 131, 131, 100, 100, "image_bp", image_bp); + + InitLabel(titlefail, 133, 57, 230, 80, "titlefail","测量失败", DEFAULT_VECTOR_FONT_FILENAME, 30); + + InitButtonExt(ReCheckButton, 118, 360, 230, 80, RE_CLICK_BLOOD_PRESSURE,STR_RECHECK, 30); + ReCheckButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色 + UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::BPDetectionPresenter::GetInstance(); + ReCheckButton->SetOnClickListener(clickListener);//设置按键监听 + + + group->Add(icon_fail); + group->Add(titlefail); + group->Add(ReCheckButton); + + + return group; + } + + + +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp index d22c844a6..43f080e8c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp @@ -103,7 +103,8 @@ namespace OHOS //预警界面->退出 else if (strcmp(view.GetViewId(), EXIE_CLICK) == 0) { - NavigateBack(); + // NavigateBack(); + BPDetectionView::GetInstance()->ChangeView(ERROR_BPVIEW,FAIL_BPVIEW);//test } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp index e3f89cbc0..02d92e722 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp @@ -62,6 +62,12 @@ namespace OHOS g_pBPDetectErrorView = nullptr; } + if(g_pBPDetectFailView) + { + delete g_pBPDetectFailView; + g_pBPDetectFailView = nullptr; + } + for(int i = 0; i < MAX_BPDECETVIEW; ++i) { @@ -234,6 +240,26 @@ namespace OHOS return true; } + bool BPDetectionView::ChangeBPDetectFailView(int16_t thisView) + { + // 检查视图是否已初始化,避免重复创建 + if (group[thisView] == nullptr) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodPressureView::ChangeBPDetectFailView"); + // 创建首次校准视图实例 + g_pBPDetectFailView = new BPDetectFailView(); + if (g_pBPDetectFailView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "BloodPressureView::ChangeBPDetectFailView new BPDetectFailView fail"); + return false; + } + // 初始化视图并添加到视图组 + group[thisView] = g_pBPDetectFailView->BPDetectFailInit(); + container_->Add(group[thisView]); + } + return true; + } /** * 视图映射结构体 - 将视图ID映射到对应的视图切换函数 @@ -250,6 +276,8 @@ namespace OHOS {CALIBRATION_BPVIEW, &BPDetectionView::ChangeBPDetectBeginView}, {RESULT_BPVIEW, &BPDetectionView::ChangeBPDetectEndView}, {ERROR_BPVIEW, &BPDetectionView::ChangeBPDetectErrorView}, + {FAIL_BPVIEW, &BPDetectionView::ChangeBPDetectFailView}, + }; bool BPDetectionView::ClickFunc(int16_t interface)