From b0b21915db2efb99e09a5d4dc18fc525ceef120d Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 3 Aug 2024 11:12:11 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E9=81=A5=E6=8E=A7=E6=8B=8D?= =?utf8?q?=E7=85=A7=E5=9B=9E=E9=80=80=E4=BB=A5=E5=8F=8A=E6=8C=89=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../takephotos/include/TakephotosPresenter.h | 3 + .../takephotos/src/TakephotosPresenter.cpp | 36 ++++- .../takephotos/src/TakephotosView.cpp | 128 ++++++------------ 3 files changed, 80 insertions(+), 87 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h index ed50f7435..5353abf6d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h @@ -3,6 +3,7 @@ #include "Presenter.h" #include "TakephotosView.h" +#include "common/key_code.h" namespace OHOS { @@ -10,6 +11,7 @@ namespace OHOS class TakephotosPresenter : public Presenter, public UIView::OnClickListener, + public RootView::OnKeyActListener, public UIView::OnDragListener { public: @@ -26,6 +28,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; // 增加按键事件 }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp index 9be982dd1..091d5266b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp @@ -12,9 +12,15 @@ #include #include #include -#include "takephotos/include/TakephotosPresenter.h" + #include "uicomponents/UIComponents.h" #include "bleEvent.h" +#include "common/key_code.h" +#include "KeyInputListener.h" +#include "custom_utils.h" + +#include "takephotos/include/TakephotosPresenter.h" +#include "takephotos/include/TakephotosModel.h" // #include "TakephotosView.h" namespace OHOS @@ -61,10 +67,15 @@ namespace OHOS bool TakephotosPresenter::OnDrag(UIView &view, const DragEvent &event) { - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) + if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && + (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) { NativeAbility::GetInstance().Back(); - cameraSend(3); + /*如果是拍照界面需要发送拍照结束的消息*/ + if (TakephotosModel::GetInstance()->GetPopStaust() == PopupPhoto::TakePopup) + { + cameraSend(3); + } } return true; } @@ -74,7 +85,6 @@ namespace OHOS // 返回按键 if (strcmp(view.GetViewId(), BUTTONGO) == 0) { - // NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGMORE); NativeAbility::GetInstance().Back(); } if (strcmp(view.GetViewId(), BUTTONTAKE) == 0) @@ -85,4 +95,22 @@ namespace OHOS } return true; } + + bool TakephotosPresenter::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(); + /*如果是拍照界面需要发送拍照结束的消息*/ + if (TakephotosModel::GetInstance()->GetPopStaust() == PopupPhoto::TakePopup) + { + cameraSend(3); + } + } + return true; + } + } diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp index 57bd4888f..d4cee4d8e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp @@ -47,75 +47,40 @@ namespace OHOS /* DeInit:删除组件 */ void TakephotosView::DeInit() { - container_->RemoveAll(); - if (labeltitle_ != nullptr) - { - creamView->Remove(labeltitle_); - delete labeltitle_; - labeltitle_ = nullptr; - } - if (labelnote_ != nullptr) - { - creamView->Remove(labelnote_); - delete labelnote_; - labelnote_ = nullptr; - } - if (labeltake_ != nullptr) - { - takeView->Remove(labeltake_); - delete labeltake_; - labeltake_ = nullptr; - } - if (labelclick_ != nullptr) - { - takeView->Remove(labelclick_); - delete labelclick_; - labelclick_ = nullptr; - } - if (buttontake != nullptr) - { - takeView->Remove(buttontake); - delete buttontake; - buttontake = nullptr; - } - if (buttongo != nullptr) - { - creamView->Remove(buttongo); - delete buttongo; - buttongo = nullptr; - } - if (smileAnimator != nullptr) - { - smileAnimator->Stop(); - takeView->Remove(smileAnimator); - delete smileAnimator; - smileAnimator = nullptr; - } - if (creamAnimator != nullptr) - { - creamAnimator->Stop(); - creamView->Remove(creamAnimator); - delete creamAnimator; - creamAnimator = nullptr; - } - if (creamView != nullptr) - { - creamView->RemoveAll(); - delete creamView; - creamView = nullptr; - } - if (takeView != nullptr) - { - takeView->RemoveAll(); - delete takeView; - takeView = nullptr; - } - if (container_ != nullptr) - { - container_->RemoveAll(); - delete container_; - container_ = nullptr; - } + creamView->RemoveAll(); + takeView->RemoveAll(); + + delete labeltitle_; + labeltitle_ = nullptr; + + delete labelnote_; + labelnote_ = nullptr; + + delete labeltake_; + labeltake_ = nullptr; + + delete labelclick_; + labelclick_ = nullptr; + + delete buttontake; + buttontake = nullptr; + + delete buttongo; + buttongo = nullptr; + + smileAnimator->Stop(); + delete smileAnimator; + smileAnimator = nullptr; + + creamAnimator->Stop(); + delete creamAnimator; + creamAnimator = nullptr; + + delete creamView; + creamView = nullptr; + + delete takeView; + takeView = nullptr; } void TakephotosView::PreLoad(void) @@ -274,28 +239,19 @@ namespace OHOS void TakephotosView::OnStart() { container_ = new UIScrollView(); - if (container_ == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail"); - return; - } container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - // 创建 draglistener 实例并设置为拖动监听器 - UIView::OnDragListener *draglistener = static_cast(TakephotosPresenter::GetInstance()); - if (draglistener == nullptr) - { - return; - } - container_->SetOnDragListener(draglistener); + container_->SetOnDragListener(presenter_); container_->SetTouchable(true); container_->SetDraggable(true); - container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR); - container_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); ShowCreamView(); ShowTakeView(); PreLoad(); + RootView::GetInstance()->Add(container_); + SetContainerView(container_); + + RootView::GetInstance()->SetOnKeyActListener(presenter_); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TakephotosView OnStart is ok"); } @@ -326,6 +282,12 @@ namespace OHOS void TakephotosView::OnStop() { View::OnStop(); + if (container_ != nullptr) + { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } RootView::GetInstance()->RemoveAll(); return; } -- 2.17.1