-/***
- * @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
#include "ui_service.h"
#include "dial_sos_c.h"
-#define SAVEMODE 0
+#define SAVEMODE 1
extern "C" uint8_t uapi_dev_runtime_get_lock_status(void);
namespace OHOS
--- /dev/null
+/***
+ * @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
--- /dev/null
+/***
+ * @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
+/***
+ * @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();
private:
UIScrollView *scrollView{nullptr};
UILabelExt *notelabel{nullptr};
+ ResourceCheckAdapter *p_ResourceCheckAdapter{nullptr};
+ UIList *FilenameList = nullptr;
bool initViewStatus{false};
};
} // namespace OHOS
--- /dev/null
+
+
+#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
--- /dev/null
+#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
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;
}
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);
}
}
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); /
+ }
+ }
}
{
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();
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
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()
lineimage2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff333333);
lineimage2_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
lineimage2_->SetVisible(true);
-
+
Add(progress_image);
Add(lineimage2_);