增加主界面信息卡片
authorCaisking <3449750381@qq.com>
Wed, 19 Jun 2024 11:06:23 +0000 (19:06 +0800)
committerCaisking <3449750381@qq.com>
Wed, 19 Jun 2024 11:06:23 +0000 (19:06 +0800)
13 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageCardView.h
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageControlView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageLackView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/message/src/MessagePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageShowView.cpp
code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp

index 48ee3ce..5ede29a 100644 (file)
@@ -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
index f6a9dee..353aa2b 100644 (file)
@@ -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};
index 142a3d9..4c0c317 100644 (file)
@@ -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");
index 0e6d066..4833ec0 100644 (file)
@@ -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 (file)
index 0000000..0dab83d
--- /dev/null
@@ -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 (file)
index 0000000..c882fbf
--- /dev/null
@@ -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
index d87b917..ea3aba4 100644 (file)
@@ -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
index 69a76e7..ca2b7e5 100644 (file)
-/***
- * @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 <string>
+#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<UIView::OnClickListener *>(MessagePresenter::GetInstance()));
+        UIView::OnDragListener *Messagedraglistener = static_cast<UIView::OnDragListener *>(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<UIView::OnClickListener *>(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 (file)
index 0000000..67c77ae
--- /dev/null
@@ -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 (file)
index 0000000..28ceabc
--- /dev/null
@@ -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;
+    }
+
+}
index 940eb03..4fcdaf3 100644 (file)
@@ -54,7 +54,7 @@ namespace OHOS
     {
 
         // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitMessageListItem");
-        p_MessageModel->InitMessageListItem();
+        p_MessageModel->InitMessageListItems();
         Presenter<MessageView>::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<MessageData> messageDataVector = MessageModel::GetInstance().LoadMessageJson();
+            std::vector<MessageData> 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;
index 78beb4f..261cad3 100644 (file)
@@ -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)
     {
index c4fc686..824a597 100644 (file)
@@ -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<MessagePresenter>::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<UIView::OnClickListener *>(MessagePresenter::GetInstance());
-        MessageList->SetOnClickListener(list1Click);
-        UIView::OnDragListener *list1Drag = static_cast<UIView::OnDragListener *>(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