适配心率Slice回退以及按键 639/2
authorCaisking <3449750381@qq.com>
Sat, 3 Aug 2024 06:58:34 +0000 (14:58 +0800)
committerCaisking <3449750381@qq.com>
Sat, 3 Aug 2024 06:58:34 +0000 (14:58 +0800)
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartResultPresenter.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 (file)
index b82bcbb..0000000
+++ /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 <fstream>
-#include <iostream>
-#include <sstream>
-#include <string>
-#include <cstdlib>
-#include <ctime>
-#include "wearable_log.h"
-#include "cmsis_os.h"
-#include "securec.h"
-#include "graphic_service.h"
-#include <chrono>
-#include <thread>
-#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<HeartView>::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<uint16_t>(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
index cfa5da7..7c9e38d 100644 (file)
@@ -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<uint16_t>(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;
     }