* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-07-29 15:35:06
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodDetectionView.cpp
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodDetectionView.cpp
*/
-#include "UiConfig.h"
-#include "wearable_log.h"
#include "bloodoxygen/include/BloodDetectionView.h"
+#include "UiConfig.h"
#include "bloodoxygen/include/BloodOxygenModel.h"
+#include "power_display_service.h"
#include "ui_image_animator.h"
#include "ui_resource_string.h"
-#include "power_display_service.h"
#include "uicomponents/UIComponents.h"
-namespace OHOS
-{
- // 动态刷新设置
- static constexpr uint16_t IMAGE_SIZE = 180;
- static constexpr uint16_t IMAGE_POSITION_Y = 143;
- static constexpr uint16_t IMAGE_POSITION_X = 143;
- static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SIZE = 30;
- static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SPEED = 40;
- static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
+#include "wearable_log.h"
+namespace OHOS {
+// 动态刷新设置
+static constexpr uint16_t IMAGE_SIZE = 180;
+static constexpr uint16_t IMAGE_POSITION_Y = 143;
+static constexpr uint16_t IMAGE_POSITION_X = 143;
+static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SIZE = 30;
+static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SPEED = 40;
+static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
- static ImageAnimatorInfo g_imageAnimatorInfo_blood[30] = {
- {PNG_CHECK_TIME_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- };
+static ImageAnimatorInfo g_imageAnimatorInfo_blood[30] = {
+ {PNG_CHECK_TIME_IMAGE_0,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_1,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_2,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_3,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_4,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_5,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_6,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_7,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_8,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_9,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_10,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_11,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_12,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_13,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_14,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_15,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_16,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_17,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_18,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_19,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_20,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_21,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_22,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_23,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_24,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_25,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_26,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_27,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_28,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+ {PNG_CHECK_TIME_IMAGE_29,
+ {IMAGE_POSITION_X, IMAGE_POSITION_Y},
+ IMAGE_SIZE,
+ IMAGE_SIZE,
+ IMG_SRC_FILE_PATH},
+};
- static BloodDetectionView *g_pBloodCheckView = nullptr;
- BloodDetectionView::BloodDetectionView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::BloodBandoffView");
- g_pBloodCheckView = this;
+static BloodDetectionView *g_pBloodCheckView = nullptr;
+BloodDetectionView::BloodDetectionView() {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::BloodBandoffView");
+ g_pBloodCheckView = this;
+}
+BloodDetectionView::~BloodDetectionView() {
+ if (scrollView_) {
+ scrollView_->RemoveAll();
+ if (titleLabel) {
+ delete titleLabel;
+ titleLabel = nullptr;
}
- BloodDetectionView::~BloodDetectionView()
- {
- if(titleLabel)
- {
- delete titleLabel;
- titleLabel = nullptr;
- }
- if(testButton)
- {
- delete testButton;
- testButton = nullptr;
- }
- if(imageAnimator)
- {
- imageAnimator->Stop();
- delete imageAnimator;
- imageAnimator = nullptr;
- }
- if(Spo2Text)
- {
- delete Spo2Text;
- Spo2Text = nullptr;
- }
- g_pBloodCheckView = nullptr;
+ if (testButton) {
+ delete testButton;
+ testButton = nullptr;
}
- BloodDetectionView *BloodDetectionView::GetInstance(void)
- {
- return g_pBloodCheckView;
+ if (imageAnimator) {
+ imageAnimator->Stop();
+ delete imageAnimator;
+ imageAnimator = nullptr;
}
- UIImageAnimatorView *BloodDetectionView::GetImageAnimator()
- {
- return imageAnimator;
+ if (Spo2Text) {
+ delete Spo2Text;
+ Spo2Text = nullptr;
}
+ }
+ delete scrollView_;
+ scrollView_ = nullptr;
+ g_pBloodCheckView = nullptr;
+}
+BloodDetectionView *BloodDetectionView::GetInstance(void) {
+ return g_pBloodCheckView;
+}
+UIImageAnimatorView *BloodDetectionView::GetImageAnimator() {
+ return imageAnimator;
+}
- /*更新显示数据*/
- void BloodDetectionView::UpShowBloodText()
- {
- uint16_t spo2_ = BloodOxygenModel::GetInstance()->GetShowSPO2data();
- std::string bloodoxygenStr = std::to_string(spo2_);
- if (Spo2Text != nullptr)
- Spo2Text->SetText(bloodoxygenStr.c_str());
- }
- /*初始化检测界面*/
- bool BloodDetectionView::BloodDetectionViewInit()
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionViewInit is begin");
- /*初始化title*/
- InitLabelExt(titleLabel, 83, 50, 300, 35, "title", STR_CHECKON, DEFAULT_VECTOR_FONT_FILENAME, 30);
- scrollView_->Add(titleLabel);
-
- /* -------------------------------------------------------------------------- */
- imageAnimator = new UIImageAnimatorView();
- if (imageAnimator == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageAnimatorView fail");
- return false;
- }
- imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_blood, DETECTION_IMAGE_ANIMATORVIEW_SIZE, DETECTION_IMAGE_ANIMATORVIEW_SPEED);
- imageAnimator->SetRepeat(true);
- scrollView_->Add(imageAnimator);
-
- /* -------------------------------------------------------------------------- */
- /*初始化血氧值label*/
- // InitUILabel(Spo2Text, 83, 83, 300, 300, "bloodtext", "--", GILROY_BOLD_FONT, 140);
- // scrollView_->Add(Spo2Text);
+/*更新显示数据*/
+void BloodDetectionView::UpShowBloodText() {
+ uint16_t spo2_ = BloodOxygenModel::GetInstance()->GetShowSPO2data();
+ std::string bloodoxygenStr = std::to_string(spo2_);
+ if (Spo2Text != nullptr)
+ Spo2Text->SetText(bloodoxygenStr.c_str());
+}
+/*初始化检测界面*/
+bool BloodDetectionView::BloodDetectionViewInit() {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionViewInit is begin");
+ /*初始化title*/
+ InitLabelExt(titleLabel, 83, 50, 300, 35, "title", STR_CHECKON,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ scrollView_->Add(titleLabel);
- /* -------------------------------------------------------------------------- */
- InitButtonExt(testButton, 93, 330, 280, 90, STOPCHECK, STR_CHECKSTOP, 30);
- scrollView_->Add(testButton);
+ /* --------------------------------------------------------------------------
+ */
+ imageAnimator = new UIImageAnimatorView();
+ if (imageAnimator == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "BloodBandoffView::new UIImageAnimatorView fail");
+ return false;
+ }
+ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_blood,
+ DETECTION_IMAGE_ANIMATORVIEW_SIZE,
+ DETECTION_IMAGE_ANIMATORVIEW_SPEED);
+ imageAnimator->SetRepeat(true);
+ scrollView_->Add(imageAnimator);
- /* -------------------------------------------------------------------------- */
- UIView::OnClickListener *clickLeftListener = (UIView::OnClickListener *)OHOS::BloodDetectionPresenter::GetInstance();
- if (clickLeftListener == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionView::new clickLeftListener fail");
- return false;
- }
- testButton->SetOnClickListener(clickLeftListener);
- /* -------------------------------------------------------------------------- */
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionViewInit is ok");
- return true;
- }
- void BloodDetectionView::OnStart()
- {
+ /* --------------------------------------------------------------------------
+ */
+ /*初始化血氧值label*/
+ // InitUILabel(Spo2Text, 83, 83, 300, 300, "bloodtext", "--",
+ // GILROY_BOLD_FONT, 140); scrollView_->Add(Spo2Text);
- scrollView_ = new UIScrollView();
- if (scrollView_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView_ new fail");
- return;
- }
- scrollView_->SetScrollBlankSize(35);
- scrollView_->SetReboundSize(50);
- scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
- Screen::GetInstance().GetHeight());
+ /* --------------------------------------------------------------------------
+ */
+ InitButtonExt(testButton, 93, 330, 280, 90, STOPCHECK, STR_CHECKSTOP, 30);
+ scrollView_->Add(testButton);
- scrollView_->SetTouchable(false);
- scrollView_->SetDraggable(false);
- scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
- scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-
- if (!BloodDetectionViewInit())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionView::InitBloodView fail");
- }
+ /* --------------------------------------------------------------------------
+ */
+ UIView::OnClickListener *clickLeftListener =
+ (UIView::OnClickListener *)OHOS::BloodDetectionPresenter::GetInstance();
+ if (clickLeftListener == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "BloodDetectionView::new clickLeftListener fail");
+ return false;
+ }
+ testButton->SetOnClickListener(clickLeftListener);
+ /* --------------------------------------------------------------------------
+ */
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodDetectionViewInit is ok");
+ return true;
+}
+void BloodDetectionView::OnStart() {
+ scrollView_ = new UIScrollView();
+ if (scrollView_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView_ new fail");
+ return;
+ }
+ scrollView_->SetScrollBlankSize(35);
+ scrollView_->SetReboundSize(50);
+ scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
- if (imageAnimator != nullptr)
- {
- imageAnimator->Start();
- }
+ scrollView_->SetTouchable(false);
+ scrollView_->SetDraggable(false);
+ scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
+ scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
- AddViewToRootContainer(scrollView_);
- RootView::GetInstance()->SetOnKeyActListener(presenter_);
+ if (!BloodDetectionViewInit()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "BloodDetectionView::InitBloodView fail");
+ }
- }
+ if (imageAnimator != nullptr) {
+ imageAnimator->Start();
+ }
+ AddViewToRootContainer(scrollView_);
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
+
+} // namespace OHOS
* @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/fd230app/nativeui/bloodoxygen/src/BloodResultView.cpp
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodResultView.cpp
*/
+#include "bloodoxygen/include/BloodOxygenModel.h"
#include "common/image_cache_manager.h"
-#include "ui_resource_image.h"
-#include <ui_scroll_view.h>
#include "components/ui_button.h"
-#include "main/include/MainViewSample.h"
#include "components/ui_view_group.h"
-#include "main/include/dial/DialModelSPO2.h"
+#include "main/include/MainViewSample.h"
#include "main/include/dial/DialModelHeartRate.h"
-#include "bloodoxygen/include/BloodOxygenModel.h"
+#include "main/include/dial/DialModelSPO2.h"
+#include "ui_resource_image.h"
+#include <ui_scroll_view.h>
#include "UiConfig.h"
-#include "uicomponents/UIComponents.h"
#include "main/include/MainPresenterSample.h"
+#include "uicomponents/UIComponents.h"
#include "bloodoxygen/include/BloodResultPresenter.h"
#include "bloodoxygen/include/BloodResultView.h"
-namespace OHOS
-{
- static BloodResultView *g_pBloodResultView{nullptr};
- static const char *BLOODBACKPATH = "/user/res/Blood/beijing.bin";
- static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
- BloodResultView::BloodResultView()
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::BloodResultView");
- g_pBloodResultView = this;
- }
+namespace OHOS {
+static BloodResultView *g_pBloodResultView{nullptr};
+static const char *BLOODBACKPATH = "/user/res/Blood/beijing.bin";
+static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
+BloodResultView::BloodResultView() {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::BloodResultView");
+ g_pBloodResultView = this;
+}
- BloodResultView::~BloodResultView()
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::~BloodResultView");
- DeInit();
- g_pBloodResultView = nullptr;
- }
+BloodResultView::~BloodResultView() {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::~BloodResultView");
+ DeInit();
+ g_pBloodResultView = nullptr;
+}
- BloodResultView *BloodResultView::GetInstance()
- {
- return g_pBloodResultView;
+BloodResultView *BloodResultView::GetInstance() { return g_pBloodResultView; }
+
+/* -------------------------------------------------------------------------- */
+void BloodResultView::UpSPO2Text() {
+ if (bloodLabel == nullptr || timeLabel == nullptr)
+ return;
+
+ // 更新血氧数据
+ uint16_t spo2 = BloodOxygenModel::GetInstance()->GetSPO2data();
+ if (spo2 != 0) // 判断是否为默认数据
+ {
+ // 更新数据
+ std::string bloodoxygenStr = std::to_string(spo2) + "%";
+ bloodLabel->SetText(bloodoxygenStr.c_str());
+
+ // 获取时间差
+ uint32_t time = BloodResultPresenter::GetInstance()->GetCurrentTime();
+ uint32_t check_time = BloodOxygenModel::GetInstance()->GetCheckTime();
+ int time_diff =
+ BloodResultPresenter::GetInstance()->GetTDOA(time, check_time);
+
+ if (time_diff == 0) {
+ timeLabel->SetTextId(STR_CHECKNEW);
+ } else if (time_diff <= 60) {
+ UpdateLabel(timeLabel, time_diff, STR_CHECKTIME);
+ } else {
+ timeLabel->SetTextId(STR_CHECKLONG);
}
+ } else {
+ bloodLabel->SetText("--");
+ timeLabel->SetTextId(STR_CHECKNO);
+ }
+}
- /* -------------------------------------------------------------------------- */
- void BloodResultView::UpSPO2Text()
- {
- if (bloodLabel == nullptr || timeLabel == nullptr)
- return;
-
- // 更新血氧数据
- uint16_t spo2 = BloodOxygenModel::GetInstance()->GetSPO2data();
- if (spo2 != 0) // 判断是否为默认数据
- {
- // 更新数据
- std::string bloodoxygenStr = std::to_string(spo2) + "%";
- bloodLabel->SetText(bloodoxygenStr.c_str());
-
- // 获取时间差
- uint32_t time = BloodResultPresenter::GetInstance()->GetCurrentTime();
- uint32_t check_time = BloodOxygenModel::GetInstance()->GetCheckTime();
- int time_diff = BloodResultPresenter::GetInstance()->GetTDOA(time, check_time);
-
- if (time_diff == 0)
- {
- timeLabel->SetTextId(STR_CHECKNEW);
- }
- else if (time_diff <= 60)
- {
- UpdateLabel(timeLabel, time_diff, STR_CHECKTIME);
- }
- else
- {
- timeLabel->SetTextId(STR_CHECKLONG);
- }
- }
- else
- {
- bloodLabel->SetText("--");
- timeLabel->SetTextId(STR_CHECKNO);
- }
- }
+/* -------------------------------------------------------------------------- */
+/***
+ * @description:
+ * @return 添加按键是否成功
+ */
+bool BloodResultView::AddButton() {
+ InitButtonExt(checkButton, 118, 336, 230, 80, CLICK_BLOOD, STR_CHECK, 30);
+ checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF5A36); // 设置按键颜色
+ // 设置按键监听
+ UIView::OnClickListener *clickListener =
+ (UIView::OnClickListener *)OHOS::BloodResultPresenter::GetInstance();
+ checkButton->SetOnClickListener(clickListener);
+
+ scrollView_->Add(checkButton);
+ return true;
+}
+/***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+bool BloodResultView::InitLable() {
+ /*初始化title*/
+ InitLabelExt(titleLabel, 83, 50, 300, 35, "title", STR_BLOOD,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ /*初始化血氧值label*/
+ InitUILabel(bloodLabel, 83, 32, 300, 300, "bloodtext", "--",
+ DEFAULT_VECTOR_FONT_FILENAME, 140);
+ /*初始化检测时间*/
+ InitLabelExt(timeLabel, 53, 270, 360, 35, "time", STR_CHECKNO,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ // 设置来回滚动属性
+ timeLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ timeLabel->SetRollSpeed(23);
+
+ UpSPO2Text();
+
+ scrollView_->Add(titleLabel);
+ scrollView_->Add(bloodLabel);
+ scrollView_->Add(timeLabel);
+
+ return true;
+}
+/***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+bool BloodResultView::Initbackground() {
- /* -------------------------------------------------------------------------- */
- /***
- * @description:
- * @return 添加按键是否成功
- */
- bool BloodResultView::AddButton()
- {
- InitButtonExt(checkButton, 118, 336, 230, 80, CLICK_BLOOD, STR_CHECK, 30);
- checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF5A36); // 设置按键颜色
- // 设置按键监听
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::BloodResultPresenter::GetInstance();
- checkButton->SetOnClickListener(clickListener);
-
- scrollView_->Add(checkButton);
- return true;
- }
- /***
- * @description:
- * @return 初始化标签是否成功
- */
- bool BloodResultView::InitLable()
- {
- /*初始化title*/
- InitLabelExt(titleLabel, 83, 50, 300, 35, "title", STR_BLOOD, DEFAULT_VECTOR_FONT_FILENAME, 30);
- /*初始化血氧值label*/
- InitUILabel(bloodLabel, 83, 32, 300, 300, "bloodtext", "--", DEFAULT_VECTOR_FONT_FILENAME, 140);
- /*初始化检测时间*/
- InitLabelExt(timeLabel, 53, 270, 360, 35, "time", STR_CHECKNO, DEFAULT_VECTOR_FONT_FILENAME, 30);
- // 设置来回滚动属性
- timeLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
- timeLabel->SetRollSpeed(23);
-
- UpSPO2Text();
-
- scrollView_->Add(titleLabel);
- scrollView_->Add(bloodLabel);
- scrollView_->Add(timeLabel);
-
- return true;
+ background = new UIImageView();
+ background->SetPosition(0, 0, 466, 466);
+ background->SetSrc(BLOODBACKPATH);
+
+ scrollView_->Add(background);
+ return true;
+}
+/***
+ * @description:
+ * @return 是否初始化成功
+ */
+bool BloodResultView::BloodResultViewInit() {
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BloodResultView::InitView()");
+ if (!Initbackground()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ };
+ if (!InitLable()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ };
+ if (!AddButton()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
+ };
+ return true;
+}
+/***
+ * @description:
+ * @return 删除组件
+ */
+void BloodResultView::DeInit() {
+ if (scrollView_) {
+ scrollView_->RemoveAll();
+ if (background != nullptr) {
+ delete background;
+ background = nullptr;
}
- /***
- * @description:
- * @return 初始化背景是否成功
- */
- bool BloodResultView::Initbackground()
- {
-
- background = new UIImageView();
- background->SetPosition(0, 0, 466, 466);
- background->SetSrc(BLOODBACKPATH);
-
- scrollView_->Add(background);
- return true;
+ if (bloodLabel != nullptr) {
+ delete bloodLabel;
+ bloodLabel = nullptr;
}
- /***
- * @description:
- * @return 是否初始化成功
- */
- bool BloodResultView::BloodResultViewInit()
- {
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool BloodResultView::InitView()");
- if (!Initbackground())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
- };
- if (!InitLable())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
- };
- if (!AddButton())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
- };
- return true;
+ if (timeLabel != nullptr) {
+ delete timeLabel;
+ timeLabel = nullptr;
}
- /***
- * @description:
- * @return 删除组件
- */
- void BloodResultView::DeInit()
- {
- if (background != nullptr)
- {
- delete background;
- background = nullptr;
- }
- if (bloodLabel != nullptr)
- {
- delete bloodLabel;
- bloodLabel = nullptr;
- }
- if (timeLabel != nullptr)
- {
- delete timeLabel;
- timeLabel = nullptr;
- }
- if (titleLabel != nullptr)
- {
- delete titleLabel;
- titleLabel = nullptr;
- }
- if(checkButton!=nullptr)
- {
- delete checkButton;
- checkButton = nullptr;
- }
+ if (titleLabel != nullptr) {
+ delete titleLabel;
+ titleLabel = nullptr;
}
-
- void BloodResultView::OnStart()
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::OnStart");
- scrollView_ = new UIScrollView();
- if (scrollView_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView_ new fail");
- return;
- }
- scrollView_->SetScrollBlankSize(35);
- scrollView_->SetReboundSize(50);
- scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
- Screen::GetInstance().GetHeight());
-
- scrollView_->SetTouchable(false);
- scrollView_->SetDraggable(false);
- scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
- scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
-
- if (!BloodResultViewInit())
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::InitBloodView fail");
- }
-
- AddViewToRootContainer(scrollView_);
- RootView::GetInstance()->SetOnKeyActListener(presenter_);
+ if (checkButton != nullptr) {
+ delete checkButton;
+ checkButton = nullptr;
}
+ }
+ delete scrollView_;
+ scrollView_ = nullptr;
+}
+void BloodResultView::OnStart() {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodResultView::OnStart");
+ scrollView_ = new UIScrollView();
+ if (scrollView_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView_ new fail");
+ return;
+ }
+ scrollView_->SetScrollBlankSize(35);
+ scrollView_->SetReboundSize(50);
+ scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
+
+ scrollView_->SetDraggable(true);
+ scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
+ scrollView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+
+ UIView::OnDragListener *listener = static_cast<UIView::OnDragListener*>(BloodResultPresenter::GetInstance());
+ scrollView_->SetOnDragListener(listener);
+
+ if (!BloodResultViewInit()) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "BloodResultView::InitBloodView fail");
+ }
+
+ AddViewToRootContainer(scrollView_);
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
+
+} // namespace OHOS