指南针界面设置为常亮,主界面指南针为主视图的卡片视图故不设置
authorluozheng <1732036298@qq.com>
Thu, 14 Mar 2024 08:20:49 +0000 (16:20 +0800)
committerluozheng <1732036298@qq.com>
Thu, 14 Mar 2024 08:20:49 +0000 (16:20 +0800)
code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassModel.cpp
code/sdk/application/wearable/fd230app/nativeui/compass/src/CompassPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassPresenter.cpp

index da7921d..d789e6d 100644 (file)
@@ -28,12 +28,20 @@ CompassModel *CompassModel::GetInstance(void)
     return &instance;
 }
 
+/*
+ * @brief 设置校准状态 
+*/
 void CompassModel::SetCalibrationStatus(uint8_t status)
 {
 
     calibrationStatus = status;
 }
 
+/*
+ * @brief 获取校准状态
+ * @param  void
+ * @return 如果校准精度小于3,返回<b>1</b>,否则返回<b>0</b>
+*/
 uint8_t CompassModel::GetCalibrationStatus(void)
 {
     if( mag_service_get_iAccuracy() < 3)
@@ -42,11 +50,17 @@ uint8_t CompassModel::GetCalibrationStatus(void)
         return 0;
 }
 
+/* 
+ * @brief 设置显示的角度
+*/
 void CompassModel::SetDisplayAngle(uint16_t angle)
 {
     displayAngle = (int16_t)mag_service_get_fAzimuth();
 }
 
+/*
+ * @brief 获取显示角度 
+*/
 uint16_t CompassModel::GetDisplayAngle(void)
 {
     return displayAngle;
@@ -69,6 +83,11 @@ time_t CompassModel::GetCurrentTime(void)
     return tv.tv_sec;
 }
 
+/*
+ * @brief 打开指南针传感器 
+ * @param void
+ * @return 如果指南针传感器打开成功则返回true,否则返回false
+*/
 bool CompassModel::OpenCompassSensor(void)
 {
 
@@ -76,6 +95,11 @@ bool CompassModel::OpenCompassSensor(void)
     return true;
 }
 
+/*
+ * @brief 关闭指南针传感器 
+ * @param void
+ * @return 如果指南针传感器关闭成功则返回true,否则返回false
+*/
 bool CompassModel::CloseCompassSensor(void)
 {
     do_mag_service_check_msg(MAG_SERVICE_CMD_STOP_CHECK);
index e920336..b225fa9 100644 (file)
@@ -70,6 +70,11 @@ CompassPresenter* CompassPresenter::GetInstance(void)
     return g_pMainView;
 }
 //显示指南针的角度
+
+/*
+ * @brief 根据传入的角度值 angle 来更新指南针的显示方向
+ * @param angle 角度值 
+*/
 void CompassPresenter::DisplayAngleRight(uint16_t angle)
 {
     if ((angle >= RIGHT_WESTNORTH_UP_338) || (angle >= 0 && angle < RIGHT_NORTH_DOWN_23)) {
@@ -82,6 +87,9 @@ void CompassPresenter::DisplayAngleRight(uint16_t angle)
     }
 }
 
+/*
+ * @brief 校验 CompassView 的实例是否存在,并确定传入的角度值是否有效
+*/
 void CompassPresenter::DisplayAngleDir(uint16_t angle)
 {
     if (CompassView::GetInstance() == nullptr) {
@@ -93,7 +101,9 @@ void CompassPresenter::DisplayAngleDir(uint16_t angle)
     }
 }
 
-//在范围内旋转指南针
+/*
+ * @brief 根据上一次和当前的旋转角度来判断如何旋转指南针,使其指向正确的方向
+*/
 void CompassPresenter::InScopeRotate(void)
 {
     angleDiff = lastRotateAngle - currentRotateAngle;
@@ -138,7 +148,9 @@ void CompassPresenter::InScopeRotate(void)
     }
 }
 
-//在指南针视图初始化的情况下,根据旋转角度的变化来执行指南针的旋转操作,并在需要的时候更新显示的角度和方向。
+/*
+ * @brief 在指南针视图初始化的情况下,根据旋转角度的变化来执行指南针的旋转操作,并在需要的时候更新显示的角度和方向。
+*/
 void CompassPresenter::DetermineToRotate(void)
 {
     if (CompassView::GetInstance()  == nullptr) {
index 0e6d57d..78e9ec4 100644 (file)
@@ -9,51 +9,62 @@
 #include "MainCompassView.h"
 #include "wearable_log.h"
 #include "common/key_code.h"
-namespace OHOS {
-static MainCompassPresenter *g_pMainView = nullptr;
-
-MainCompassPresenter::MainCompassPresenter()
+#include "custom_utils.h"
+namespace OHOS
 {
-    g_pMainView = this;
-}
+    static MainCompassPresenter *g_pMainView = nullptr;
 
-MainCompassPresenter::~MainCompassPresenter()
-{
-    g_pMainView = nullptr;
-}
+    MainCompassPresenter::MainCompassPresenter()
+    {
+        g_pMainView = this;
+    }
 
-void MainCompassPresenter::OnStart()
-{
-    Presenter<CompassView>::OnStart();
-}
+    MainCompassPresenter::~MainCompassPresenter()
+    {
+        g_pMainView = nullptr;
+    }
 
-void MainCompassPresenter::OnPause(void) {}
+    void MainCompassPresenter::OnStart()
+    {
+        Presenter<CompassView>::OnStart();
+        ScreenAlwaysOnCtr(1);
+    }
 
-void MainCompassPresenter::OnResume(void) {}
+    void MainCompassPresenter::OnPause(void) {}
 
-void MainCompassPresenter::OnStop(void) {}
+    void MainCompassPresenter::OnResume(void) {}
 
+    void MainCompassPresenter::OnStop(void)
+    {
+        ScreenAlwaysOnCtr(0);
+    }
 
-MainCompassPresenter* MainCompassPresenter::GetInstance()
-{
-    return g_pMainView;
-}
+    MainCompassPresenter *MainCompassPresenter::GetInstance()
+    {
+        return g_pMainView;
+    }
 
-bool MainCompassPresenter::OnDrag(UIView& view, const DragEvent& event)
-{
-    UNUSED(view);
-    if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {
-        NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+    /*
+     * @拖拽监听 
+    */
+    bool MainCompassPresenter::OnDrag(UIView &view, const DragEvent &event)
+    {
+        UNUSED(view);
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+        {
+            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+        }
+        return true;
     }
-    return true;
-}
 
-// 增加按键事件
+/*
+    * @brief 物理按键监听 
+*/
 bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCompassPresenter::OnKeyAct");
     uint16 keyID = event.GetKeyId();
-    //如果是power键就返回上一级
+    // 如果是power键就返回上一级
     if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
     {
         uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
@@ -64,14 +75,18 @@ bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
 
 void MainCompassPresenter::Notify()
 {
-    if (MainCompassView::GetInstance() == nullptr) {
+    if (MainCompassView::GetInstance() == nullptr)
+    {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[Notify]MainCompassView::GetInstance() == nullptr");
         return;
     }
     uint8_t status = CompassModel::GetInstance()->GetCalibrationStatus();
-    if (status == 1) {
+    if (status == 1)
+    {
         MainCompassView::GetInstance()->SetDisplayTure();
-    } else {
+    }
+    else
+    {
         MainCompassView::GetInstance()->SetDisplayFalse();
         DetermineToRotate();
     }