优化倒计时处理逻辑,减少误差 1260/2
authorluozheng <1732036298@qq.com>
Fri, 25 Oct 2024 10:28:05 +0000 (18:28 +0800)
committerluozheng <1732036298@qq.com>
Fri, 25 Oct 2024 10:28:05 +0000 (18:28 +0800)
code/sdk/application/wearable/fd230app/nativeui/bluetooth/src/BluetoothReconnectView.cpp
code/sdk/application/wearable/fd230app/nativeui/countdown/src/CountDownModel.cpp

index 382c093..34e79e2 100644 (file)
@@ -45,9 +45,11 @@ BluetoothReconnectView::~BluetoothReconnectView()
             bluetoothNameLabel = nullptr;\r
         }\r
         if(reconnectAnimator){\r
+            reconnectAnimator->Stop();\r
             delete reconnectAnimator;\r
             reconnectAnimator = nullptr;\r
-            FreeImageInfoArray(reconnectPathsArray, reconnectImagePaths, BLUETOOTH_RECONNECT_IMAGE_NUM);\r
+            if(reconnectPathsArray != nullptr)\r
+                FreeImageInfoArray(reconnectPathsArray, reconnectImagePaths, BLUETOOTH_RECONNECT_IMAGE_NUM);\r
         }\r
         delete group;\r
         group = nullptr;\r
index c159932..d711f36 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-07 18:15:53\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-20 11:49:21\r
+ * @LastEditTime: 2024-10-25 17:47:51\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/countdown/src/CountDownModel.cpp\r
  */\r
 #include "countdown/include/CountDownModel.h"\r
@@ -18,6 +18,7 @@
 #include "uiservice/include/ui_service.h"\r
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
+#include <custom_utils.h>\r
 namespace OHOS\r
 {\r
     /* -------------------------------------------------------------------------- */\r
@@ -175,7 +176,7 @@ namespace OHOS
         playerCtr->SetSource(*source);\r
         /* --------------------------------- 4.配置播放器 -------------------------------- */\r
         playerCtr->SetAudioStreamType(AUDIO_STREAM_NOTIFICATION_SYSTEM); // 设置播放器的音频流类型\r
-        playerCtr->Prepare();                              // 准备播放器对象以播放音频。\r
+        playerCtr->Prepare();                                            // 准备播放器对象以播放音频。\r
         /* -------------------------------- 5.请求音频焦点 -------------------------------- */\r
         AudioManager &amIntance = AudioManager::GetInstance();\r
         sessionId = amIntance.MakeSessionId();\r
@@ -338,13 +339,13 @@ namespace OHOS
         }\r
         return false;\r
     }\r
-    //获取是否需要跳转到开始到计时界面\r
+    // 获取是否需要跳转到开始到计时界面\r
     bool CountDownModel::GetChanageToStartCountDownView()\r
     {\r
         return IsChanageToStartCountDownViewFlag;\r
     }\r
 \r
-    //设置是否需要跳转到开始到计时界面\r
+    // 设置是否需要跳转到开始到计时界面\r
     void CountDownModel::SetChanageToStartCountDownView(bool val)\r
     {\r
         IsChanageToStartCountDownViewFlag = val;\r
@@ -360,14 +361,14 @@ namespace OHOS
         return false;\r
     }\r
 \r
-    //处理倒计时到期时的一些操作\r
+    // 处理倒计时到期时的一些操作\r
     void CountDownModel::HandCountDownEndOperator(void)\r
     {\r
         StartCountDownView *p_StartCountDownView = StartCountDownView::GetInstance();\r
         if (p_StartCountDownView)\r
         {\r
             CountDown_StopTimer();                                 // 停止定时器\r
-            ScreenTurnOn(5 * 1000);                                // 亮屏5s\r
+            uapi_set_screen_on_api();                              // 点亮屏幕\r
             CountDownModel::GetInstance()->RequestStartRingtone(); // 播放铃声\r
 \r
             StartCountDownView::GetInstance()->GetPlayOrPauseToggleButton()->SetVisible(false);\r
@@ -418,34 +419,20 @@ namespace OHOS
      */\r
     static void CountDown_TimerCallbackProc(int data)\r
     {\r
-        StartCountDownView *p_StartCountDownView = StartCountDownView::GetInstance();\r
-        // 检查倒计时是否结束\r
-        if (CountDownModel::g_CountDownTimes <= 0)\r
+        if (CountDownModel::GetInstance()->CountDownViewIsExit()) // 如果已经退出了界面定时器还在跑,就先跳转Slice\r
         {\r
-            if (CountDownModel::GetInstance()->CountDownViewIsExit()) // 如果已经退出了界面定时器还在跑,就先跳转Slice\r
-            {\r
-                CountDownModel::GetInstance()->CountDown_StopTimer(); // 停止定时器\r
-                CountDownModel::GetInstance()->SetChanageToStartCountDownView(true);\r
-                NativeAbility::GetInstance().EnterSlice(VIEW_MAIN_COUNTDOWN);\r
-                return;\r
-            }\r
-            else\r
+            CountDownModel::GetInstance()->CountDown_StopTimer(); // 停止定时器\r
+            CountDownModel::GetInstance()->SetChanageToStartCountDownView(true);\r
+            NativeAbility::GetInstance().EnterSlice(VIEW_MAIN_COUNTDOWN);\r
+        }\r
+        else\r
+        {\r
+            StartCountDownView *p_StartCountDownView = StartCountDownView::GetInstance();\r
+            if (p_StartCountDownView)\r
             {\r
-                if (p_StartCountDownView)\r
-                {\r
-                    CountDownModel::GetInstance()->HandCountDownEndOperator();\r
-                }\r
+                CountDownModel::GetInstance()->HandCountDownEndOperator();\r
             }\r
         }\r
-        // else\r
-        // {\r
-        //     if (p_StartCountDownView)\r
-        //     {\r
-        //         // 更新显示\r
-        //         p_StartCountDownView->GetShowCountDownTimelabel()->SetText(CountDownModel::GetInstance()->DisplayCountDownDuration());\r
-        //     }\r
-        // }\r
-\r
         return;\r
     }\r
 \r
@@ -454,8 +441,11 @@ namespace OHOS
      */\r
     static void CountDown_TimerCallback(int data)\r
     {\r
-        CountDownModel::g_CountDownTimes--; // 每次回调减少1秒\r
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(CountDown_TimerCallbackProc, data));\r
+        CountDownModel::g_CountDownTimes--;        // 每次回调减少1秒\r
+        if (CountDownModel::g_CountDownTimes <= 0) // 检查倒计时是否结束\r
+        {\r
+            GraphicService::GetInstance()->PostGraphicEvent(std::bind(CountDown_TimerCallbackProc, data));\r
+        }\r
     }\r
 \r
     /*\r