From a44049978e2e84aae4cabd31726153b190d282cb Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 29 Jun 2024 18:15:52 +0800 Subject: [PATCH] =?utf8?q?=E9=83=A8=E5=88=86=E8=AE=AD=E7=BB=83=E7=95=8C?= =?utf8?q?=E9=9D=A2=E5=A2=9E=E5=8A=A0=E6=8C=89=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/heartrate/src/HeartPresenter.cpp | 1 - .../traing/include/TraingEnddataPresenter.h | 15 ++++++++--- .../traing/include/TraingNomalPresenter.h | 4 ++- .../nativeui/traing/include/TraingPresenter.h | 10 +++++++- .../traing/include/TraingSetPresenter.h | 4 ++- .../traing/src/TraingEnddataPresenter.cpp | 15 +++++++++++ .../nativeui/traing/src/TraingEnddataView.cpp | 6 ++++- .../traing/src/TraingNomalPresenter.cpp | 16 ++++++++++++ .../nativeui/traing/src/TraingNomalView.cpp | 4 +++ .../nativeui/traing/src/TraingPresenter.cpp | 17 +++++++++++++ .../traing/src/TraingSetPresenter.cpp | 25 ++++++++++++++++++- .../nativeui/traing/src/TraingView.cpp | 6 +++-- 12 files changed, 111 insertions(+), 12 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp index 106685d3b..bc103aa5c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartPresenter.cpp @@ -149,7 +149,6 @@ namespace OHOS } return true; #endif - return true; } bool HeartPresenter::OnClick(UIView &view, const ClickEvent &event) diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataPresenter.h index 2a0257af8..197d95d94 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataPresenter.h @@ -1,4 +1,9 @@ - +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-29 17:46:18 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingEnddataPresenter.h + */ #ifndef _TraingEnddata_PRESENTER_H #define _TraingEnddata_PRESENTER_H @@ -11,8 +16,9 @@ namespace OHOS class TraingEnddataView; class TraingEnddataPresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener + public UIView::OnClickListener, + public RootView::OnKeyActListener, + public UIView::OnDragListener { public: TraingEnddataPresenter(); @@ -28,7 +34,8 @@ namespace OHOS // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; bool OnClick(UIView &view, const ClickEvent &event) override; bool OnDrag(UIView &view, const DragEvent &event) override; - //bool OnDragEnd(UIView& view, const DragEvent& event) override; + bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 + // bool OnDragEnd(UIView& view, const DragEvent& event) override; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingNomalPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingNomalPresenter.h index d2e6356b1..cb7e898a1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingNomalPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingNomalPresenter.h @@ -1,4 +1,4 @@ -/*** +/*** * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com * @LastEditTime: 2024-04-17 14:18:05 @@ -17,6 +17,7 @@ namespace OHOS class TraingNomalPresenter : public Presenter, public UIView::OnClickListener, + public RootView::OnKeyActListener, public UIView::OnDragListener { public: @@ -34,6 +35,7 @@ namespace OHOS // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; bool OnClick(UIView &view, const ClickEvent &event) override; bool OnDrag(UIView &view, const DragEvent &event) override; + bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 // bool OnDragEnd(UIView& view, const DragEvent& event) override; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h index 7bf2b69c0..50dc63765 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-29 17:42:47 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingPresenter.h + */ #ifndef _Traing_PRESENTER_H #define _Traing_PRESENTER_H @@ -11,7 +17,8 @@ namespace OHOS class TraingPresenter : public Presenter, public UIView::OnClickListener, - public UIView::OnDragListener + public UIView::OnDragListener, + public RootView::OnKeyActListener { public: TraingPresenter(); @@ -29,6 +36,7 @@ namespace OHOS bool OnClick(UIView &view, const ClickEvent &event) override; bool OnDrag(UIView &view, const DragEvent &event) override; bool OnDragEnd(UIView &view, const DragEvent &event) override; + bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h index 114d088b1..9d43f684d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h @@ -25,6 +25,7 @@ namespace OHOS class TraingSetView; class TraingSetPresenter : public Presenter, public UIView::OnClickListener, + public RootView::OnKeyActListener, public UIView::OnDragListener { public: @@ -37,7 +38,7 @@ namespace OHOS void OnStop() override; static TraingSetPresenter *GetInstance(); - + const char *GetButtonIdFromCard(int cardID); int GetTagFromCard(int cardID); ExerciseTag GetExerciseTagFromCard(int cardID); @@ -47,6 +48,7 @@ namespace OHOS bool OnClick(UIView &view, const ClickEvent &event) override; bool OnDrag(UIView &view, const DragEvent &event) override; bool OnDragEnd(UIView &view, const DragEvent &event) override; + bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataPresenter.cpp index 6d2b73031..b6c37c085 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataPresenter.cpp @@ -20,6 +20,9 @@ #include "components/ui_label_ext.h" #include "language/font/ui_resource_string.h" #include "NativeAbility.h" +#include "KeyInputListener.h" +#include "custom_utils.h" +#include "common/key_code.h" #include #include @@ -94,4 +97,16 @@ namespace OHOS } return true; } + bool TraingEnddataPresenter::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().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM); + } + return true; + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp index 932b8838f..ee598e08f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp @@ -277,7 +277,7 @@ namespace OHOS delete scrollView_; scrollView_ = nullptr; } - + delete container_; container_ = nullptr; } @@ -383,6 +383,10 @@ namespace OHOS PreLoad(); InitData(); RootView::GetInstance()->Add(container_); + + // 增加按键监听 + RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingEnddataPresenter::GetInstance(); + RootView::GetInstance()->SetOnKeyActListener(keyactListener); } void TraingEnddataView::OnSetUpView() diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp index 978d9ef7b..342df0129 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalPresenter.cpp @@ -4,6 +4,10 @@ #include "components/ui_label_ext.h" #include "language/font/ui_resource_string.h" #include "NativeAbility.h" +#include "KeyInputListener.h" +#include "custom_utils.h" +#include "common/key_code.h" + #include #include @@ -89,4 +93,16 @@ namespace OHOS } return true; } + bool TraingNomalPresenter::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/traing/src/TraingNomalView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp index 2adc8a910..3ee8f3b3c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingNomalView.cpp @@ -122,6 +122,10 @@ namespace OHOS PreLoad(); RootView::GetInstance()->Add(container_); + + // 增加按键监听 + RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingNomalPresenter::GetInstance(); + RootView::GetInstance()->SetOnKeyActListener(keyactListener); } void TraingNomalView::OnSetUpView() diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingPresenter.cpp index 70a09ba3d..9e7155735 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingPresenter.cpp @@ -9,6 +9,9 @@ #include "components/ui_label_ext.h" #include "language/font/ui_resource_string.h" #include "NativeAbility.h" +#include "KeyInputListener.h" +#include "custom_utils.h" +#include "common/key_code.h" #include #include @@ -98,4 +101,18 @@ namespace OHOS TraingModel::GetInstance()->SetSportType(Exercisetype::FITNESS); return true; } + + // 增加按键事件 + bool TraingPresenter::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().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM); + } + return true; + } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp index 054c1048f..b47137d1d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp @@ -8,6 +8,9 @@ #include "components/ui_label_ext.h" #include "language/font/ui_resource_string.h" #include "NativeAbility.h" +#include "KeyInputListener.h" +#include "custom_utils.h" +#include "common/key_code.h" #include #include @@ -71,7 +74,27 @@ namespace OHOS { return true; } - + // 增加按键事件 + bool TraingSetPresenter::OnKeyAct(UIView &view, const KeyEvent &event) + { + int CardID = TraingSetView::GetInstance()->GetCurrentViewId(); + 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) + { + // 不在设置页面 + if (CardID != SET_VIEW) + { + TraingSetView::GetInstance()->ChangeView(CardID, SET_VIEW); + } + else + { + NativeAbility::GetInstance().Back(); + } + } + return true; + } bool TraingSetPresenter::OnDragEnd(UIView &view, const DragEvent &event) { int CardID = TraingSetView::GetInstance()->GetCurrentViewId(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp index 00f35bffe..9f6440d2c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingView.cpp @@ -70,7 +70,7 @@ namespace OHOS bool TraingView::AddLabel() { // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingModel::AddLabel"); - // 初始化标签 + // 初始化标签 InitLabelExt(title_label, TITLE_LABEL_X, TITLE_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "title_label", STR_RAPID_TRAINING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE); InitLabelExt(btn1_label, BTN1_LABEL_X, BTN1_LABEL_Y, LABEL_X_SIZE, LABEL_Y_SIZE, "btu1_label", STR_EXERCISE_OUTDOORWALKING, DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT_SIZE); @@ -261,7 +261,6 @@ namespace OHOS return; } container_->SetOnDragListener(draglistener); - container_->SetTouchable(true); container_->SetDraggable(true); @@ -269,6 +268,9 @@ namespace OHOS RootView::GetInstance()->Add(container_); SetContainerView(container_); + // 增加按键监听 + RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingPresenter::GetInstance(); + RootView::GetInstance()->SetOnKeyActListener(keyactListener); } void TraingView::OnSetUpView() -- 2.17.1