适配卡片管理Slice回退以及按键 639/3 639/head 640/target/1
authorCaisking <3449750381@qq.com>
Sat, 3 Aug 2024 07:20:31 +0000 (15:20 +0800)
committerCaisking <3449750381@qq.com>
Sat, 3 Aug 2024 07:20:31 +0000 (15:20 +0800)
code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h
code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp
code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp

index 5c8f150..ab0f02f 100644 (file)
@@ -39,9 +39,7 @@ namespace OHOS
         SetUpToast();
 
         SetContainerView(container_);
-        // 增加按键监听
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::AddCardPresenter::GetInstance();
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void AddCardView::OnSetUpView()
index fb89507..b65627a 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-07-05 11:09:20
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-03 15:12:30
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: SetDialPresenter.h
 #include "KeyInputListener.h"
 #include "ModelListenerSample.h"
 
-namespace OHOS {
-
-const uint16_t MISS_DIAL_OPERATION_TIME = 3000;
-
-class SetDialView;
-class SetDialModel;
-class SetDialPresenter : public Presenter<SetDialView>,
-                         public UIView::OnClickListener, public ModelListenerSample,
-                         public UICoverflowView::OnCoverflowScrollListener,
-                         public UIRollerView::OnScrollListener {
-public:
-    SetDialPresenter();
-    ~SetDialPresenter() override;
-    size_t GetDialCount(void);
-    std::vector<SetDialInfo>& GetDialInfo(void);
-    uint8_t GetPageIndex(void);
-    void OnStart() override;
-    void OnResume() override;
-    void OnStop() override;
-    void OnTickEvent() override;
-    void Notify() override {}
-    bool OnScroll() override;
-    void OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle) override;
-    bool OnClick(UIView &view, const ClickEvent &event) override;
-    void ResetTickTimer(void);
-private:
-    void OnClickAction(void);
-    KeyInputListener *keyActListenr{nullptr};
-    SetDialModel *model{nullptr};
-    uint64_t startTime{0};
-};
+namespace OHOS
+{
+
+    const uint16_t MISS_DIAL_OPERATION_TIME = 3000;
+
+    class SetDialView;
+    class SetDialModel;
+    class SetDialPresenter : public Presenter<SetDialView>,
+                             public UIView::OnClickListener,
+                             public ModelListenerSample,
+                             public UICoverflowView::OnCoverflowScrollListener,
+                             public UIRollerView::OnScrollListener,
+                             public RootView::OnKeyActListener
+    {
+    public:
+        SetDialPresenter();
+        ~SetDialPresenter() override;
+        size_t GetDialCount(void);
+        std::vector<SetDialInfo> &GetDialInfo(void);
+        uint8_t GetPageIndex(void);
+        void OnStart() override;
+        void OnResume() override;
+        void OnStop() override;
+        void OnTickEvent() override;
+        void Notify() override {}
+        bool OnScroll() override;
+        void OnScroll(UIRollerView *roller, std::string currentItemName, float currentItemAngle) override;
+        bool OnClick(UIView &view, const ClickEvent &event) override;
+
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+
+        void ResetTickTimer(void);
+
+    private:
+        void OnClickAction(void);
+        KeyInputListener *keyActListenr{nullptr};
+        SetDialModel *model{nullptr};
+        uint64_t startTime{0};
+    };
 }
 
 #endif // SET_DIAL_PRESENTER_H
\ No newline at end of file
index 0a0408d..842507c 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-07-05 11:09:20
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-03 15:16:08
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: SetDialView.h
@@ -16,6 +22,7 @@
 #include "BaseView.h"
 #include "ChangeSliceListener.h"
 #include "UiConfig.h"
+#include "KeyInputListener.h"
 
 namespace OHOS {
 static constexpr uint8_t DIVISOR_TWO = 2;
index fb4c6b9..30ca758 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-07-05 11:09:20
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-03 15:11:43
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp
+ */
 /*
  * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
  * Description: SetDialPresenter.cpp
@@ -9,6 +15,10 @@
 #include "SetDialModel.h"
 #include "SetDialPresenter.h"
 
+#include "KeyInputListener.h"
+#include "custom_utils.h"
+#include "common/key_code.h"
+
 namespace OHOS
 {
     SetDialPresenter::SetDialPresenter()
@@ -19,30 +29,11 @@ namespace OHOS
         ResetTickTimer();
     }
 
-    SetDialPresenter::~SetDialPresenter()
-    {
-        if (keyActListenr != nullptr)
-        {
-            delete keyActListenr;
-            keyActListenr = nullptr;
-        }
-    }
+    SetDialPresenter::~SetDialPresenter() {}
 
     void SetDialPresenter::OnStart()
     {
         Presenter<SetDialView>::OnStart();
-        if (keyActListenr == nullptr)
-        {
-            keyActListenr = new KeyInputListener();
-            if (keyActListenr != nullptr)
-            {
-                RootView::GetInstance()->SetOnKeyActListener(keyActListenr);
-            }
-            else
-            {
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnStart: new KeyInputListener fail");
-            }
-        }
     }
 
     void SetDialPresenter::OnResume(void)
@@ -57,7 +48,9 @@ namespace OHOS
     {
         uint8_t pageIndex = view_->GetCoverflowPage();
         model->SaveDialSetting(pageIndex);
+        /*切换当前表盘*/
         NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+        NativeAbility::GetInstance().ClearSliceIdStack(); // 清空Slice栈
     }
 
     bool SetDialPresenter::OnClick(UIView &view, const ClickEvent &event)
@@ -108,4 +101,18 @@ namespace OHOS
     {
         startTime = osKernelGetTick2ms();
     }
+
+    // 增加按键事件
+    bool SetDialPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+    {
+        unsigned short keyID = event.GetKeyId();
+        unsigned short keyState = event.GetState();
+        // 如果是power键,且是亮屏状态,按键释放就返回上一级
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
+        {
+            // 回退
+            NativeAbility::GetInstance().Back();
+        }
+        return true;
+    }
 }
index 81f72f9..557861d 100644 (file)
@@ -36,6 +36,9 @@ namespace OHOS
         {
             SetUpRollerView();
         }
+
+        SetContainerView(container_);
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);
     }
 
     void SetDialView::SetUpCoverflowView(void)
index 1a8854f..e3bb503 100644 (file)
@@ -1,3 +1,9 @@
+/***
+ * @Date: 2024-07-05 11:09:20
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-03 15:00:08
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp
+ */
 /***
  * @Date: 2024-07-05 11:09:20
  * @LastEditors: Caisking 3449750381@qq.com
@@ -18,7 +24,6 @@
 #include "custom_utils.h"
 #include "common/key_code.h"
 
-
 namespace OHOS
 {
     SetDialStylePresenter::SetDialStylePresenter()
@@ -44,9 +49,12 @@ namespace OHOS
         if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
             (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
         {
+#if 0
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice");
             uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
             NativeAbility::GetInstance().ChangeSlice(preSlice);
+#endif
+            NativeAbility::GetInstance().Back();
         }
         return true;
     }
@@ -59,7 +67,7 @@ namespace OHOS
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
         {
             // 回退
-            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
+            NativeAbility::GetInstance().Back();
         }
         return true;
     }