From 683d856e2757774dfc3fec5fcf9adbf94f0fb79b Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 3 Aug 2024 14:58:34 +0800 Subject: [PATCH] =?utf8?q?=E9=80=82=E9=85=8D=E5=BF=83=E7=8E=87Slice?= =?utf8?q?=E5=9B=9E=E9=80=80=E4=BB=A5=E5=8F=8A=E6=8C=89=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/heartrate/src/HeartPresenter.cpp | 301 ------------------ .../heartrate/src/HeartResultPresenter.cpp | 6 +- 2 files changed, 4 insertions(+), 303 deletions(-) delete mode 100644 code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp deleted file mode 100644 index b82bcbb54..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/*** - * @Date: 2024-04-17 16:49:23 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-06-13 17:09:11 - * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp - */ - -#include "common/task_manager.h" -#include "components/ui_label.h" -#include "components/ui_label_ext.h" -#include "ChangeSliceListener.h" -#include "broadcast_service.h" -#include -#include -#include -#include -#include -#include -#include "wearable_log.h" -#include "cmsis_os.h" -#include "securec.h" -#include "graphic_service.h" -#include -#include -#include "ppg_service.h" -#include "displaybrightness/include/DisplayBrightnessModel.h" -#include "power_display_service.h" - -#include "heartrate/include/HeartView.h" -#include "heartrate/include/HeartModel.h" -#include "heartrate/include/HeartPresenter.h" -#include "heartrate/include/HeartCheckView.h" -#include "heartrate/include/HeartBandoffView.h" -#include "health_service.h" -#include "cywee_service.h" -#include "custom_utils.h" - -#define HEARTKEYABLE 1 - -namespace OHOS -{ - static HeartPresenter *g_pMainView = nullptr; - HeartView *g_pheartview = HeartView::GetInstance(); - - static constexpr uint16_t PROGRESS_VALUE_MIN = 0; - static constexpr uint16_t PROGRESS_VALUE_MAX = 10; - - uint32_t HeartPresenter::GetCurrentTime() - { -#if 0 - /*优化为更安全的localtime_r()*/ - struct timeval tv; - gettimeofday(&tv, NULL); - struct tm tblock; - localtime_r(&tv.tv_sec, &tblock); - - uint32_t current_time = tblock.tm_hour * 60 + tblock.tm_min; - return current_time; -#endif - uint32_t time; - if (uapi_get_timestampe_ss(&time) != ERRCODE_SUCC) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get timestamp"); - return 0; - } - - return time; - } - - int HeartPresenter::GetTDOA(uint32_t new_time, uint32_t old_time) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new_time is %d old_time is %d", new_time, old_time); - if (new_time == old_time || old_time > new_time) - { - return 0; - } - // 秒级时间戳的差 - int time_diff_seconds = new_time - old_time; - // 转换为分钟的差值 - int time_diff_minutes = time_diff_seconds / 60; - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time_diff_seconds is %d time_diff_minute is %d", time_diff_seconds, time_diff_minutes); - return time_diff_minutes; - } - - HeartPresenter::HeartPresenter() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartPresenter::new HeartPresenter"); - g_pMainView = this; - } - - HeartPresenter::~HeartPresenter() - { - g_pMainView = nullptr; - } - - HeartPresenter *HeartPresenter::GetInstance() - { - return g_pMainView; - } - - void HeartPresenter::OnStart() - { - Presenter::OnStart(); - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartPresenter::On Start "); - } - - void HeartPresenter::OnPause(void) {} - - void HeartPresenter::OnResume(void) {} - - void HeartPresenter::OnStop(void) {} - - bool HeartPresenter::CheckPointersValue() - { - if (HeartView::GetInstance() == nullptr || HeartBandoffView::GetInstance() == nullptr || HeartModel::GetInstance() == nullptr) - { - return false; - } - return true; - } - - bool HeartPresenter::OnDrag(UIView &view, const DragEvent &event) - { - return true; - } - - bool HeartPresenter::OnDragEnd(UIView &view, const DragEvent &event) - { - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) - { - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); - return true; - } - return false; - } - // 增加按键事件 - bool HeartPresenter::OnKeyAct(UIView &view, const KeyEvent &event) - { -#if HEARTKEYABLE - unsigned short keyID = event.GetKeyId(); - unsigned short keyState = event.GetState(); - // 如果是power键,且是亮屏状态,按键释放就返回上一级 - if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0) - { - // 关闭心率检测 - HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE); - // 复原标志位 - startheart = true; - HeartModel::GetInstance()->Heart_Stop(); - // 回退 - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM); - } - return true; -#endif - } - - bool HeartPresenter::OnClick(UIView &view, const ClickEvent &event) - { - UNUSED(view); - UNUSED(event); - // 主界面点击开始检测 - if (strcmp(view.GetViewId(), "checkbegin") == 0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HEARTVIEW->HEARTBANDVIEW"); - HeartView::GetInstance()->ChangeView(HEARTVIEW, HEARTBANDVIEW); - HeartModel::GetInstance()->SetHeartBandoffViewStatus(true); - HeartBandoffView::GetInstance()->GetImageAnimator()->Start(); - return true; - } - // 从检测界面回到主界面 - if (strcmp(view.GetViewId(), "checkstop") == 0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HEARTCHECKVIEW->HEARTVIEW"); - HeartView::GetInstance()->ChangeView(HEARTCHECKVIEW, HEARTVIEW); - HeartView::GetInstance()->UpHeartText(); // 更新主界面数据 - HeartModel::GetInstance()->SetHeartCheckViewStatus(false); - HeartModel::GetInstance()->Heart_Stop(); - } - // 从检测失败界面回到检测界面 - if (strcmp(view.GetViewId(), "ReCheck") == 0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HEARTRESULT->HEARTCHECKVIEW"); - HeartView::GetInstance()->ChangeView(HEARTRESULT, HEARTCHECKVIEW); - HeartModel::GetInstance()->SetHeartResultViewStatus(false); - HeartModel::GetInstance()->SetHeartCheckViewStatus(true); - HeartCheckView::GetInstance()->GetImageAnimator()->Start(); // 播放检测界面动画 - HeartModel::GetInstance()->Heart_Start(); // 开始检测 - return true; - } - // 从检测失败界面回到主界面 - if (strcmp(view.GetViewId(), "StCheck") == 0) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HEARTRESULT->HEARTVIEW"); - HeartView::GetInstance()->ChangeView(HEARTRESULT, HEARTVIEW); - HeartModel::GetInstance()->SetHeartResultViewStatus(false); - HeartView::GetInstance()->UpHeartText(); // 更新主界面数据 - HeartModel::GetInstance()->Heart_Stop(); - return true; - } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartPresenter::OnClick"); - return false; - } - void HeartPresenter::ProgressNotify(void) - { - - // 当检测状态为结束检测,结束检测 - if (HeartModel::GetInstance()->GetCheckStatus() == false) - { - if (startheart == false) - { - HeartCheckView::GetInstance()->GetImageAnimator()->Stop(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetCheckStatus false"); - // 关闭心率检测 - HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE); - startheart = true; - } - } - - if (HeartModel::GetInstance()->GetHeartCheckViewStatus() == false) - { - return; - } - - // 当检测状态为开始检测,开始检测 - if (HeartModel::GetInstance()->GetCheckStatus() == true) - { - HeartCheckView::GetInstance()->UpShowHeartText(); // 更新检测界面 - if (startheart == true) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetCheckStatus true"); - // 开启心率检测 [UI优先级最高直接打断正在检测 重新检测] - HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE); - HeartModel::GetInstance()->Heart_Control(HeartState::Start, HeartCheck::INITIATIVE); - startheart = false; - } - } - - // 监测佩戴状态 - if (HeartModel::GetInstance()->GetWearStatus() == false) - { - if (HeartModel::GetInstance()->GetHeartCheckViewStatus() == true) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetWearStatus false"); - HeartCheckView::GetInstance()->GetImageAnimator()->Stop(); - // 跳转到异常检测界面 - HeartView::GetInstance()->ChangeView(HEARTCHECKVIEW, HEARTRESULT); - HeartModel::GetInstance()->SetHeartCheckViewStatus(false); - HeartModel::GetInstance()->SetHeartResultViewStatus(true); - HeartModel::GetInstance()->Heart_Stop(); - } - } - } - - void HeartPresenter::ReturnInterface() - { - // 佩戴动画播放完毕,前往检测界面 - if (HeartModel::GetInstance()->GetHeartBandoffViewStatus() == true) - { - if (HeartBandoffView::GetInstance()->GetImageAnimator()->GetState() == false) - { - HeartView::GetInstance()->ChangeView(HEARTBANDVIEW, HEARTCHECKVIEW); - HeartModel::GetInstance()->SetHeartBandoffViewStatus(false); - // 检测界面状态 - HeartModel::GetInstance()->SetHeartCheckViewStatus(true); - HeartCheckView::GetInstance()->GetImageAnimator()->Start(); - HeartModel::GetInstance()->Heart_Start(); // 开始检测 - } - } - - // 检测动画播放完毕 - if (HeartModel::GetInstance()->GetHeartCheckViewStatus() == true) - { - if (HeartCheckView::GetInstance()->GetImageAnimator()->GetState() == false) - { - // 测试失败 - if (HeartModel::GetInstance()->GetShowHeartdata() == 0) - { - HeartView::GetInstance()->ChangeView(HEARTCHECKVIEW, HEARTRESULT); - HeartModel::GetInstance()->SetHeartResultViewStatus(true); - } - // 测试成功 - else - { - HeartView::GetInstance()->ChangeView(HEARTCHECKVIEW, HEARTVIEW); - HeartView::GetInstance()->UpHeartText(); - } - HeartModel::GetInstance()->SetHeartCheckViewStatus(false); - HeartModel::GetInstance()->Heart_Stop(); - } - } - if (HeartModel::GetInstance()->GetHeartResultViewStaus() == true) - { - HeartModel::GetInstance()->Heart_Stop(); - } - } - void HeartPresenter::Notify(void) - { - ProgressNotify(); - ReturnInterface(); - } -} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.cpp index cfa5da788..7c9e38d47 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.cpp @@ -106,7 +106,8 @@ namespace OHOS { if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM); return true; } return false; @@ -118,7 +119,8 @@ namespace OHOS // 如果是power键,且是亮屏状态,按键释放就返回上一级 if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0) { - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM); } return true; } -- 2.17.1