Merge #1295 into sdk602patch0911 from refs/changes/1295/head 1296/target/1 1297/target/1 1298/target/1
author罗正 <1732036298@qq.com>
Wed, 30 Oct 2024 09:20:58 +0000 (09:20 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 30 Oct 2024 09:20:58 +0000 (09:20 +0000)
Code review from 罗正

* refs/changes/1295/head: (9 commits squashed)

  - #1109,解决,闹钟,点击编辑区域需要优化bug

  - 修改音乐存储大小最多为53M

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

  - #1078,解决,闹钟是关闭状态,还会响起闹铃bug

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

  - 1.关机动画开始后关闭翻腕息屏,防止息屏后关机动画不执行
    2.关机动画启动禁止一切弹窗,通过设置Slice优先级为最高级实现

  - 秒表界面优化

  - 秒表界面优化,采用,定时器里更新变量,Notify中更新显示,减少误差

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

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: Caisking <3449750381@qq.com>
Reviewed-by: 罗正 <1732036298@qq.com>
Reviewed-by: aliyun8003852482 <1224667075@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: aliyun6865282430 <1624952103@qq.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1295
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchPresenter.h
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchView.h
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchModel.h
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/MainStopWatchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/MainStopWatchView.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchModel.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchRecordCycleToLimitView.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchRecordTimeToLimitView.cpp

index 01c4560..1152b15 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-04 15:13:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-12 16:05:30\r
+ * @LastEditTime: 2024-10-30 14:51:08\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchPresenter.h\r
  */\r
 #ifndef MAIN_STOPWATCH_PRESENTER_H\r
@@ -13,6 +13,7 @@
 #include "MainStopWatchView.h"\r
 #include <string>\r
 #include "ui_resource_string.h"\r
+#include "ModelListenerSample.h"\r
 /*秒表主视图*/\r
 namespace OHOS\r
 {\r
@@ -31,7 +32,8 @@ namespace OHOS
                                    public UIView::OnClickListener,\r
                                    public UIView::OnDragListener,\r
                                    public RootView::OnKeyActListener,\r
-                                   public UICheckBox::OnChangeListener\r
+                                   public UICheckBox::OnChangeListener,\r
+                                   public ModelListenerSample\r
     {\r
     public:\r
         MainStopWatchPresenter();\r
@@ -54,6 +56,7 @@ namespace OHOS
         bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
         bool OnChange(UICheckBox::UICheckBoxState state) override;\r
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+        void Notify() override;\r
     private:\r
         UICheckBox *m_checkbox{nullptr};\r
         UIButton *m_button{nullptr};\r
@@ -67,6 +70,7 @@ namespace OHOS
         int RecordCycleNumber{0};    // 用来记录计时圈数\r
         bool X_DRAG_FLAG{false};\r
         bool isStartMark{false};\r
+        bool TimerIsRunning{false};\r
     };\r
 } // namespace OHOS\r
 \r
index d4b9f0a..ccae6db 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-04 15:13:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-09 20:22:12\r
+ * @LastEditTime: 2024-10-30 14:28:49\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchView.h\r
  */\r
 #ifndef MAIN_STOPWATCH_VIEW_H\r
@@ -56,6 +56,7 @@ namespace OHOS
         UILabelExt *GetShowTimelabel(void);\r
         UICheckBox *GetPlayOrPausecheckBox(void);\r
         void ChangeRecordTimeToLimitView(void);\r
+        UIScrollView *GetScrollView(int16_t index);\r
     private:\r
         void InitMainStopWatchView(void);\r
         void ClearAll(void);\r
index 2eb3ba2..228a8ca 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-04 15:13:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-07 10:35:43\r
+ * @LastEditTime: 2024-10-30 11:47:14\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchModel.h\r
  */\r
 #ifndef STOP_WATCH_MODEL_H\r
@@ -25,6 +25,7 @@ namespace OHOS
         void StopWatch_StopTimer(void);\r
         void StopWatch_PauseTimer();\r
         void StopWatch_ResumeTimer(uint32_t interval);\r
+        bool isReachMaxRecordTime(void);\r
         \r
 \r
     private:\r
index 97a5d9c..db51cfc 100644 (file)
@@ -121,7 +121,18 @@ namespace OHOS
         UNUSED(view);\r
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MainStopWatchPresenter::X_DRAG_FLAG)\r
         {\r
-            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+            if (&view == view_->GetScrollView(MAIN_STOPWATCH))\r
+            {\r
+                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+            }\r
+            else if(&view == view_->GetScrollView(STOPWATCH_RECORD_CYCLE_TO_LIMIT))\r
+            {\r
+                view_->ChangeView(STOPWATCH_RECORD_CYCLE_TO_LIMIT, MAIN_STOPWATCH);\r
+            }\r
+            else if(&view == view_->GetScrollView(STOPWATCH_RECORD_TIME_TO_LIMIT))\r
+            {\r
+                view_->ChangeView(STOPWATCH_RECORD_TIME_TO_LIMIT, MAIN_STOPWATCH);\r
+            }\r
             X_DRAG_FLAG = false;\r
         }\r
         return true;\r
@@ -270,12 +281,19 @@ namespace OHOS
         {\r
             mainStopWatchView->ChangeView(STOPWATCH_RECORD_TIME_TO_LIMIT, MAIN_STOPWATCH);\r
         }\r
+        else if (strcmp(clickedViewId, PlayOrPausecheckBoxVIEWID) == 0) // 点击播放和暂停按钮\r
+        {\r
+            if (StopWatchModel::GetInstance()->isReachMaxRecordTime()) // 到达最大时间不能再计时\r
+            {\r
+                mainStopWatchView->ChangeView(MAIN_STOPWATCH, STOPWATCH_RECORD_TIME_TO_LIMIT);\r
+            }\r
+        }\r
         return true;\r
     }\r
 \r
     bool MainStopWatchPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainStopWatchPresenter::OnChange");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainStopWatchPresenter::OnChange,state = %d",state);\r
         if (state == UICheckBox::UICheckBoxState::SELECTED)\r
         {\r
             StopWatchModel::GetInstance()->StopWatch_StartTimer(STOPWATCH_TIMER_DURATION);  // 开启定时器,如果定时器存在会直接返回\r
@@ -284,6 +302,7 @@ namespace OHOS
             m_button->SetViewId(ResetOrMarkButton_MARK_VIEWID);\r
             m_button->SetImageSrc(ResetOrMarkButtonImg_Mark, ResetOrMarkButtonImg_Mark);\r
             m_button->Invalidate(); // 图片重新赋值要刷新该区域\r
+            TimerIsRunning = true;\r
         }\r
         else\r
         {\r
@@ -291,6 +310,7 @@ namespace OHOS
             m_button->SetViewId(ResetOrMarkButton_RESET2_VIEWID);\r
             m_button->SetImageSrc(ResetOrMarkButtonImg_Reset2, ResetOrMarkButtonImg_Reset2);\r
             m_button->Invalidate();\r
+            TimerIsRunning = false;\r
         }\r
         return true;\r
     }\r
@@ -309,4 +329,15 @@ namespace OHOS
         return false;\r
     }\r
 \r
+    void MainStopWatchPresenter::Notify()\r
+    {\r
+        if (view_->GetScrollView(MAIN_STOPWATCH) && view_->GetScrollView(MAIN_STOPWATCH)->IsVisible())\r
+        {\r
+            if (view_->GetPlayOrPausecheckBox() && view_->GetPlayOrPausecheckBox() && TimerIsRunning)\r
+            {\r
+                view_->GetShowTimelabel()->SetText(StopWatchModel::GetInstance()->DisplayStopWatchDuration());\r
+                view_->GetShowTimelabel()->Invalidate();\r
+            }\r
+        }\r
+    }\r
 }
\ No newline at end of file
index fda687a..1ddf56c 100644 (file)
@@ -250,6 +250,9 @@ namespace OHOS
             }\r
             scrollView[MAIN_STOPWATCH]->SetPosition(0, 0, 466, 466);\r
             scrollView[MAIN_STOPWATCH]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+            scrollView[MAIN_STOPWATCH]->SetTouchable(true);\r
+            scrollView[MAIN_STOPWATCH]->SetDraggable(true);\r
+            scrollView[MAIN_STOPWATCH]->SetOnDragListener(presenter_);\r
             /* ----------------------------- stopWatchlabel ----------------------------- */\r
             stopWatchlabel = new UILabelExt();\r
             if (stopWatchlabel == nullptr)\r
@@ -364,6 +367,7 @@ namespace OHOS
             // Add the CallBack about events\r
             UICheckBox::OnChangeListener *PlayOrPausecheckBoxChangeListener = static_cast<UICheckBox::OnChangeListener *>(MainStopWatchPresenter::GetInstance());\r
             PlayOrPausecheckBox->SetOnChangeListener(PlayOrPausecheckBoxChangeListener);\r
+            PlayOrPausecheckBox->SetOnClickListener(presenter_);\r
             UIView::OnClickListener *ResetOrMarkbuttonClick = static_cast<UIView::OnClickListener *>(MainStopWatchPresenter::GetInstance());\r
             ResetOrMarkbutton->SetOnClickListener(ResetOrMarkbuttonClick);\r
         }\r
@@ -385,6 +389,11 @@ namespace OHOS
         ChangeView(MAIN_STOPWATCH, STOPWATCH_RECORD_TIME_TO_LIMIT);\r
     }\r
 \r
+    UIScrollView *MainStopWatchView::GetScrollView(int16_t index)\r
+    {\r
+        return scrollView[index];\r
+    }\r
+\r
     void MainStopWatchView::OnStart()\r
     {\r
         View<MainStopWatchPresenter>::OnStart();\r
index b37b7f6..fa746c2 100644 (file)
@@ -76,26 +76,25 @@ namespace OHOS
         return (char *)stopwatchDuration.c_str();\r
     }\r
 \r
-    /*\r
-     * @brief 在这里添加定时器到期后的处理逻辑\r
-     */\r
-    static void StopWatch_TimerCallbackProc(int data)\r
+    // 检查是否达到最大记录时间\r
+    bool StopWatchModel::isReachMaxRecordTime(void)\r
     {\r
-        if (MainStopWatchView::GetInstance() == nullptr || MainStopWatchView::GetInstance()->GetShowTimelabel() == nullptr || StopWatchModel::GetInstance()->DisplayStopWatchDuration() == nullptr)\r
+        if (g_StopWatchTimes >= MAX_STOPWATCH_TIME)\r
         {\r
-            return;\r
+            return true;\r
         }\r
+        return false;\r
+    }\r
 \r
-        if ((g_StopWatchTimes) >= MAX_STOPWATCH_TIME) // 达到最大时间\r
-\r
-        {\r
-            MainStopWatchView::GetInstance()->GetPlayOrPausecheckBox()->SetState(UICheckBox::UNSELECTED);\r
-            MainStopWatchView::GetInstance()->ChangeRecordTimeToLimitView();\r
-        }\r
-        else\r
+    static void StopWatch_TimerCallbackProc(int data)\r
+    {\r
+        if (MainStopWatchView::GetInstance() == nullptr)\r
         {\r
-            MainStopWatchView::GetInstance()->GetShowTimelabel()->SetText(StopWatchModel::GetInstance()->DisplayStopWatchDuration());\r
+            return;\r
         }\r
+        MainStopWatchView::GetInstance()->GetPlayOrPausecheckBox()->SetState(UICheckBox::UNSELECTED);\r
+        MainStopWatchView::GetInstance()->ChangeRecordTimeToLimitView();\r
+        uapi_set_screen_on_api();\r
     }\r
 \r
     /*\r
@@ -104,7 +103,10 @@ namespace OHOS
     static void StopWatch_TimerCallback(int data)\r
     {\r
         g_StopWatchTimes += 10; // 每次回调增加10毫秒\r
-        GraphicService::GetInstance()->PostGraphicEvent(std::bind(StopWatch_TimerCallbackProc, data));\r
+        if(StopWatchModel::GetInstance()->isReachMaxRecordTime()) //达到最大时间\r
+        {\r
+            GraphicService::GetInstance()->PostGraphicEvent(std::bind(StopWatch_TimerCallbackProc, data));\r
+        }\r
     }\r
 \r
     /*\r
index 276d7f9..879ddac 100644 (file)
@@ -31,9 +31,16 @@ namespace OHOS
         if (scrollView == nullptr)\r
         {\r
             scrollView = new UIScrollView();\r
-\r
             scrollView->SetPosition(0, 0, 466, 466);\r
             scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+            scrollView->SetTouchable(true);\r
+            scrollView->SetDraggable(true);\r
+            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(MainStopWatchPresenter::GetInstance());\r
+            if (draglistener == nullptr)\r
+            {\r
+                return nullptr;\r
+            }\r
+            scrollView->SetOnDragListener(draglistener);\r
             /* -------------------------------------------------------------------------- */\r
             if (Title == nullptr)\r
             {\r
index 8df7a03..5173de4 100644 (file)
@@ -34,6 +34,14 @@ namespace OHOS
             scrollView = new UIScrollView();\r
             scrollView->SetPosition(0, 0, 466, 466);\r
             scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+            scrollView->SetTouchable(true);\r
+            scrollView->SetDraggable(true);\r
+            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(MainStopWatchPresenter::GetInstance());\r
+            if (draglistener == nullptr)\r
+            {\r
+                return nullptr;\r
+            }\r
+            scrollView->SetOnDragListener(draglistener);\r
             /* -------------------------------------------------------------------------- */\r
             if (Title == nullptr)\r
             {\r