保留缓存
authorCaisking <3449750381@qq.com>
Tue, 10 Sep 2024 03:57:48 +0000 (11:57 +0800)
committerCaisking <3449750381@qq.com>
Tue, 10 Sep 2024 03:57:48 +0000 (11:57 +0800)
code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownModel.cpp
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckAdapter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckItemView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckView.h
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckAdapter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckItemView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingEnddataView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TrainingDetailView.cpp

index 5ac2f8f..daef831 100644 (file)
@@ -1,22 +1,8 @@
-/***
- * @Date: 2024-06-28 19:21:39
+/*** 
+ * @Date: 2024-08-12 15:34:39
  * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-09 11:44:39
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-13 16:31:15
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-01-29 19:58:37
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-05-08 09:49:17
+ * @LastEditTime: 2024-09-10 10:54:51
  * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 
 #ifndef Message_ADAPTER_H
diff --git a/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckAdapter.h
new file mode 100644 (file)
index 0000000..e848304
--- /dev/null
@@ -0,0 +1,54 @@
+/*** 
+ * @Date: 2024-09-10 09:52:01
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-09-10 10:01:22
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckAdapter.h
+ */
+/
+#ifndef Message_ADAPTER_H
+#define Message_ADAPTER_H
+#include <list>
+#include <string>
+#include "components/ui_list.h"
+#include "components/abstract_adapter.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_checkbox.h"
+#include "components/ui_label_button_ext.h"
+
+namespace OHOS
+{
+
+    typedef struct
+    {
+        int index;
+        std::string filename; 
+    } ResourceCheckItem;
+
+    class ResourceCheckAdapter : public AbstractAdapter
+    {
+    public:
+        explicit ResourceCheckAdapter();
+        virtual ~ResourceCheckAdapter();
+
+        void SetData(std::list<ResourceCheckItem> &data);
+
+        virtual uint16_t GetCount(void) override;
+
+        virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+        virtual void AddListItem(const ResourceCheckItem &item);
+
+        void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+        {
+            itemClickListener = itemclicklistener;
+        }
+
+    private:
+        std::list<ResourceCheckItem> listData;
+        UIView::OnClickListener *itemClickListener{nullptr};
+        UILabelButtonExt *DeleteButton{nullptr};
+    };
+}
+
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckItemView.h b/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckItemView.h
new file mode 100644 (file)
index 0000000..f1a164b
--- /dev/null
@@ -0,0 +1,42 @@
+/*** 
+ * @Date: 2024-09-10 09:53:16
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-09-10 10:31:06
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckItemView.cpp
+ */
+
+
+#ifndef ResourceCheck_ITEM_VIEW_H
+#define ResourceCheck_ITEM_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
+#include "components/ui_checkbox.h"
+#include "components/ui_image_view.h"
+#include "components/ui_label_button.h"
+
+#include "safemodemanager/include/ResourceCheckAdapter.h"
+
+
+namespace OHOS
+{
+    class ResourceCheckItemView : public UIViewGroup
+    {
+    public:
+        explicit ResourceCheckItemView();
+        virtual ~ResourceCheckItemView();
+        virtual void SetItemInfo(const ResourceCheckItem itemInfo);
+        virtual void SetUpChild();
+        void TearDownChild();
+        int GetResourceCheckListIndex();
+
+    private:
+        ResourceCheckItemView(const ResourceCheckItemView &);
+        UILabel filenamelabel;            
+        ResourceCheckItem sItemInfo = {0, nullptr};
+        bool isSetupChild{false};
+
+    };
+}
+#endif
\ No newline at end of file
index dddc9ef..f96f4c9 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-09-09 17:47:27
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-09-10 11:14:17
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/ResourceCheckView.h
+ */
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-01-29 15:37:44
 #include "components/ui_button.h"
 #include "components/ui_scroll_view.h"
 #include "components/ui_label_ext.h"
+#include "safemodemanager/include/ResourceCheckItem.h"
+#include "safemodemanager/include/ResourceCheckAdapter.h"
 namespace OHOS
 {
     class ResourceCheckView
     {
-
     public:
         ResourceCheckView();
         virtual ~ResourceCheckView();
@@ -34,6 +41,8 @@ namespace OHOS
     private:
         UIScrollView *scrollView{nullptr};
         UILabelExt *notelabel{nullptr};
+             ResourceCheckAdapter *p_ResourceCheckAdapter{nullptr};
+        UIList *FilenameList = nullptr;
         bool initViewStatus{false};
     };
 } // namespace OHOS
diff --git a/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckAdapter.cpp
new file mode 100644 (file)
index 0000000..bd62a9a
--- /dev/null
@@ -0,0 +1,130 @@
+
+
+#include "safemodemanager/include/ResourceCheckView.h"
+#include "safemodemanager/include/SafeModeManagerPresenter.h"
+#include "safemodemanager/include/SafeModeManagerModel.h"
+#include "safemodemanager/include/ResourceCheckItem.h"
+
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+namespace OHOS
+{
+    ResourceCheckAdapter::ResourceCheckAdapter() {}
+
+    ResourceCheckAdapter::~ResourceCheckAdapter()
+    {
+        listData.clear();
+    }
+
+    uint16_t ResourceCheckAdapter::GetCount(void)
+    {
+        return listData.size() + 1;
+    }
+
+    void ResourceCheckAdapter::SetData(std::list<ResourceCheckItem> &data)
+    {
+        if (!listData.empty())
+        {
+            listData.clear();
+        }
+        std::list<ResourceCheckItem>::iterator it;
+        for (it = data.begin(); it != data.end(); it++)
+        {
+            listData.push_back(*it);
+        }
+    }
+
+    /// @brief
+    /// @param inView 一个指向已存在的视图对象的指
+    /// @param index 要创建的视图在列表中的索引l。
+    /// @return 返回该视图对象
+    UIView *ResourceCheckAdapter::GetView(UIView *inView, int16_t index)
+    {
+        // 1.先检查列表数据是否为空,若为空则返回空指针
+        if (listData.empty())
+        {
+            return nullptr;
+        }
+        // 2.接着检查索引是否小于0,若小于0则返回空指针
+        if (index < 0)
+        {
+            return nullptr;
+        }
+        // printf("GetView : index %d\r\n", index);
+        // 3.检查是否超出列表数据大小,若超出则返回空指针
+        size_t uindex = index;
+        if (uindex > listData.size())
+            return nullptr;
+
+        MessageItemView *item = nullptr;
+        if (uindex == listData.size())
+        {
+            if (inView == nullptr)
+            {
+                item = new MessageItemView();
+            }
+            else
+            {
+                item = static_cast<MessageItemView *>(inView);
+                // item->TearDownChild();
+                item->RemoveAll();
+            }
+            if (DeleteButton == nullptr)
+            {
+                DeleteButton = new UILabelButtonExt();
+                if (DeleteButton == nullptr)
+                {
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButtonExt is error");
+                    return nullptr; // 内存分配失败,返回false
+                }
+            }
+            else
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UILabelButtonExt UILabelButtonExt is not nullptr");
+                return nullptr; // 内存分配失败,返回false
+            }
+            DeleteButton->SetPosition(0, 0);
+            DeleteButton->Resize(380, 100);
+            DeleteButton->SetViewId("repair_all");
+            DeleteButton->SetText("repair all");
+            DeleteButton->SetStyle(STYLE_TEXT_FONT, fontSize);
+            DeleteButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            DeleteButton->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BACKGROUND_COLOR);
+            DeleteButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BACKGROUND_COLOR, UIButton::PRESSED);
+            DeleteButton->SetStyleForState(STYLE_BORDER_COLOR, PRESSED_BORDER_COLOR, UIButton::PRESSED);
+            DeleteButton->SetVisible(true);
+            DeleteButton->SetOnClickListener(itemClickListener);
+            item->Add(DeleteButton);
+            item->SetViewIndex(index);
+            item->SetOnClickListener(nullptr);
+            return item;
+        }
+        // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+        std::list<ResourceCheckItem>::iterator it = listData.begin();
+        for (int i = 0; i < index; i++)
+        {
+            it++;
+        }
+        ResourceCheckItem itemData = *it;
+        // 5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的MessageItemView对象,否则将inView转换成MessageItemView类型的指针
+        if (inView == nullptr)
+        {
+            item = new MessageItemView();
+        }
+        else
+        {
+            item = static_cast<MessageItemView *>(inView);
+            item->RemoveAll();
+        }
+        item->SetUpChild();
+        item->SetItemInfo(itemData);
+        item->SetViewIndex(index);
+        item->SetOnClickListener(itemClickListener);
+        return item;
+    }
+
+    void ResourceCheckAdapter::AddListItem(const ResourceCheckItem &item)
+    {
+        listData.push_back(item);
+    }
+} // namespace OHOS
diff --git a/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/safemodemanager/src/ResourceCheckItemView.cpp
new file mode 100644 (file)
index 0000000..6033ee2
--- /dev/null
@@ -0,0 +1,56 @@
+#include "message/include/MessageItemView.h"
+#include "message/include/MessageModel.h"
+#include "ConfigModel.h"
+namespace OHOS
+{
+
+    MessageItemView::MessageItemView()
+    {
+        SetPosition(0, 0, 380, 280);
+        SetStyle(STYLE_BACKGROUND_OPA, 255);
+        SetStyle(STYLE_BORDER_RADIUS, 20);
+        SetTouchable(true);
+    }
+
+    MessageItemView::~MessageItemView()
+    {
+        RemoveAll();
+    }
+
+    void MessageItemView::SetItemInfo(const ResourceCheckItem itemInfo)
+    {
+        sItemInfo = itemInfo;
+
+    filenamelabel.SetText(itemInfo.filename.c_str());
+    
+    }
+    void MessageItemView::TearDownChild()
+    {
+        if (!isSetupChild)
+            return;
+
+        Remove(&filenamelabel);
+
+        isSetupChild = false;
+    }
+    void MessageItemView::SetUpChild()
+    {
+        if (isSetupChild)
+            return;
+
+        filenamelabel.SetPosition(60, 31, 280, 35);
+        filenamelabel.SetTextColor(Color::White());
+        filenamelabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+        // 来回滚动属性
+        filenamelabel.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+        filenamelabel.SetRollSpeed(70);
+
+        Add(&filenamelabel);
+        isSetupChild = false;
+    }
+
+    int MessageItemView::GetMessageListIndex()
+    {
+        return sItemInfo.index;
+    }
+}
\ No newline at end of file
index e3c1947..b8c1aca 100644 (file)
@@ -72,13 +72,35 @@ namespace OHOS
         notelabel->SetPosition(83, 217);
         notelabel->Resize(300, 60);
         notelabel->SetViewId("label4");
-        notelabel->SetStyle(STYLE_TEXT_FONT, 30);
+        notelabel->SetStyle(STYLE_TEXT_FONT, 50);
 
         notelabel->SetText("File verification...");
         notelabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
         notelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
         notelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+notelabel->SetOnClickListener(presenter_);
+        // UIList 的适配器
+        if(p_ResourceCheckAdapter == nullptr)
+        {
+            p_ResourceCheckAdapter = newFilenameListAdapter();
+            p_ResourceCheckAdapter->SetItemClickListener(presenter_);
+        }
+        if (MessageList == nullptr)
+        {
+            FilenameList = new UIList();
+            FilenameList->SetPosition(0, 120, 466, 466);
+            FilenameList->SetScrollStateListener(this);
+            FilenameList->SetThrowDrag(true);
+            FilenameList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
+            FilenameList->SetMaxScrollDistance(1000); 
+            FilenameList->SetSwipeACCLevel(800);
+            FilenameList->SetDragACCLevel(5); 
+            FilenameList->SetYScrollBarVisible(true);
+            FilenameList->SetOnClickListener(presenter_);
+            FilenameList->SetOnDragListener(presenter_);
+            FilenameList->SetVisible(false); // 隐藏界面
+        }
+        scrollView->Add(FilenameList);
         scrollView->Add(notelabel);
         return scrollView;
     }
@@ -124,16 +146,8 @@ namespace OHOS
             std::vector<std::string> filenames = SafeModeManagerModel::GetInstance()->GetCheckDifferentialFiles();
             // Clear the text of notelabel
             std::string allFilenames;
-#if 0
-            for (const auto &filename : filenames)
-            {
-                allFilenames += filename + "\n"; // Add filenames line by line
-            }
-            printf("allFilenames %s\r\n", allFilenames.c_str());
-            notelabel->SetText(allFilenames.c_str()); // Set the text at once
-#endif
             int num = SafeModeManagerModel::GetInstance()->GetCheckFileCount();
-            allFilenames = "This verification result is successful. Number of verified files: " + std::to_string(num);
+            allFilenames = "This verification result is successful. Number of verified files: " + std::to_string(num)+"Please click the screen to view the data";
             notelabel->SetText(allFilenames.c_str()); // Set the text at once
             printf("Number of verified files is %d\r\n", num);
         }
@@ -144,5 +158,33 @@ namespace OHOS
         }
         printf("Verification result is completed.\r\n");
     }
-
+    void SetViewState()
+    {
+            int num =   SafeModeManagerModel::GetInstance()->GetCheckFileCount();
+            if(num!=0)
+            {
+            notelabel->SetVisible(false); // 隐藏界面
+            FilenameList->SetVisible(true); 
+                   FilenameList->SetAdapter(p_MessageListAdapter);
+            /*进行list加载*/
+              p_MessageModel = &MessageModel::GetInstance();
+        if (p_MessageModel == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_MessageModel fail");
+            return;
+        }
+        /* 加载list */
+        p_MessageModel->InitMessageListItems();
+        const MessageListItem *itemInfo = p_MessageModel->GetMessageListItems();
+        for (int i = 0; i < p_MessageModel->GetMessageCount(); i++)
+        {
+            messageCardView->AddMessageToList(itemInfo[i]);
+        }
+            }
+            else
+            {
+            FilenameList->SetVisible(false); // 隐藏界面
+            notelabel->SetVisible(true); /
+            }
+    }
 }
index a93d4a1..ded48ee 100644 (file)
@@ -144,13 +144,18 @@ namespace OHOS
     {
 
         scrollView_ = new UIScrollView();
-        scrollView_->SetPosition(0, 0);
-        scrollView_->Resize(466, 466);
-        scrollView_->SetViewId("scrollView");
-        scrollView_->SetReboundSize(100);
-        scrollView_->SetScrollBlankSize(35);
+
+        scrollView_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        scrollView_->SetScrollBlankSize(50);
+        // scrollView_->SetReboundSize(35);
         scrollView_->SetHorizontalScrollState(false);
-        scrollView_->SetVisible(true);
+        scrollView_->RequestFocus();
+        scrollView_->SetRotateFactor(1.0);
+        scrollView_->SetMaxScrollDistance(1000);
+        scrollView_->SetDragACCLevel(5);
+        scrollView_->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+        scrollView_->SetTouchable(true);
+        scrollView_->SetDraggable(true);
 
         /*初始化线条*/
         InitializeImageViews();
index c2b51d4..860980b 100644 (file)
@@ -246,6 +246,7 @@ namespace OHOS
         DetailView = new TrainingDetailView();\r
         DetailView->PreLoad();\r
         DetailView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        DetailView->SetStyle(STYLE_BORDER_RADIUS, 466); // 设置为圆形\r
         if (DetailView == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DetailView new fail");\r
index e045bf1..e1471bf 100644 (file)
@@ -20,7 +20,9 @@ namespace OHOS
 
     TrainingDetailView::TrainingDetailView()
     {
-        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+        SetPosition(0, 0, 466, 466);
+        SetStyle(STYLE_BACKGROUND_OPA, 0);
+        SetStyle(STYLE_BORDER_RADIUS, 466);
         g_pTrainingDetailView = this;
     }
     TrainingDetailView::~TrainingDetailView()
@@ -52,7 +54,7 @@ namespace OHOS
         lineimage2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff333333);
         lineimage2_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
         lineimage2_->SetVisible(true);
-        
+
         Add(progress_image);
         Add(lineimage2_);