From 960b2d7f96ef13641ef2b704591818d00ab003e5 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Fri, 21 Jun 2024 20:46:03 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96message=E9=83=A8=E5=88=86?= =?utf8?q?=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/message/src/MessageModel.cpp | 15 ++++-- .../nativeui/message/src/MessagePresenter.cpp | 10 ++-- .../nativeui/message/src/MessageView.cpp | 49 ++++++------------- 3 files changed, 32 insertions(+), 42 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp index 0f7f6d4ee..9ecef0304 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp @@ -32,7 +32,7 @@ namespace OHOS MessageModel::MessageModel() { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageModel"); - jsonDataExists = HasDataJson(); // 更新json状态 + HasDataJson(); // 更新json状态 } MessageModel::~MessageModel() {} @@ -56,6 +56,7 @@ namespace OHOS if (!file.is_open()) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unable to open file"); + jsonDataExists = false; return false; } // 检查文件是否为空 @@ -64,10 +65,13 @@ namespace OHOS { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "File is empty"); file.close(); + jsonDataExists = false; return false; } // 关闭文件 file.close(); + + jsonDataExists = true; return true; } /*加载json函数*/ @@ -186,6 +190,7 @@ namespace OHOS { return Messages; } + bool MessageModel::GetJsonLoadStatus() { return jsonDataExists; @@ -241,9 +246,13 @@ namespace OHOS return false; } - messageVector.erase(messageVector.begin() + currentIndex); + if (messageVector.size() == 1) + { + // 如果是最后一条数据则需要直接删除文件 + return ClearAllData(); + } - // 保存修改后的数据 + messageVector.erase(messageVector.begin() + currentIndex); SaveMessageData(messageVector); 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 3150eff01..4199190e5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp @@ -88,16 +88,18 @@ namespace OHOS bool MessagePresenter::OnDrag(UIView &view, const DragEvent &event) { - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) { NativeAbility::GetInstance().Back(); } - // 向下回到主界面 - if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM) + if (!MessageModel::GetInstance().GetPopupViewState()) { - // NativeAbility::GetInstance().EnterSlice(VIEW_MAIN); + // 向下回到主界面 + if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM) + { + NativeAbility::GetInstance().EnterSlice(VIEW_MAIN); + } } return true; } 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 7a8e38376..210259d3a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp @@ -43,12 +43,8 @@ namespace OHOS } void MessageView::InitView() { - if (container_ == nullptr) - { - container_ = new UIScrollView(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0); - } + // 刷新一下文件状态 + MessageModel::GetInstance().HasDataJson(); // 展示界面 if (MessageModel::GetInstance().GetJsonLoadStatus()) { @@ -208,11 +204,6 @@ namespace OHOS messageView->SetYScrollBarVisible(true); // 设置滑动滚动条 MessageList->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); - UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); - if (Messagedraglistener == nullptr) - { - return; - } #if 0 /*删除按键*/ int top = (MessageModel::GetInstance().GetListNum() * 100); @@ -221,6 +212,11 @@ namespace OHOS DeleteButton->SetOnClickListener(static_cast(MessagePresenter::GetInstance())); messageView->Add(DeleteButton); #endif + UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); + if (Messagedraglistener == nullptr) + { + return; + } messageView->SetOnDragListener(Messagedraglistener); messageView->SetVisible(false); // 隐藏界面 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowmessageView end"); @@ -246,6 +242,13 @@ namespace OHOS return; } popupView->SetVisible(status); + UIView::OnDragListener *Messagedraglistener = static_cast(MessagePresenter::GetInstance()); + if (Messagedraglistener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Messagedraglistener is NULL"); + return; + } + popupView->SetOnDragListener(Messagedraglistener); } /// @brief 页面启动时需要执行的代码逻辑 @@ -292,28 +295,4 @@ namespace OHOS RootView::GetInstance()->RemoveAll(); return; } - - /* -------------------------------------------------------------------------- */ - // 初始化页面 - bool MessageView::InitPage() - { - return true; - } - - // 设置页面视图 - bool MessageView::SetupViewPage(MessageView *messageView) - { - g_MessageModel = &MessageModel::GetInstance(); - g_MessageModel->InitMessageListItems(); - if (g_MessageModel->GetJsonLoadStatus()) - { - const MessageListItem *itemInfo = g_MessageModel->GetMessageListItems(); - for (int i = 0; i < g_MessageModel->GetMessageCount(); i++) - { - messageView->AddMessageToList(itemInfo[i]); - } - } - return true; - } - } \ No newline at end of file -- 2.17.1