From 1b983cbee4303b18a335bd102aed61de91b2f9de Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 3 Aug 2024 15:20:31 +0800 Subject: [PATCH] =?utf8?q?=E9=80=82=E9=85=8D=E5=8D=A1=E7=89=87=E7=AE=A1?= =?utf8?q?=E7=90=86Slice=E5=9B=9E=E9=80=80=E4=BB=A5=E5=8F=8A=E6=8C=89?= =?utf8?q?=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/add_card/src/AddCardView.cpp | 4 +- .../set_dial/include/SetDialPresenter.h | 76 +++++++++++-------- .../nativeui/set_dial/include/SetDialView.h | 7 ++ .../set_dial/src/SetDialPresenter.cpp | 47 +++++++----- .../nativeui/set_dial/src/SetDialView.cpp | 3 + .../src/SetDialStylePresenter.cpp | 12 ++- 6 files changed, 93 insertions(+), 56 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp index 5c8f15071..ab0f02ff3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardView.cpp @@ -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() diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h index fb895078b..b65627a37 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialPresenter.h @@ -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 @@ -15,37 +21,45 @@ #include "KeyInputListener.h" #include "ModelListenerSample.h" -namespace OHOS { - -const uint16_t MISS_DIAL_OPERATION_TIME = 3000; - -class SetDialView; -class SetDialModel; -class SetDialPresenter : public Presenter, - public UIView::OnClickListener, public ModelListenerSample, - public UICoverflowView::OnCoverflowScrollListener, - public UIRollerView::OnScrollListener { -public: - SetDialPresenter(); - ~SetDialPresenter() override; - size_t GetDialCount(void); - std::vector& 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, + public UIView::OnClickListener, + public ModelListenerSample, + public UICoverflowView::OnCoverflowScrollListener, + public UIRollerView::OnScrollListener, + public RootView::OnKeyActListener + { + public: + SetDialPresenter(); + ~SetDialPresenter() override; + size_t GetDialCount(void); + std::vector &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 diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h index 0a0408dfd..842507cfc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/include/SetDialView.h @@ -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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp index fb4c6b9df..30ca758e5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialPresenter.cpp @@ -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::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(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0) + { + // 回退 + NativeAbility::GetInstance().Back(); + } + return true; + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp index 81f72f900..557861d27 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialView.cpp @@ -36,6 +36,9 @@ namespace OHOS { SetUpRollerView(); } + + SetContainerView(container_); + RootView::GetInstance()->SetOnKeyActListener(presenter_); } void SetDialView::SetUpCoverflowView(void) diff --git a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp index 1a8854f99..e3bb50381 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/set_dial_style/src/SetDialStylePresenter.cpp @@ -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(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0) { // 回退 - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM); + NativeAbility::GetInstance().Back(); } return true; } -- 2.17.1