+/***
+ * @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
#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;
public UIView::OnClickListener,
public UIView::OnDragListener,
public ListScrollListener,
+ public RootView::OnKeyActListener,
public UIList
{
public:
// 因为继承了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
#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
{
{
NativeAbility::GetInstance().Back();
}
- // 向下回到主界面
- // if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM)
- // {
- // NativeAbility::GetInstance().EnterSlice(VIEW_MAIN);
- // }
return true;
}
{
// 执行全部删除操作
MessageModel::GetInstance().ClearAllMessages();
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ NativeAbility::GetInstance().Back();
return true;
}
/* -------------------------------------------------------------------------- */
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<uint16_t>(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
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;
}
lackView->SetDraggable(true);
lackView->SetTouchable(true);
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(MessagePresenter::GetInstance());
- if (draglistener == nullptr)
- {
- return;
- }
- lackView->SetOnDragListener(draglistener);
+ lackView->SetOnDragListener(presenter_);
lackView->SetVisible(false); // 界面隐藏
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView end");
MessageList->SetDragACCLevel(5); // 5: drag acceleration
MessageList->SetYScrollBarVisible(true);
- MessageList->SetOnClickListener(static_cast<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
-
- UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(MessagePresenter::GetInstance());
- if (Messagedraglistener == nullptr)
- {
- return;
- }
- messageView->SetOnDragListener(Messagedraglistener);
+ MessageList->SetOnClickListener(presenter_);
+ messageView->SetOnDragListener(presenter_);
/*删除按键*/
int top = MessageList->GetHeight();
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<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
+ DeleteButton->SetOnClickListener(presenter_);
messageView->Add(DeleteButton);
messageView->SetVisible(false); // 隐藏界面
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
return;
}
- popupView->SetVisible(status);
- UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(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<MessagePresenter>::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)
{
void MessageView::OnStop()
{
View<MessagePresenter>::OnStop();
+ if (container_ != nullptr)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
RootView::GetInstance()->RemoveAll();
return;
}