From 91b8a6485dad7e64fb429ca84dc2b110990f9a64 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Wed, 19 Jun 2024 19:06:23 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0=E4=B8=BB=E7=95=8C=E9=9D=A2?= =?utf8?q?=E4=BF=A1=E6=81=AF=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230app/CMakeLists.txt | 2 + .../nativeui/main/include/MainViewSample.h | 6 +- .../nativeui/main/src/MainViewSample.cpp | 2 +- .../message/include/MessageCardView.h | 60 +++-- .../message/include/MessageControlView.h | 45 ++++ .../message/include/MessageLackView.h | 45 ++++ .../nativeui/message/include/MessageView.h | 18 +- .../nativeui/message/src/MessageCardView.cpp | 229 ++++++++---------- .../message/src/MessageControlView.cpp | 114 +++++++++ .../nativeui/message/src/MessageLackView.cpp | 103 ++++++++ .../nativeui/message/src/MessagePresenter.cpp | 14 +- .../nativeui/message/src/MessageShowView.cpp | 8 +- .../nativeui/message/src/MessageView.cpp | 55 ++--- 13 files changed, 502 insertions(+), 199 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlView.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 48ee3ce14..5ede29a58 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -504,6 +504,8 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageShowPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageShowView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageCardView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageLackView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageControlView.cpp #遥控拍照 ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/takephotos/src/TakephotosPresenter.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h index f6a9dee65..353aa2b71 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h @@ -38,7 +38,7 @@ #include "weather/include/WeatherControlView.h" #include "goal/include/goalControlView.h" -#include "message/include/MessageCardView.h" +#include "message/include/MessageControlView.h" #include "set_card/include/SetMainView.h" namespace OHOS { @@ -62,7 +62,7 @@ namespace OHOS UICardPage *InitBloodOxygenPage(void); UICardPage *InitWeatherPage(void); UICardPage *InitGoalPage(void); - + UICardPage *InitTrainingPage(void); UICardPage *InitApplistPage(void); UICardPage *InitSetMainPage(void); @@ -101,7 +101,7 @@ namespace OHOS private: PullUpDownView *dropDownView{nullptr}; UICardPage *mainClockView{nullptr}; - MessageCardView *messageView{nullptr}; + MessageControlView *messageView{nullptr}; UILabel *MessageLable = nullptr; ActivityWeekView *activityWeekView{nullptr}; PlayersView *playersView{nullptr}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp index 142a3d9f7..4c0c31771 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp @@ -281,7 +281,7 @@ namespace OHOS dropDownView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); dropDownView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); /* -------------------------------------------------------------------------- */ - messageView = new MessageCardView(); + messageView = new MessageControlView(); if (messageView == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail"); diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h index 0e6d066ff..4833ec0e7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h @@ -1,36 +1,56 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 17:56:08 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h + */ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MessageCardView.h + * Author: + * Create: 2021-12-21 + */ #ifndef MESSAGE_CARD_VIEW_H #define MESSAGE_CARD_VIEW_H +#include "View.h" #include "components/root_view.h" -#include "components/ui_card_page.h" -#include "wearable_log.h" -#include "message/include/MessageView.h" -#include "components/ui_label_button_ext.h" -#include "components/ui_image_animator.h" -#include "components/ui_image_view.h" -#include "components/ui_button.h" +#include "components/ui_label.h" #include "components/ui_label_ext.h" +#include "components/ui_image_view.h" +#include "ChangeSliceListener.h" +#include "UiConfig.h" +#include "AppGroupView.h" +#include "components/ui_label_button_ext.h" +#include "message/include/MessageCardView.h" +#include "components/ui_label_button_ext.h" +#include "message/include/MessageAdapter.h" +#include "message/include/MessageItemView.h" +#include "message/include/MessageModel.h" namespace OHOS { - class MessageCardView : public UICardPage + class MessageCardView : public AppGroupView { public: MessageCardView(); - virtual ~MessageCardView(); - bool InitView(void); - void PreLoad(void) override; - void UnLoad(void) override; + ~MessageCardView() override; + static MessageCardView *GetInstance(void); + + void AddMessageToList(const MessageListItem &item); + bool InitPage(void); + bool InitView(void *caller) override; + bool GetInitViewState(void); + void SetUpView(MessageCardView *messageCardView); + UIList *GetList(); private: void ClearAll(void); - MessageView *messageview{nullptr}; - bool viewiInitStatus{false}; - - UIImageView *imageline{nullptr}; - UIImageView *imagemeage{nullptr}; - UILabelExt *labeltitle{nullptr}; - UILabelExt *labelmeage{nullptr}; + UILabelExt *title{nullptr}; + MessageListAdapter *p_MessageListAdapter{nullptr}; + UIList *MessageList = nullptr; + UILabelButtonExt *DeleteButton = nullptr; // 删除按键 + MessageModel *p_MessageModel{nullptr}; }; } -#endif +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlView.h b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlView.h new file mode 100644 index 000000000..0dab83dae --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlView.h @@ -0,0 +1,45 @@ +/*** + * @Date: 2024-06-19 16:39:31 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 17:30:37 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp + */ +/* + * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. + * Description: MessageControlView.h + * Author: + * Create: 2022-04-02 + */ + +#ifndef MESSAGE_CONTROL_VIEW_H +#define MESSAGE_CONTROL_VIEW_H + +#include "components/root_view.h" +#include "UiConfig.h" +#include "components/ui_card_page.h" +#include "message/include/MessageLackView.h" +#include "message/include/MessageCardView.h" + +namespace OHOS +{ + + class MessageControlView : public UICardPage + { + public: + MessageControlView(); + ~MessageControlView() override; + bool InitView(void); + void PreLoad(void) override; + void UnLoad(void) override; + void SetLackView(bool flag); + + private: + MessageLackView *messageLackView{nullptr}; + MessageCardView *messageCardView{nullptr}; + bool viewiInitStatus{false}; + bool isLack{false}; + + void ClearAll(void); + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h new file mode 100644 index 000000000..c882fbfdb --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h @@ -0,0 +1,45 @@ +/*** + * @Date: 2024-06-19 17:04:12 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 17:12:03 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackViewView.h + */ +/* + * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. + * Description: MessageLackView.h + * Author: + * Create: 2022-04-02 + */ + +#ifndef MESSAGE_LACK_VIEW_H +#define MESSAGE_LACK_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "View.h" +#include "ohos_types.h" +#include "AppGroupView.h" +#include "components/ui_image_view.h" + +namespace OHOS +{ + class MessageLackView : public AppGroupView + { + public: + MessageLackView(); + ~MessageLackView() override; + + bool CreateUIViewGroup(void); + static MessageLackView *GetInstance(void); + bool InitView(void *caller) override; + + private: + UIImageView *imageline{nullptr}; + UIImageView *imagemeage{nullptr}; + UILabelExt *labeltitle{nullptr}; + UILabelExt *labelmeage{nullptr}; + + void ClearAll(void); + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h index d87b9179f..ea3aba438 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h @@ -1,4 +1,15 @@ - +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 17:38:19 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h + */ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 10:54:53 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h + */ #ifndef Message_VIEW_H #define Message_VIEW_H @@ -47,6 +58,9 @@ namespace OHOS void DeInitView(void); void PreLoad(void); + bool InitPage(); + bool SetupViewPage(MessageView *messageView); + private: UIScrollView *container_ = nullptr; @@ -66,6 +80,8 @@ namespace OHOS UIView::OnDragListener *draglistener{nullptr}; bool viewInitStatus{false}; + + MessageModel *g_MessageModel; }; } // namespace OHOS #endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp index 69a76e729..ca2b7e543 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp @@ -1,163 +1,144 @@ -/*** - * @Date: 2024-04-15 10:55:58 - * @LastEditors: Caisking 3449750381@qq.com - * @LastEditTime: 2024-04-16 09:37:52 - * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MessageCardView.cpp + * Author: + * Create: 2021-12-21 */ - +#include +#include "common/image_cache_manager.h" +#include "ui_resource_image.h" #include "message/include/MessageCardView.h" -#include "wearable_log.h" - +#include "message/include/MessagePresenter.h" +#include "uicomponents/UIComponents.h" namespace OHOS { - static constexpr char *lineimagePath = "/user/res/message/Line.bin"; - static constexpr char *messageimagePath = "/user/res/message/message.bin"; - + static MessageCardView *g_pMessageCardView = nullptr; + static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6; + static constexpr int16_t More_LIST_POSITION_X = 43; + static constexpr int16_t More_LIST_POSITION_Y = 120; + static constexpr int16_t More_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。 + static constexpr int16 MAX_SCR_DIS = 1000; + static constexpr int16 LIST_POS = 20; + static constexpr int16 SNUM_2 = 2; + static constexpr uint8_t NUM_2 = 2; MessageCardView::MessageCardView() { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageCardView::MessageCardView()"); SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + g_pMessageCardView = this; } MessageCardView::~MessageCardView() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageCardView::~MessageCardView()"); ClearAll(); + g_pMessageCardView = nullptr; } void MessageCardView::ClearAll(void) { - if (viewiInitStatus == true) + RemoveAll(); + if (title != nullptr) { - RemoveAll(); - if (messageview != nullptr) - { - delete messageview; - messageview = nullptr; - delete labeltitle; - labeltitle = nullptr; - delete labelmeage; - labelmeage = nullptr; - delete imageline; - imageline = nullptr; - delete imagemeage; - imagemeage = nullptr; - } + delete title; + title = nullptr; } - } - - bool MessageCardView::InitView(void) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ::InitView()"); - -#if 0 - messageview = new MessageView(); - if (messageview == nullptr) + if (MessageList != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView::new mainweatherView fail!"); - return false; + MessageList->RemoveAll(); + delete MessageList; + MessageList = nullptr; } - if (messageview->InitPage() == false) + if (DeleteButton != nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView->InitPage() == false!"); - return false; + delete DeleteButton; + DeleteButton = nullptr; } - if (messageview->SetupViewPage(messageview) == false) + } + void MessageCardView::AddMessageToList(const MessageListItem &item) + { + p_MessageListAdapter->AddListItem(item); + } + // 初始化页面 + bool MessageCardView::InitPage(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitPage is begin"); + /*初始化label*/ + InitLabelExt(title, 83, 50, 300, 35, "labletitle", STR_MESSAGE_NOTIFICATION, DEFAULT_VECTOR_FONT_FILENAME, 30); + Add(title); + + // UIList 的适配器 + p_MessageListAdapter = new MessageListAdapter(); + // p_MessageListAdapter->SetItemClickListener(presenter_); + if (MessageList == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView->SetupViewPage() == false!"); - return false; + MessageList = new UIList(); } - messageview->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - Add(messageview); - messageview->GetList()->RefreshList(); // 刷新列表 - //messageview->GetList()->SetElastic(true); + MessageList->SetPosition(More_LIST_POSITION_X, More_LIST_POSITION_Y); + MessageList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + MessageList->SetScrollBlankSize(More_SCROLLBLANKSIZE); + MessageList->SetReboundSize(50); + MessageList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position + MessageList->SetDraggable(true); + MessageList->SetThrowDrag(true); + MessageList->EnableAutoAlign(true); + MessageList->SetElastic(true); // 设置回弹效果 + MessageList->SetMaxScrollDistance(MAX_SCR_DIS); + + // SetYScrollBarVisible(true); // 设置滑动滚动条 + MessageList->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); + UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); +#if 0 + /*删除按键*/ + int top = (MessageModel::GetInstance().GetListNum() * 100); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "num is %d", top); + InitButtonExt(DeleteButton, 43, top, 380, 100, DELETEALLDATA, STR_CLOSE, 30); + DeleteButton->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); + messageView->Add(DeleteButton); #endif - // Add ImageView to App - if (imageline == nullptr) - { - imageline = new UIImageView(); - } - imageline->SetPosition(193, 30); // widget's left position and top position - imageline->Resize(100, 100); // widget's width and height - imageline->SetViewId("image1"); // Set style - imageline->SetSrc(lineimagePath); - - // Add to rootView - Add(imageline); - imageline->SetVisible(true); - - // Add Label to App - if (labeltitle == nullptr) - { - labeltitle = new UILabelExt(); - } - labeltitle->SetPosition(83, 50); // widget's left position and top position - labeltitle->Resize(300, 35); // widget's width and height - labeltitle->SetViewId("label1"); // Set style - labeltitle->SetStyle(STYLE_TEXT_FONT, 30); - - // Set additional property - labeltitle->SetText("通知"); - labeltitle->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); - labeltitle->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - labeltitle->SetRollSpeed(0); - labeltitle->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - - // Add to rootView - Add(labeltitle); - labeltitle->SetVisible(true); - - // Add Label to App - if (labelmeage == nullptr) - { - labelmeage = new UILabelExt(); - } - labelmeage->SetPosition(53, 276); // widget's left position and top position - labelmeage->Resize(360, 35); // widget's width and height - labelmeage->SetViewId("label2"); // Set style - labelmeage->SetStyle(STYLE_TEXT_FONT, 30); - - // Set additional property - labelmeage->SetText("暂无内容"); - labelmeage->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); - labelmeage->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff)); - labelmeage->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - labelmeage->SetRollSpeed(0); - labelmeage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - - // Add to rootView - Add(labelmeage); - labelmeage->SetVisible(true); + Add(MessageList); + MessageList->SetAdapter(p_MessageListAdapter); + MessageList->RefreshList(); + + SetDraggable(false); + SetTouchable(false); + initViewStatus = true; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitPage is end"); + return true; + } - // Add ImageView to App - if (imagemeage == nullptr) + // 初始化视图为可拖拽,可触摸 + bool MessageCardView::InitView(void *caller) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageCardView InitView %p", caller); + if (InitPage() == false) { - imagemeage = new UIImageView(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitPage fail"); + return false; } - imagemeage->SetPosition(183, 156); // widget's left position and top position - imagemeage->Resize(100, 100); // widget's width and height - imagemeage->SetViewId("image2"); // Set style - imagemeage->SetSrc(messageimagePath); - - // Add to rootView - Add(imagemeage); - imagemeage->SetVisible(true); - + SetDraggable(true); + SetTouchable(true); return true; } - void MessageCardView::PreLoad(void) + bool MessageCardView::GetInitViewState(void) { - if (!viewiInitStatus) - { - InitView(); - viewiInitStatus = true; - } + return initViewStatus; } - void MessageCardView::UnLoad(void) + MessageCardView *MessageCardView::GetInstance(void) + { + return g_pMessageCardView; + } + void MessageCardView::SetUpView(MessageCardView *messageCardView) { + /* 加载list */ + p_MessageModel->InitMessageListItems(); + const MessageListItem *itemInfo = p_MessageModel->GetMessageListItems(); + for (int i = 0; i < p_MessageModel->GetMessageCount(); i++) + { + messageCardView->AddMessageToList(itemInfo[i]); + } } -} \ No newline at end of file +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp new file mode 100644 index 000000000..67c77ae55 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp @@ -0,0 +1,114 @@ +/* + * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. + * Description: MessageControlView.cpp + * Author: + * Create: 2022-04-02 + */ +#include "message/include/MessageControlView.h" +#include "message/include/MessageModel.h" +#include "wearable_log.h" + +namespace OHOS +{ + MessageControlView::MessageControlView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageControlView::MessageControlView()"); + SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + } + + MessageControlView::~MessageControlView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageControlView::~MessageControlView()"); + if (viewiInitStatus) + { + ClearAll(); + } + } + void MessageControlView::ClearAll(void) + { + RemoveAll(); + if (messageLackView != nullptr) + { + delete messageLackView; + messageLackView = nullptr; + } + if (messageCardView != nullptr) + { + delete messageCardView; + messageCardView = nullptr; + } + } + + bool MessageControlView::InitView(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageControlView InitView"); + messageLackView = new MessageLackView(); + if (messageLackView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageLackView::new messageLackView fail"); + return false; + } + if (messageLackView->CreateUIViewGroup() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateUIViewGroup fail"); + return false; + } + + messageCardView = new MessageCardView(); + if (messageCardView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageCardView::new messageCardView fail"); + return false; + } + if (messageCardView->InitPage() == false) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitPage fail"); + return false; + } + Add(messageCardView); + Add(messageLackView); + uint8_t status = MessageModel::GetInstance().HasDataJson(); + if (status == 0) + { + messageCardView->SetVisible(false); + messageLackView->SetVisible(true); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageLackView true"); + } + else + { + messageCardView->SetVisible(true); + //messageCardView->SetUpView(messageCardView); + messageLackView->SetVisible(false); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageCardView true"); + } + return true; + } + + void MessageControlView::SetLackView(bool flag) + { + if (flag) + { + messageLackView->SetVisible(true); + messageCardView->SetVisible(false); + } + else + { + messageLackView->SetVisible(false); + messageCardView->SetVisible(true); + } + } + + void MessageControlView::PreLoad(void) + { + if (!viewiInitStatus) + { + InitView(); + viewiInitStatus = true; + } + } + + void MessageControlView::UnLoad(void) + { + // Message's usage scenes is complicated, so we do not release it's resources inner slice. + } +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp new file mode 100644 index 000000000..28ceabc3f --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp @@ -0,0 +1,103 @@ +/*** + * @Date: 2024-06-19 17:04:20 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-06-19 18:04:58 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp + */ +/* + * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved. + * Description: MessageLackView.cpp + * Author: + * Create: 2022-04-02 + */ +#include "UiConfig.h" +#include "wearable_log.h" +#include "message/include/MessageLackView.h" +#include "message/include/MessageModel.h" +#include "uicomponents/UIComponents.h" +namespace OHOS +{ + static constexpr char *lineimagePath = "/user/res/message/Line.bin"; + static constexpr char *messageimagePath = "/user/res/message/message.bin"; + static MessageLackView *g_pMainView = nullptr; + MessageLackView::MessageLackView() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageLackView::MessageLackView"); + SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + g_pMainView = this; + } + + MessageLackView::~MessageLackView() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageLackView::~MessageLackView"); + ClearAll(); + g_pMainView = nullptr; + } + + void MessageLackView::ClearAll(void) + { + RemoveAll(); + if (imageline != nullptr) + { + delete imageline; + imageline = nullptr; + } + if (imagemeage != nullptr) + { + delete imagemeage; + imagemeage = nullptr; + } + if (labeltitle != nullptr) + { + delete labeltitle; + labeltitle = nullptr; + } + if (labelmeage != nullptr) + { + delete labelmeage; + labelmeage = nullptr; + } + } + + MessageLackView *MessageLackView::GetInstance(void) + { + return g_pMainView; + } + + bool MessageLackView::CreateUIViewGroup(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageLackView::CreateUIViewGroup"); + + /*初始化label*/ + InitLabelExt(labeltitle, 83, 50, 300, 35, "labletitle", STR_MESSAGE, DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabelExt(labelmeage, 53, 276, 360, 40, "labelMessage", STR_MESSAGENO, DEFAULT_VECTOR_FONT_FILENAME, 30); + labelmeage->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff)); + /*初始化image*/ + InitImageView(imageline, 193, 30, 365, 35, "image", lineimagePath); + InitImageView(imagemeage, 183, 156, 100, 100, "image", messageimagePath); + + Add(imageline); + Add(imagemeage); + Add(labeltitle); + Add(labelmeage); + + SetDraggable(false); + SetTouchable(false); + initViewStatus = true; + return true; + } + + bool MessageLackView::InitView(void *caller) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MessageLackView InitView %p", caller); + bool ret = CreateUIViewGroup(); + if (ret == false) + { + return false; + } + SetDraggable(true); + SetTouchable(true); + return true; + } + +} 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 940eb030d..4fcdaf32e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp @@ -54,7 +54,7 @@ namespace OHOS { // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitMessageListItem"); - p_MessageModel->InitMessageListItem(); + p_MessageModel->InitMessageListItems(); Presenter::OnStart(); } @@ -69,10 +69,10 @@ namespace OHOS { return; } - if (p_MessageModel->GetJsonStatus()) + if (p_MessageModel->GetPopupViewState()) { - const MessageListItem *itemInfo = p_MessageModel->GetMessagelistItems(); - for (int i = 0; i < p_MessageModel->GetMessageListNum(); i++) + const MessageListItem *itemInfo = p_MessageModel->GetMessageListItems(); + for (int i = 0; i < p_MessageModel->GetMessageCount(); i++) { view_->AddMessageToList(itemInfo[i]); } @@ -104,7 +104,7 @@ namespace OHOS bool MessagePresenter::OnClick(UIView &view, const ClickEvent &event) { UNUSED(event); - if (MessageModel::GetInstance().GetPopupView()) + if (MessageModel::GetInstance().GetPopupViewState()) { if (strcmp(view.GetViewId(), DELETEALLDATA) == 0) { @@ -116,7 +116,7 @@ namespace OHOS int index = p_MessageItemView->GetMessageListIndex(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the index is %d", index); // 读取json数据 - std::vector messageDataVector = MessageModel::GetInstance().LoadMessageJson(); + std::vector messageDataVector = MessageModel::GetInstance().LoadMessageData(); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the index is %d", index); if (!messageDataVector.empty()) { @@ -125,7 +125,7 @@ namespace OHOS int arraynum = messageDataVector.size() - 1; MessageData messageData = messageDataVector[arraynum - index]; // 显示是倒序 id同理 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the index is %d", index); - MessageModel::GetInstance().SetMessageData(&messageData); + MessageModel::GetInstance().SetCurrentMessageData(&messageData); NativeAbility::GetInstance().ChangeSlice(VIEW_MESSAGE_SHOW); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the index is %d", index); return true; diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp index 78beb4f51..261cad327 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp @@ -191,15 +191,15 @@ namespace OHOS void MessageShowView::UpdateMessage() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateMessage"); - MessageData *data = MessageModel::GetInstance().GetMessageData(); + MessageData *data = MessageModel::GetInstance().GetCurrentMessageData(); if (data == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateMessage is error"); return; } - titleStr = data->labeltitle; - timeStr = data->labeltime; - messageStr = data->labeldetails; + titleStr = data->labelTitle; + timeStr = data->labelTime; + messageStr = data->labelDetails; } void MessageShowView::PreLoad(void) { 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 c4fc68687..824a5979e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp @@ -18,12 +18,13 @@ namespace OHOS static constexpr int16 MAX_SCR_DIS = 1000; static constexpr int16 LIST_POS = 20; static constexpr int16 SNUM_2 = 2; - static constexpr uint8_t NUM_2 = 2; + static MessageView *g_pMessageView{nullptr}; MessageView::MessageView() { + // SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); g_pMessageView = this; } @@ -49,7 +50,7 @@ namespace OHOS container_->SetStyle(STYLE_BACKGROUND_OPA, 0); } // 展示界面 - if (MessageModel::GetInstance().GetJsonStatus()) + if (MessageModel::GetInstance().GetJsonLoadStatus()) { printf("存在数据!\r\n"); SetPopupViewStatus(PopupMessage::MessagePopup, true); @@ -238,12 +239,12 @@ namespace OHOS UIView *popupView = nullptr; if (view == PopupMessage::LackPopup) { - MessageModel::GetInstance().SetPopupView(false); // 设置状态为无记录 + MessageModel::GetInstance().SetPopupViewState(false); // 设置状态为无记录 popupView = lackView; } else if (view == PopupMessage::MessagePopup) { - MessageModel::GetInstance().SetPopupView(true); // 设置状态为有记录 + MessageModel::GetInstance().SetPopupViewState(true); // 设置状态为有记录 popupView = messageView; } if (popupView == nullptr) @@ -298,7 +299,7 @@ namespace OHOS void MessageView::OnSetUpView() { View::OnSetUpView(); - if (MessageModel::GetInstance().GetJsonStatus()) + if (MessageModel::GetInstance().GetJsonLoadStatus()) { messageView->Add(MessageList); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageList is add"); @@ -324,37 +325,11 @@ namespace OHOS RootView::GetInstance()->RemoveAll(); return; } -#if 0 - /* -------------------------------------------------------------------------- */ + + /* -------------------------------------------------------------------------- */ // 初始化页面 bool MessageView::InitPage() { - // UIList 的适配器 - p_MessageListAdapter = new MessageListAdapter(); - p_MessageListAdapter->SetItemClickListener(presenter_); - if (MessageList == nullptr) - { - MessageList = new UIList(); - } - MessageList->SetPosition(0, 0); - MessageList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); - MessageList->SetDraggable(true); - MessageList->SetThrowDrag(true); - MessageList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - // MessageList->SetOpaScale(100); - - MessageList->SetScrollBlankSize(200); - MessageList->SetReboundSize(50); - MessageList->SetSelectPosition(HORIZONTAL_RESOLUTION / 2); // middle position - MessageList->SetDirection(1); - // MessageList->SetElastic(true); - UIView::OnClickListener *list1Click = static_cast(MessagePresenter::GetInstance()); - MessageList->SetOnClickListener(list1Click); - UIView::OnDragListener *list1Drag = static_cast(MessagePresenter::GetInstance()); - MessageList->SetOnDragListener(list1Drag); - Add(MessageList); - MessageList->SetAdapter(p_MessageListAdapter); - MessageList->SetVisible(true); return true; } @@ -362,14 +337,16 @@ namespace OHOS bool MessageView::SetupViewPage(MessageView *messageView) { g_MessageModel = &MessageModel::GetInstance(); - g_MessageModel->InitMessageListItem(); - const MessageListItem *itemInfo = g_MessageModel->GetMessagelistItems(); - for (int i = 0; i < g_MessageModel->GetMessageListNum(); i++) + g_MessageModel->InitMessageListItems(); + if (g_MessageModel->GetJsonLoadStatus()) { - messageView->AddMessageToList(itemInfo[i]); - // printf("Index: %d, Icon: %s, Label: %s, Label Button: , Has Second Menu: \n", itemInfo[i].index, itemInfo[i].icon, itemInfo[i].label); + const MessageListItem *itemInfo = g_MessageModel->GetMessageListItems(); + for (int i = 0; i < g_MessageModel->GetMessageCount(); i++) + { + messageView->AddMessageToList(itemInfo[i]); + } } return true; } -#endif + } \ No newline at end of file -- 2.17.1