优化主界面notify判断逻辑 284/1 284/head
authorCaisking <3449750381@qq.com>
Fri, 14 Jun 2024 07:06:42 +0000 (15:06 +0800)
committerCaisking <3449750381@qq.com>
Fri, 14 Jun 2024 07:06:42 +0000 (15:06 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp

index 777f9ff..04b8aa8 100644 (file)
@@ -345,23 +345,34 @@ namespace OHOS
     void MainPresenterSample::Notify(void)
     {
         CardId cardId = view_->GetHorCurrentCard();
-        if (cardId != HEART_RATE)
+
+        static CardId previousCardId = WATCH_FACE;
+
+        if (previousCardId == HEART_RATE && cardId != HEART_RATE)
         {
-            // 关闭心率检测
+            // 从心率卡片变为其他卡片时调用关闭心率检测的函数
             HeartModel::GetInstance()->Heart_Control(HeartState::End);
         }
-        // 指南针卡片
-        else if (cardId == COMPASS)
+
+        // 更新上一个卡片的值
+        previousCardId = cardId;
+
+        switch (cardId)
         {
+        case HEART_RATE:
+            // 开启心率检测
+            HeartModel::GetInstance()->Heart_Control(HeartState::Start);
+            break;
+
+        case COMPASS:
             SetCompassRotate();
-        }
-        // 音乐卡片
-        else if (cardId == MUSIC_PLAYER)
-        {
+            break;
+
+        case MUSIC_PLAYER:
             SetCircleProgress();
-        }
-        // 主界面
-        else if (cardId == WATCH_FACE)
+            break;
+
+        case WATCH_FACE:
         {
             DialSetting &setting = GetDialSetting();
             if (setting.dialFlag)
@@ -374,11 +385,7 @@ namespace OHOS
                 dynamic_cast<MainClockView *>(view_->GetViewById(WATCH_FACE))->UpdateTime();
             }
         }
-        // 心率卡片
-        else if (cardId == HEART_RATE)
-        {
-            // 开启心率检测
-            HeartModel::GetInstance()->Heart_Control(HeartState::Start);
+        break;
         }
     }