From: Caisking <3449750381@qq.com> Date: Sat, 3 Aug 2024 02:46:45 +0000 (+0800) Subject: 配置消息通知Slice回退以及按键 X-Git-Tag: release_V1.2.70_20241020_135402~555^2~17^2~7 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=7fb908839bbcdb16d5ec7e712448f5a203983336;p=mirrors%2FFD230.git 配置消息通知Slice回退以及按键 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessagePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessagePresenter.h index 716f81552..763530899 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessagePresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessagePresenter.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-03 09:55:51 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessagePresenter.h + */ /*** * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com @@ -18,6 +24,9 @@ #include "MessageView.h" #include "message/include/MessageModel.h" #include "components/ui_list.h" +// #include "KeyInputListener.h" +#include "common/key_code.h" + namespace OHOS { class MessageView; @@ -26,6 +35,7 @@ namespace OHOS public UIView::OnClickListener, public UIView::OnDragListener, public ListScrollListener, + public RootView::OnKeyActListener, public UIList { public: @@ -43,6 +53,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; // 增加按键事件 MessageModel *p_MessageModel{nullptr}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp index e389929e7..9df71b029 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp @@ -3,13 +3,17 @@ #include "AppViewIDs.h" #include "components/ui_label_ext.h" #include "ui_resource_string.h" -#include "NativeAbility.h" + #include "message/include/MessagePresenter.h" #include "message/include/MessageAdapter.h" #include "message/include/MessageItemView.h" #include "components/ui_abstract_scroll_bar.h" #include "gfx_utils/graphic_log.h" #include "wearable_log.h" +#include "NativeAbility.h" +#include "common/key_code.h" +#include "KeyInputListener.h" +#include "custom_utils.h" namespace OHOS { @@ -77,11 +81,6 @@ namespace OHOS { NativeAbility::GetInstance().Back(); } - // 向下回到主界面 - // if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM) - // { - // NativeAbility::GetInstance().EnterSlice(VIEW_MAIN); - // } return true; } @@ -95,7 +94,7 @@ namespace OHOS { // 执行全部删除操作 MessageModel::GetInstance().ClearAllMessages(); - NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + NativeAbility::GetInstance().Back(); return true; } /* -------------------------------------------------------------------------- */ @@ -121,4 +120,17 @@ namespace OHOS return true; } + bool MessagePresenter::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); + NativeAbility::GetInstance().Back(TransitionType::TRANSITION_ZOOM); + } + return true; + } + } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp index 3c215a3e4..65da13ad2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp @@ -61,63 +61,35 @@ namespace OHOS messageView->RemoveAll(); MessageList->RemoveAll(); - if (labeltitle != nullptr) - { - lackView->Remove(labeltitle); - delete labeltitle; - labeltitle = nullptr; - } - if (labelmeage != nullptr) - { - lackView->Remove(labelmeage); - delete labelmeage; - labelmeage = nullptr; - } - if (imageline != nullptr) - { - lackView->Remove(imageline); - delete imageline; - imageline = nullptr; - } - if (imagemeage != nullptr) - { - lackView->Remove(imagemeage); - delete imagemeage; - imagemeage = nullptr; - } - if (lackView != nullptr) - { - lackView->RemoveAll(); - delete lackView; - lackView = nullptr; - } - if (title != nullptr) - { - delete title; - title = nullptr; - } - if (title != nullptr) - { - delete title; - title = nullptr; - } - if (DeleteButton != nullptr) - { - delete DeleteButton; - DeleteButton = nullptr; - } - if (MessageList != nullptr) - { - MessageList->RemoveAll(); - delete MessageList; - MessageList = nullptr; - } - if (messageView != nullptr) - { - messageView->RemoveAll(); - delete messageView; - messageView = nullptr; - } + delete labeltitle; + labeltitle = nullptr; + + delete labelmeage; + labelmeage = nullptr; + + delete imageline; + imageline = nullptr; + + delete imagemeage; + imagemeage = nullptr; + + delete lackView; + lackView = nullptr; + + delete title; + title = nullptr; + delete title; + title = nullptr; + + delete DeleteButton; + DeleteButton = nullptr; + + delete MessageList; + MessageList = nullptr; + + delete messageView; + messageView = nullptr; + delete draglistener; draglistener = nullptr; } @@ -162,12 +134,7 @@ namespace OHOS lackView->SetDraggable(true); lackView->SetTouchable(true); - UIView::OnDragListener *draglistener = static_cast(MessagePresenter::GetInstance()); - if (draglistener == nullptr) - { - return; - } - lackView->SetOnDragListener(draglistener); + lackView->SetOnDragListener(presenter_); lackView->SetVisible(false); // 界面隐藏 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView end"); @@ -211,14 +178,8 @@ namespace OHOS MessageList->SetDragACCLevel(5); // 5: drag acceleration MessageList->SetYScrollBarVisible(true); - MessageList->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); - - UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); - if (Messagedraglistener == nullptr) - { - return; - } - messageView->SetOnDragListener(Messagedraglistener); + MessageList->SetOnClickListener(presenter_); + messageView->SetOnDragListener(presenter_); /*删除按键*/ int top = MessageList->GetHeight(); @@ -226,7 +187,7 @@ namespace OHOS top > 466 ? top += 130 : top -= 100; WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new top %d", top); InitButtonExt(DeleteButton, 43, top, 380, 100, DELETEALLDATA, STR_CLEANALL, 30); - DeleteButton->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); + DeleteButton->SetOnClickListener(presenter_); messageView->Add(DeleteButton); messageView->SetVisible(false); // 隐藏界面 @@ -260,22 +221,34 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL"); return; } - popupView->SetVisible(status); - UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); - if (Messagedraglistener == nullptr) + if (container_ != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Messagedraglistener is NULL"); - return; + container_->SetVisible(!status); } - popupView->SetOnDragListener(Messagedraglistener); + popupView->SetVisible(status); } /// @brief 页面启动时需要执行的代码逻辑 void MessageView::OnStart() { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartResultView::OnStart"); + View::OnStart(); + + // SetContainerView(new UIScrollView()); + container_ = new UIScrollView(); + container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + container_->SetOnDragListener(presenter_); + container_->SetTouchable(true); + container_->SetDraggable(true); + ShowLackView(); ShowMessageView(); PreLoad(); + + RootView::GetInstance()->Add(container_); + SetContainerView(container_); + + RootView::GetInstance()->SetOnKeyActListener(presenter_); } void MessageView::AddMessageToList(const MessageListItem &item) { @@ -311,6 +284,12 @@ namespace OHOS void MessageView::OnStop() { View::OnStop(); + if (container_ != nullptr) + { + container_->RemoveAll(); + delete container_; + container_ = nullptr; + } RootView::GetInstance()->RemoveAll(); return; }