优化message部分显示逻辑 348/2 348/head
authorCaisking <3449750381@qq.com>
Fri, 21 Jun 2024 12:46:03 +0000 (20:46 +0800)
committerCaisking <3449750381@qq.com>
Fri, 21 Jun 2024 12:46:03 +0000 (20:46 +0800)
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp

index 0f7f6d4..9ecef03 100644 (file)
@@ -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;
index 3150eff..4199190 100644 (file)
@@ -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;
     }
index 7a8e383..210259d 100644 (file)
@@ -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<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
-        UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(MessagePresenter::GetInstance());
-        if (Messagedraglistener == nullptr)
-        {
-            return;
-        }
 #if 0
         /*删除按键*/
         int top = (MessageModel::GetInstance().GetListNum() * 100);
@@ -221,6 +212,11 @@ namespace OHOS
         DeleteButton->SetOnClickListener(static_cast<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
         messageView->Add(DeleteButton);
 #endif
+        UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(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<UIView::OnDragListener *>(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