Merge #153 into xts_origin from refs/changes/153/head 154/target/1
author罗正 <1732036298@qq.com>
Thu, 9 May 2024 07:58:50 +0000 (07:58 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 9 May 2024 07:58:50 +0000 (07:58 +0000)
Code review from 罗正

* refs/changes/153/head: (2 commits squashed)

  - 优化下拉界面的数据更新逻辑
    如果当前是下拉界面,先更新一次下拉窗口的数据包括,电池电量时间,信号强度等等数据,然后开启一个每2秒更新数据的定时器。
    如果不在下拉界面了停止定时器。
    遗留一个问题:如果在下拉界面息屏时候停止了定时器,亮屏后需要手动上拉界面再下拉回到下拉界面才能更新数据。

  - Merge branch &#39;xts_origin&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into xts_origin

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/153
code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp

index ac3329e..b02956d 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-01 15:10:34
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-08 15:57:02
+ * @LastEditTime: 2024-05-09 10:00:40
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
  */
 
@@ -79,6 +79,7 @@ public:
     CardId *GetCardSettings(void);
     void InitDialSettings(void);
     DialSetting& GetDialSetting();
+    void UpdataTime();
     void UpdataBaseData();
     void PullUpDown_StartTimer(uint32_t interval);
     void PullUpDown_StopTimer(void);
index 5fa5d6a..ffef8d0 100644 (file)
@@ -80,7 +80,6 @@ namespace OHOS
                 RootView::GetInstance()->SetOnKeyActListener(keyActListener_);
             }
         }
-        PullUpDown_StartTimer(1000);
     }
 
     void MainPresenterSample::OnPause(void) {}
@@ -196,22 +195,6 @@ namespace OHOS
         UNUSED(event);
         UNUSED(view);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainPresenterSample OnDrag");
-
-        uint8_t cardId = view_->GetHorCurrentCard();
-        if (cardId == WATCH_FACE)
-        {
-            PRINT("WATCH_FACE!\r\n");
-            if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM)
-            {
-                PRINT("DIRECTION_TOP_TO_BOTTOM!\r\n");
-                if (PullUpDownView::GetInstance() == nullptr)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TempPresenter::OnDrag TempMainView::GetInstance() nullptr");
-                    return false;
-                }
-                UpdataBaseData();
-            }
-        }
         return true;
     }
     void MainPresenterSample::SetPage(int8_t id)
@@ -254,11 +237,24 @@ namespace OHOS
 
     void MainPresenterSample::OnSwipe(UISwipeView &view)
     {
-        //UNUSED(view);
-        // if(MainViewSample::GetInstance()->IsPullUpViewPage())
-        // {
-        //     UpdataBaseData();
-        // }
+        // UNUSED(view);
+        /* -------------------------------------------------------------------------- */
+        /*
+         * @brief 如果当前是下拉界面,先更新一次下拉窗口的数据包括,电池电量,时间,信号强度等等数据,
+         *        然后开启一个每2秒更新数据的定时器。
+         *        如果不在下拉界面了停止定时器
+         */
+        if (MainViewSample::GetInstance()->IsPullUpViewPage())
+        {
+            UpdataBaseData();
+            PullUpDownView::GetInstance()->UpdateSignalStrengthStatusAndBatteryPosition();
+            PullUpDown_StartTimer(1000);
+        }
+        else
+        {
+            PullUpDown_StopTimer();
+        }
+        /* -------------------------------------------------------------------------- */
 
         CardId cardId = view_->GetHorCurrentCard();
         callback_->OnSwipe(view);
@@ -369,11 +365,6 @@ namespace OHOS
                 dynamic_cast<MainClockView *>(view_->GetViewById(WATCH_FACE))->UpdateTime();
             }
         }
-        //当前在下拉界面
-        // if (view_->IsPullUpViewPage())
-        // {
-        //     UpdataBaseData();
-        // }
     }
 
     void MainPresenterSample::InitCardSettings(void)
@@ -400,10 +391,25 @@ namespace OHOS
         return MainModel::GetInstance().GetDialSetting();
     }
 
+    // 更新时间
+    void MainPresenterSample::UpdataTime()
+    {
+        // 获取当前时间
+        char *timeStr = (char *)malloc(9);
+        if (!timeStr || uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time");
+            free(timeStr);
+            return;
+        }
+        PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
+        free(timeStr);
+    }
+
     void MainPresenterSample::UpdataBaseData()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdataBaseData");
-        // è\8e·å\8f\96å½\93å\89\8dæ\97¶é\97´
+        // è§£æ\9e\90æ\97¥æ\9c\9fä¿¡æ\81¯
         char *dateStr = (char *)malloc(9);
         if (uapi_get_YYMMDD_Time(dateStr, '/') != ERRCODE_SUCC)
         {
@@ -411,7 +417,7 @@ namespace OHOS
             free(dateStr);
             return;
         }
-        // è§£æ\9e\90æ\97¥æ\9c\9fä¿¡æ\81¯
+        // è\8e·å\8f\96å½\93å\89\8dæ\97¶é\97´
         char *timeStr = (char *)malloc(9);
         if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
         {
@@ -430,7 +436,6 @@ namespace OHOS
             free(weekStr);
             return;
         }
-        PRINT("Read ALLData!\n");
 
         // 获取电池电量信息
         float voltage = 0.0F;
@@ -448,7 +453,7 @@ namespace OHOS
             if (value <= (i + 1) * 10)
             {
                 progressImageSrc = progressImages[i];
-                PRINT("Update progressImageSrc!\n");
+                // PRINT("Update progressImageSrc!\n");
                 break;
             }
         }
@@ -463,28 +468,37 @@ namespace OHOS
         free(dateStr);
         free(timeStr);
         free(weekStr);
+
+        PRINT("ALLData are refresh!\n");
     }
 
     /* -------------------------------------------------------------------------- */
     // 声明定时器变量
     static osTimerId_t g_timer = NULL;
-    uint8_t MainPresenterSample::g_PullUpDownTimes = 5;//5秒
+    static uint8_t UPDATETIME = 2;
+    uint8_t MainPresenterSample::g_PullUpDownTimes = UPDATETIME; // 2秒
 
     /*定时器到期时的处理*/
     static void PullUpDown_TimerCallbackProc(int data)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDown_TimerCallbackProc");
         MainPresenterSample::g_PullUpDownTimes--;
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d",MainPresenterSample::g_PullUpDownTimes);
-        if(MainPresenterSample::g_PullUpDownTimes <= 0)
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", MainPresenterSample::g_PullUpDownTimes);
+        if (MainPresenterSample::g_PullUpDownTimes <= 0)
         {
-            MainPresenterSample::g_PullUpDownTimes = 5;//每5秒更新一次,时间
-            MainPresenterSample::GetInstance()->UpdataBaseData();
+            MainPresenterSample::g_PullUpDownTimes = UPDATETIME; //
+            MainPresenterSample::GetInstance()->UpdataTime();
             PullUpDownView::GetInstance()->UpdateSignalStrengthStatusAndBatteryPosition();
         }
+        
+        if (uapi_get_screen_state() == 1) // 息屏停止更新数据
+        {
+            GraphicService::GetInstance()->PostGraphicEvent(std::bind(&MainPresenterSample::PullUpDown_StopTimer, MainPresenterSample::GetInstance()));
+        }
+        
         return;
     }
-    
+
     /*
      * @brief 回调函数
      */
@@ -549,6 +563,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "osTimerDelete failed, ret = %lx!!", ret);
             }
             g_timer = NULL;
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_timer stop success");
         }
     }
 
index 06951fc..ff564c8 100644 (file)
@@ -520,7 +520,7 @@ namespace OHOS
         progress->SetImage(progressImageSrc, nullptr);
         progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
         progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);
-        progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);
+        progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
         progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
         progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);