From: Caisking <3449750381@qq.com> Date: Sat, 5 Oct 2024 08:21:01 +0000 (+0800) Subject: 消息:修复消息Slice的析构 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=bd1e585ce9b8afb4501c6bbd8413a282351c8f4c;p=mirrors%2FFD230.git 消息:修复消息Slice的析构 --- 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 bbb2b4fd9..f53fb2d90 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp @@ -28,20 +28,9 @@ static constexpr uint8_t NUM_2 = 2; static MessageView *g_pMessageView{nullptr}; -MessageView::MessageView() { - // SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); - g_pMessageView = this; -} - -MessageView::~MessageView() { - if (viewInitStatus == true) { - DeInitView(); - } - // UIViewGroup *tmpGroup = dynamic_cast(container_); - // UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup); +MessageView::MessageView() { g_pMessageView = this; } - g_pMessageView = nullptr; -} +MessageView::~MessageView() { g_pMessageView = nullptr; } MessageView *MessageView::GetInstance() { return g_pMessageView; } void MessageView::InitView() { @@ -55,60 +44,50 @@ void MessageView::InitView() { } } void MessageView::DeInitView() { - // 移除视图中的所有子项 - if (lackView) { - lackView->RemoveAll(); - } - - if (messageView) { - messageView->RemoveAll(); - } - - if (p_MessageListAdapter) { - delete p_MessageListAdapter; - p_MessageListAdapter = nullptr; - } - - if (MessageList) { - MessageList->RemoveAll(); - delete MessageList; - MessageList = nullptr; - } - - // 删除所有标签和图像指针,确保指针非空 - if (labeltitle) { - delete labeltitle; - labeltitle = nullptr; - } - - if (labelmeage) { - delete labelmeage; - labelmeage = nullptr; - } - - if (imageline) { - delete imageline; - imageline = nullptr; - } - - if (imageline2) { - delete imageline2; - imageline2 = nullptr; - } - - if (imagemeage) { - delete imagemeage; - imagemeage = nullptr; - } - - if (lackView) { - delete lackView; - lackView = nullptr; - } - - if (messageView) { - delete messageView; - messageView = nullptr; + if (viewInitStatus) { + if (container_) { + container_->RemoveAll(); + if (lackView) { + lackView->RemoveAll(); + if (labeltitle) { + delete labeltitle; + labeltitle = nullptr; + } + if (labelmeage) { + delete labelmeage; + labelmeage = nullptr; + } + if (imageline) { + delete imageline; + imageline = nullptr; + } + if (imagemeage) { + delete imagemeage; + imagemeage = nullptr; + } + delete lackView; + lackView = nullptr; + } + if (messageView) { + messageView->RemoveAll(); + if (p_MessageListAdapter) { + delete p_MessageListAdapter; + p_MessageListAdapter = nullptr; + } + if (MessageList) { + delete MessageList; + MessageList = nullptr; + } + if (imageline2) { + delete imageline2; + imageline2 = nullptr; + } + delete messageView; + messageView = nullptr; + } + } + delete container_; + container_ = nullptr; } } @@ -122,15 +101,19 @@ void MessageView::PreLoad(void) { /*无数据界面*/ void MessageView::ShowLackView() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView start"); - lackView = new UIScrollView(); if (lackView == nullptr) { - return; + lackView = new UIScrollView(); + if (lackView == nullptr) { + return; + } } lackView->SetPosition(0, 0); lackView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); lackView->SetScrollBlankSize(20); lackView->SetReboundSize(50); lackView->SetDirection(1); + lackView->SetViewId("lackView"); + /*初始化label*/ InitLabelExt(labeltitle, 83, 50, 300, 35, "labletitle", STR_MESSAGE_NOTIFICATION, DEFAULT_VECTOR_FONT_FILENAME, 30); @@ -159,15 +142,18 @@ void MessageView::ShowLackView() { /*数据界面*/ void MessageView::ShowMessageView() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowmessageView start"); - messageView = new UIScrollView(); if (messageView == nullptr) { - return; + messageView = new UIScrollView(); + if (messageView == nullptr) { + return; + } } messageView->SetPosition(0, 0); messageView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); messageView->SetHorizontalScrollState(false); // 设置横向不可以滚动 messageView->SetDirection(0); messageView->SetVerticalScrollState(false); // 禁止垂直滑动 + messageView->SetViewId("messageView"); InitImageView(imageline2, 193, 30, 80, 8, "image", lineimagePath); messageView->Add(imageline2); @@ -181,8 +167,6 @@ void MessageView::ShowMessageView() { if (MessageList == nullptr) { MessageList = new UIList(); } - // MessageList->SetPosition(More_LIST_POSITION_X, More_LIST_POSITION_Y, 466, - // 466); MessageList->SetPosition(43, 95, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); MessageList->SetScrollStateListener(this); MessageList->SetThrowDrag(true); @@ -195,6 +179,15 @@ void MessageView::ShowMessageView() { MessageList->SetOnClickListener(presenter_); messageView->SetOnDragListener(presenter_); + messageView->Add(MessageList); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageList is add"); + + container_->Add(messageView); + + if (p_MessageListAdapter) { + MessageList->SetAdapter(p_MessageListAdapter); + } + messageView->SetVisible(false); // 隐藏界面 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowmessageView end"); } @@ -219,19 +212,15 @@ void MessageView::OnStart() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartResultView::OnStart"); View::OnStart(); - // SetContainerView(new UIScrollView()); - container_ = new UIScrollView(); + SetContainerView(new UIViewGroup()); container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - container_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); - container_->SetOnDragListener(presenter_); - container_->SetTouchable(true); - container_->SetDraggable(true); - // container_->SetFullScreenBlur(true); // 设置高斯模糊 + BaseView::RootView(Color::Black().full); + ShowMessageView(); ShowLackView(); - PreLoad(); + SetContainerView(container_); RootView::GetInstance()->SetOnKeyActListener(presenter_); @@ -244,14 +233,6 @@ UIList *MessageView::GetList() { return MessageList; } /// @brief 创建页面的视图 void MessageView::OnSetUpView() { View::OnSetUpView(); - if (MessageModel::GetInstance().HasDataVector()) { - messageView->Add(MessageList); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageList is add"); - container_->Add(messageView); - if (p_MessageListAdapter) { - MessageList->SetAdapter(p_MessageListAdapter); - } - } Draw(); } @@ -264,11 +245,7 @@ void MessageView::OnTearDownView() { /// @brief 页面结束时需要执行的销毁逻辑。 void MessageView::OnStop() { View::OnStop(); - if (container_ != nullptr) { - container_->RemoveAll(); - delete container_; - container_ = nullptr; - } + DeInitView(); RootView::GetInstance()->RemoveAll(); return; }