优化指南针,倒计时,显示与亮度的退出逻辑
authorluozheng <1732036298@qq.com>
Fri, 7 Jun 2024 12:43:50 +0000 (20:43 +0800)
committerluozheng <1732036298@qq.com>
Fri, 7 Jun 2024 12:43:50 +0000 (20:43 +0800)
code/sdk/application/wearable/fd230app/nativeui/compass/include/MainCompassPresenter.h
code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/countdown/include/MainCountDownPresenter.h
code/sdk/application/wearable/fd230app/nativeui/countdown/src/MainCountDownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/countdown/src/MainCountDownView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp

index 8bc3c1d..4123c1d 100644 (file)
@@ -1,8 +1,10 @@
 /*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: MainCompassPresenter.h
- * Author:
- * Create: 2021-12-21
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-06-07 09:21:47
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-07 20:18:32
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/include/MainCompassPresenter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 #ifndef COMPASS_MAINPRESENTER_H
 #define COMPASS_MAINPRESENTER_H
@@ -35,8 +37,10 @@ public:
 
     static MainCompassPresenter *GetInstance(void);
     bool OnDrag(UIView& view, const DragEvent& event) override;
+    bool OnDragEnd(UIView& view, const DragEvent& event) override;
     bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
     void Notify() override;
+    bool X_DRAG_FLAG{false};
 };
 }
 #endif
\ No newline at end of file
index bf87159..516365c 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-14 15:02:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-07 10:33:16
+ * @LastEditTime: 2024-06-07 20:23:18
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/src/MainCompassPresenter.cpp
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -13,6 +13,7 @@
 #include "wearable_log.h"
 #include "common/key_code.h"
 #include "custom_utils.h"
+#include "UiConfig.h"
 namespace OHOS
 {
     static MainCompassPresenter *g_pMainView = nullptr;
@@ -52,10 +53,22 @@ namespace OHOS
     */
     bool MainCompassPresenter::OnDrag(UIView &view, const DragEvent &event)
     {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCompassPresenter::OnDrag");
         UNUSED(view);
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
         {
-            NativeAbility::GetInstance().Back();
+            MainCompassPresenter::X_DRAG_FLAG = true;
+        }
+        return true;
+    }
+
+    bool MainCompassPresenter::OnDragEnd(UIView& view, const DragEvent& event)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCompassPresenter::OnDragEnd");
+        UNUSED(view);
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MainCompassPresenter::X_DRAG_FLAG)
+        {
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
         }
         return true;
     }
@@ -71,7 +84,7 @@ bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     // 如果是power键就返回上一级
     if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
     {
-        NativeAbility::GetInstance().Back();
+        NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
     }
     return true;
 }
index dea71c4..d946e7b 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-04-09 15:40:05\r
+ * @LastEditTime: 2024-06-07 19:57:56\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/countdown/include/MainCountDownPresenter.h\r
  */\r
 #ifndef MAIN_COUNTDOWN_PRESENTER_H\r
@@ -55,6 +55,7 @@ namespace OHOS
 \r
         std::string countdowntime{0};\r
         std::string ringtime{0};\r
+        bool X_DRAG_FLAG{false};\r
     };\r
 }\r
 \r
index fcacd87..40ea1b5 100644 (file)
@@ -1,5 +1,6 @@
 #include "AppViewIDs.h"\r
 #include "NativeAbility.h"\r
+#include "UiConfig.h"\r
 #include "countdown/include/MainCountDownPresenter.h"\r
 #include "countdown/include/CountDownModel.h"\r
 #include "common/key_code.h"\r
@@ -57,25 +58,33 @@ namespace OHOS
     {\r
         Presenter<MainCountDownView>::OnStop();\r
         ScreenAlwaysOnCtr(0); // 取消长亮屏\r
-\r
     }\r
 \r
     bool MainCountDownPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCountDownPresenter::OnDrag");\r
         UNUSED(view);\r
-        UNUSED(event);\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+        {\r
+            MainCountDownPresenter::X_DRAG_FLAG = true;\r
+        }\r
         return true;\r
     }\r
 \r
     bool MainCountDownPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && strcmp(view.GetViewId(), MAINCOUNTDOWNVIEW) == 0)\r
-        {\r
-            NativeAbility::GetInstance().Back();\r
-        }\r
-        else if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && strcmp(view.GetViewId(), COUNTDOWN_TIMECONFIG_VIEW) == 0)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCountDownPresenter::OnDragEnd");\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MainCountDownPresenter::X_DRAG_FLAG)\r
         {\r
-            MainCountDownView::GetInstance()->ChangeView(TIMECONFIG_COUNTDOWN, MAIN_COUNTDOWN);\r
+            if (strcmp(view.GetViewId(), MAINCOUNTDOWNVIEW) == 0)\r
+            {\r
+                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+            }\r
+            else if (strcmp(view.GetViewId(), COUNTDOWN_TIMECONFIG_VIEW) == 0)\r
+            {\r
+                MainCountDownView::GetInstance()->ChangeView(TIMECONFIG_COUNTDOWN, MAIN_COUNTDOWN);\r
+            }\r
+            MainCountDownPresenter::X_DRAG_FLAG = false;\r
         }\r
         return true;\r
     }\r
@@ -183,7 +192,7 @@ namespace OHOS
         // 如果是power键就返回上一级\r
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
         {\r
-            NativeAbility::GetInstance().Back();\r
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
         return true;\r
     }\r
index a70dd21..2680cba 100644 (file)
@@ -383,6 +383,7 @@ namespace OHOS
         scrollView[MAIN_COUNTDOWN]->Add(COUNTDOWN_THIRTY_MINUTE_BUTTON);\r
         group->Add(scrollView[MAIN_COUNTDOWN]);\r
         RootView::GetInstance()->Add(group);\r
+        container_ = group;\r
         Draw();\r
     }\r
 \r
index 445a202..1e070ae 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-18 09:10:05\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-18 15:53:53\r
+ * @LastEditTime: 2024-06-07 19:25:27\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h\r
  */\r
 #ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
@@ -100,6 +100,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
+        bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
 \r
index c796fd7..21400b2 100644 (file)
@@ -2,10 +2,11 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-07 10:38:25\r
+ * @LastEditTime: 2024-06-07 19:55:47\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp\r
  */\r
 #include "AppViewIDs.h"\r
+#include "UiConfig.h"\r
 #include "components/ui_label_ext.h"\r
 #include "language/font/ui_resource_string.h"\r
 #include "NativeAbility.h"\r
@@ -152,32 +153,38 @@ namespace OHOS
 \r
     bool DisplayBrightnessPresenter::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnClick");\r
         DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
-        // 根据控件id查找是哪个控件触发了点击回调\r
+        if (p_DisplayBrightnessView == nullptr)\r
+        {\r
+            return false;\r
+        }\r
         if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
         {\r
             NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL);\r
-            return true;\r
         }\r
-        if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0)\r
+        else if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0)\r
         {\r
             p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, SCREENDURATIONVIEW); // 切换到亮屏时长视图\r
-            return true;\r
         }\r
-        return false;\r
+        return true;\r
     }\r
 \r
     bool DisplayBrightnessPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnDrag");\r
         UNUSED(view);\r
-        UNUSED(event);\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+        {\r
+            DisplayBrightnessPresenter::X_DRAG_FLAG = true;\r
+        }\r
         return true;\r
     }\r
 \r
     bool DisplayBrightnessPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
         DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && DisplayBrightnessPresenter::X_DRAG_FLAG)\r
         {\r
             if (strcmp(view.GetViewId(), SCREENDURATIONSCROLLVIEW) == 0)\r
             {\r
@@ -185,9 +192,10 @@ namespace OHOS
             }\r
             else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0)\r
             {\r
-                NativeAbility::GetInstance().Back();\r
-                return true;\r
+                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+                \r
             }\r
+            DisplayBrightnessPresenter::X_DRAG_FLAG = false;\r
         }\r
         return true;\r
     }\r
index d205e17..caaa16f 100644 (file)
@@ -553,6 +553,7 @@ namespace OHOS
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton);\r
         RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
+        container_ = DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
         Draw();\r
     }\r
 \r