#include "BaseView.h"
#include "View.h"
-#include "components/ui_view_group.h"
+#include "components/ui_button.h"
+#include "components/ui_image_view.h"
#include "components/ui_label.h"
#include "components/ui_label_ext.h"
-#include "components/ui_image_view.h"
-#include "components/ui_button.h"
#include "components/ui_scroll_view.h"
#include "components/ui_toggle_button.h"
+#include "components/ui_view_group.h"
#include "SafeModeManagerPresenter.h"
+#include "safemodemanager/include/RepairView.h"
#include "safemodemanager/include/ResourceCheckView.h"
-namespace OHOS
-{
- typedef enum
- {
- VIEW_SAFE_LIST, // 安全模式列表
- VIEW_BLE_OTA, // BLE OTA 更新
- VIEW_AUTO_OTA, // 自动 OTA 更新
- VIEW_FACTORY_RESET, // 恢复出厂设置
- VIEW_RESOURCE_CHECK, // 资源校验
- MAX_VIEW_ID, // 最大视图 ID
- } SafeViewID;
-
- class SafeModeManagerPresenter;
- class ResourceCheckView;
- class SafeModeManagerView : public View<SafeModeManagerPresenter>
- {
- public:
- SafeModeManagerView();
- virtual ~SafeModeManagerView();
- static SafeModeManagerView *GetInstance(void);
-
- void OnStart() override;
- void OnSetUpView() override;
- void OnTearDownView() override;
- void OnStop() override;
- void InitView();
- void DeInit();
-
- bool ClickFunc(int16_t interface);
- bool CheckViewParam(int16_t hideView, int16_t showView);
- void ChangeView(int16_t hideView, int16_t showView);
-
- bool ChangeToSafeModelistView(int16_t thisView);
- bool ChangeToBleOTAView(int16_t thisView);
- bool ChangeToAutoOTAView(int16_t thisView);
- bool ChangeToFactoryView(int16_t thisView);
- bool ChangeToResourceCheckView(int16_t thisView);
- UIScrollView *GetSafeScrollView(int ViewId);
-
- private:
- SafeModeManagerView *p_BleOTAView{nullptr}; // BleOTA
- SafeModeManagerView *p_AutoOTAView{nullptr}; // 自动OTA
- SafeModeManagerView *p_FactoryView{nullptr}; // 恢复出厂
- ResourceCheckView *p_ResourceCheckView{nullptr}; // 资源校验
-
- private:
- SafeModeManagerView(SafeModeManagerView &&) = delete;
- SafeModeManagerView &operator=(SafeModeManagerView &&) = delete;
-
- // UI 组件
- UILabelExt labelTitle_; // 标题标签
-
- // 功能的背景图像
- UIImageView backgroundBLE_; // BLE OTA 背景图像
- UIImageView backgroundAutoOTA_; // Auto OTA 背景图像
- UIImageView backgroundFactoryReset_; // 恢复出厂设置背景图像
- UIImageView backgroundResourceCheck_; // 资源校验背景图像
- UIImageView backgroundRestart_; // 重启背景图像
-
- // 切换按钮
- UIToggleButton btnBLE_; // BLE OTA 切换按钮
- UIToggleButton btnAutoOTA_; // Auto OTA 切换按钮
- UIToggleButton btnFactoryReset_; // 恢复出厂设置切换按钮
- UIToggleButton btnResourceCheck_; // 资源校验切换按钮
- UIToggleButton btnRestart_; // 重启切换按钮
-
- // 标签显示功能状态
- UILabelExt labelBLEStatus_; // BLE OTA 状态标签
- UILabelExt labelAutoOTAStatus_; // Auto OTA 状态标签
- UILabelExt labelFactoryResetStatus_; // 恢复出厂设置状态标签
- UILabelExt labelResourceCheckStatus_; // 资源校验状态标签
- UILabelExt labelRestart_; // 重启状态标签
-
- UIScrollView *SafeModeScrollView[MAX_VIEW_ID]{nullptr};
- };
+#include "safemodemanager/include/SafeModeManagerModel.h"
+
+namespace OHOS {
+typedef enum {
+ VIEW_SAFE_LIST, // Safe Mode List
+ VIEW_BLE_OTA, // BLE OTA Update
+ VIEW_AUTO_OTA, // Automatic OTA Update
+ VIEW_FACTORY_RESET, // Factory Reset
+ VIEW_RESOURCE_CHECK, // Resource Check
+ VIEW_REPAIR_FILE, // File Repair
+ MAX_VIEW_ID, // Maximum View ID
+} SafeViewID;
+
+class SafeModeManagerPresenter;
+class ResourceCheckView;
+
+class SafeModeManagerView : public View<SafeModeManagerPresenter> {
+public:
+ SafeModeManagerView();
+ virtual ~SafeModeManagerView();
+ static SafeModeManagerView *GetInstance(void);
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStop() override;
+ void InitView();
+ void DeInit();
+
+ bool ClickFunc(int16_t interface);
+ bool CheckViewParam(int16_t hideView, int16_t showView);
+ void ChangeView(int16_t hideView, int16_t showView);
+
+ bool ChangeToSafeModelistView(int16_t thisView);
+ bool ChangeToBleOTAView(int16_t thisView);
+ bool ChangeToAutoOTAView(int16_t thisView);
+ bool ChangeToFactoryView(int16_t thisView);
+ bool ChangeToResourceCheckView(int16_t thisView);
+ bool ChangeToRepairView(int16_t thisView);
+ UIScrollView *GetSafeScrollView(int ViewId);
+
+ void UpdateToggleButState();
+ void UpdateButtonState(UIToggleButton button, Safe_State state);
+
+private:
+ SafeModeManagerView *p_BleOTAView{nullptr}; // BLE OTA View
+ SafeModeManagerView *p_AutoOTAView{nullptr}; // Automatic OTA View
+ SafeModeManagerView *p_FactoryView{nullptr}; // Factory Reset View
+ ResourceCheckView *p_ResourceCheckView{nullptr}; // Resource Check View
+ RepairView *p_RepairView{nullptr}; // File Repair View
+
+private:
+ SafeModeManagerView(SafeModeManagerView &&) = delete;
+ SafeModeManagerView &operator=(SafeModeManagerView &&) = delete;
+
+ // UI Components
+ UILabelExt labelTitle_; // Title Label
+
+ // Background Images for Features
+ UIImageView backgroundBLE_; // BLE OTA Background Image
+ UIImageView backgroundAutoOTA_; // Auto OTA Background Image
+ UIImageView backgroundFactoryReset_; // Factory Reset Background Image
+ UIImageView backgroundResourceCheck_; // Resource Check Background Image
+ UIImageView backgroundRestart_; // Restart Background Image
+
+ // Toggle Buttons
+ UIToggleButton btnBLE_; // BLE OTA Toggle Button
+ UIToggleButton btnAutoOTA_; // Auto OTA Toggle Button
+ UIToggleButton btnFactoryReset_; // Factory Reset Toggle Button
+ UIToggleButton btnResourceCheck_; // Resource Check Toggle Button
+ UIToggleButton btnRestart_; // Restart Toggle Button
+
+ // Status Labels
+ UILabelExt labelBLEStatus_; // BLE OTA Status Label
+ UILabelExt labelAutoOTAStatus_; // Auto OTA Status Label
+ UILabelExt labelFactoryResetStatus_; // Factory Reset Status Label
+ UILabelExt labelResourceCheckStatus_; // Resource Check Status Label
+ UILabelExt labelRestart_; // Restart Status Label
+
+ UIScrollView *SafeModeScrollView[MAX_VIEW_ID]{nullptr};
+};
} // namespace OHOS
#endif // _SafeModeManager_VIEW_H
\ No newline at end of file
#include "safemodemanager/include/SafeModeManagerView.h"
-#include "safemodemanager/include/SafeModeManagerPresenter.h"
+#include "safemodemanager/include/RepairView.h"
#include "safemodemanager/include/ResourceCheckView.h"
+#include "safemodemanager/include/SafeModeManagerModel.h"
+#include "safemodemanager/include/SafeModeManagerPresenter.h"
-#include "common/image_cache_manager.h"
#include "UiConfig.h"
-#include "ui_resource_image.h"
-#include <ui_scroll_view.h>
+#include "common/image_cache_manager.h"
#include "components/ui_button.h"
-#include "uicomponents/UIComponents.h"
-#include "ui_resource_string.h"
#include "components/ui_scroll_view.h"
#include "custom_utils.h"
+#include "ui_resource_image.h"
+#include "ui_resource_string.h"
+#include "uicomponents/UIComponents.h"
+#include <ui_scroll_view.h>
extern "C" bool resfile_checksum_thread(void);
extern "C" void uapi_enter_power_saving_mode(void);
-namespace OHOS
-{
-
- static SafeModeManagerView *g_pSafeModeManagerView{nullptr};
- static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
-
- SafeModeManagerView::SafeModeManagerView()
- {
- /*开启省电模式*/
- uapi_enter_power_saving_mode();
- g_pSafeModeManagerView = this;
- }
-
- SafeModeManagerView::~SafeModeManagerView()
- {
- /*删除变量*/
- delete p_BleOTAView;
- p_BleOTAView = nullptr;
- delete p_AutoOTAView;
- p_AutoOTAView = nullptr;
- delete p_FactoryView;
- p_FactoryView = nullptr;
- delete p_ResourceCheckView;
- p_ResourceCheckView = nullptr;
- for (int i = VIEW_SAFE_LIST; i < MAX_VIEW_ID; i++)
- {
- SafeModeScrollView[i] = nullptr;
- }
-
- UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
- UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
-
- g_pSafeModeManagerView = nullptr;
- }
-
- SafeModeManagerView *SafeModeManagerView::GetInstance()
- {
- return g_pSafeModeManagerView;
- }
-
- void SafeModeManagerView::InitView()
- {
- if (SafeModeScrollView[VIEW_SAFE_LIST] == nullptr)
- {
- SafeModeScrollView[VIEW_SAFE_LIST] = new UIScrollView();
- if (SafeModeScrollView[VIEW_SAFE_LIST] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeScrollView[VIEW_SAFE_LIST] new fail");
- return;
- }
- SafeModeScrollView[VIEW_SAFE_LIST]->SetScrollBlankSize(35);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetReboundSize(50);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- SafeModeScrollView[VIEW_SAFE_LIST]->SetHorizontalScrollState(false);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetOnDragListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetTouchable(true);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetDraggable(true);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
- SafeModeScrollView[VIEW_SAFE_LIST]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
- }
-
- // 初始化背景图和按钮的位置
- backgroundBLE_.SetPosition(43, 120, 380, 100); // BLE OTA 背景
- backgroundBLE_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- backgroundBLE_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- backgroundBLE_.SetStyle(STYLE_BORDER_RADIUS, 100);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundBLE_);
-
- backgroundAutoOTA_.SetPosition(43, 240, 380, 100); // Auto OTA 背景
- backgroundAutoOTA_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- backgroundAutoOTA_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- backgroundAutoOTA_.SetStyle(STYLE_BORDER_RADIUS, 100);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundAutoOTA_);
-
- backgroundFactoryReset_.SetPosition(43, 360, 380, 100); // 恢复出厂设置背景
- backgroundFactoryReset_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- backgroundFactoryReset_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- backgroundFactoryReset_.SetStyle(STYLE_BORDER_RADIUS, 100);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundFactoryReset_);
-
- backgroundResourceCheck_.SetPosition(43, 480, 380, 100); // 资源校验背景
- backgroundResourceCheck_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- backgroundResourceCheck_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- backgroundResourceCheck_.SetStyle(STYLE_BORDER_RADIUS, 100);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundResourceCheck_);
-
- backgroundRestart_.SetPosition(43, 600, 380, 100); // 资源校验背景
- backgroundRestart_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- backgroundRestart_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- backgroundRestart_.SetStyle(STYLE_BORDER_RADIUS, 100);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundRestart_);
-
- labelTitle_.SetPosition(83, 50, 300, 60);
- labelTitle_.SetFont(GILROY_BOLD_FONT, 30);
- labelTitle_.SetText("Safe Mode");
- labelTitle_.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); // 居中
- labelTitle_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelTitle_);
-
- // 设置四个功能状态标签
- labelBLEStatus_.SetPosition(90, 153, 200, 60);
- labelBLEStatus_.SetFont(GILROY_BOLD_FONT, 30);
- labelBLEStatus_.SetText("BLE OTA");
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelBLEStatus_);
-
- labelAutoOTAStatus_.SetPosition(90, 273, 200, 60);
- labelAutoOTAStatus_.SetFont(GILROY_BOLD_FONT, 30);
- labelAutoOTAStatus_.SetText("Auto OTA");
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelAutoOTAStatus_);
-
- labelFactoryResetStatus_.SetPosition(90, 393, 200, 60);
- labelFactoryResetStatus_.SetFont(GILROY_BOLD_FONT, 30);
- labelFactoryResetStatus_.SetText("Factory Reset");
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelFactoryResetStatus_);
-
- labelResourceCheckStatus_.SetPosition(90, 513, 200, 60);
- labelResourceCheckStatus_.SetFont(GILROY_BOLD_FONT, 30);
- labelResourceCheckStatus_.SetText("Resource Check");
- labelResourceCheckStatus_.SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
- labelResourceCheckStatus_.SetAlign(TEXT_ALIGNMENT_CENTER);
- labelResourceCheckStatus_.SetRollSpeed(30);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelResourceCheckStatus_);
-
- labelRestart_.SetPosition(90, 633, 200, 60);
- labelRestart_.SetFont(GILROY_BOLD_FONT, 30);
- labelRestart_.SetText("Restart");
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelRestart_);
-
- // 设置四个切换按钮
- btnBLE_.SetPosition(245, 120, 200, 100); // BLE OTA 切换按钮
- btnBLE_.SetViewId(BLE_OTA); // 设置按钮的ViewId
- btnBLE_.SetOnClickListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnBLE_);
-
- btnAutoOTA_.SetPosition(245, 240, 200, 100); // Auto OTA 切换按钮
- btnAutoOTA_.SetViewId(AUTO_OTA); // 设置按钮的ViewId
- btnAutoOTA_.SetOnClickListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnAutoOTA_);
-
- btnFactoryReset_.SetPosition(245, 360, 200, 100); // 恢复出厂设置切换按钮
- btnFactoryReset_.SetViewId(FACTORY_RESET_SAFE); // 设置按钮的ViewId
- btnFactoryReset_.SetOnClickListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnFactoryReset_);
-
- btnResourceCheck_.SetPosition(245, 480, 200, 100); // 资源校验切换按钮
- btnResourceCheck_.SetViewId(RESOURCE_CHECK); // 设置按钮的ViewId
- btnResourceCheck_.SetOnClickListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnResourceCheck_);
-
- btnRestart_.SetPosition(245, 600, 200, 100); // 资源校验切换按钮
- btnRestart_.SetViewId(RE_START); // 设置按钮的ViewId
- btnRestart_.SetOnClickListener(presenter_);
- SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnRestart_);
+namespace OHOS {
+
+static SafeModeManagerView *g_pSafeModeManagerView{nullptr};
+static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
+
+SafeModeManagerView::SafeModeManagerView() {
+ /*开启省电模式*/
+ uapi_enter_power_saving_mode();
+ g_pSafeModeManagerView = this;
+}
+
+SafeModeManagerView::~SafeModeManagerView() {
+ /*删除变量*/
+ delete p_BleOTAView;
+ p_BleOTAView = nullptr;
+ delete p_AutoOTAView;
+ p_AutoOTAView = nullptr;
+ delete p_FactoryView;
+ p_FactoryView = nullptr;
+ delete p_ResourceCheckView;
+ p_ResourceCheckView = nullptr;
+ delete p_RepairView;
+ p_RepairView = nullptr;
+ for (int i = VIEW_SAFE_LIST; i < MAX_VIEW_ID; i++) {
+ SafeModeScrollView[i] = nullptr;
+ }
+
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
+ g_pSafeModeManagerView = nullptr;
+}
+
+SafeModeManagerView *SafeModeManagerView::GetInstance() {
+ return g_pSafeModeManagerView;
+}
+
+void SafeModeManagerView::InitView() {
+ if (SafeModeScrollView[VIEW_SAFE_LIST] == nullptr) {
+ SafeModeScrollView[VIEW_SAFE_LIST] = new UIScrollView();
+ if (SafeModeScrollView[VIEW_SAFE_LIST] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeScrollView[VIEW_SAFE_LIST] new fail");
+ return;
}
- /* -------------------------------------------------------------------------- */
- // 主视图
- bool SafeModeManagerView::ChangeToSafeModelistView(int16_t thisView)
- {
- if (SafeModeScrollView[thisView] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::ChangeToSafeModelistView");
- container_->Add(SafeModeScrollView[thisView]);
- }
- return true;
- }
-
- // BleOTA
- bool SafeModeManagerView::ChangeToBleOTAView(int16_t thisView)
- {
- if (SafeModeScrollView[thisView] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::ChangeToBleOTAView");
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetScrollBlankSize(35);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetReboundSize(50);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetPosition(
+ 0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetHorizontalScrollState(false);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetOnDragListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetTouchable(true);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetDraggable(true);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetStyle(STYLE_BACKGROUND_COLOR,
+ BACK_GROUND_COLOR);
+ SafeModeScrollView[VIEW_SAFE_LIST]->SetStyle(STYLE_BACKGROUND_COLOR,
+ Color::Black().full);
+ }
+
+ // 初始化背景图和按钮的位置
+ backgroundBLE_.SetPosition(43, 120, 380, 100); // BLE OTA 背景
+ backgroundBLE_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ backgroundBLE_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ backgroundBLE_.SetStyle(STYLE_BORDER_RADIUS, 100);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundBLE_);
+
+ backgroundAutoOTA_.SetPosition(43, 240, 380, 100); // Auto OTA 背景
+ backgroundAutoOTA_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ backgroundAutoOTA_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ backgroundAutoOTA_.SetStyle(STYLE_BORDER_RADIUS, 100);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundAutoOTA_);
+
+ backgroundFactoryReset_.SetPosition(43, 360, 380, 100); // 恢复出厂设置背景
+ backgroundFactoryReset_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ backgroundFactoryReset_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ backgroundFactoryReset_.SetStyle(STYLE_BORDER_RADIUS, 100);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundFactoryReset_);
+
+ backgroundResourceCheck_.SetPosition(43, 480, 380, 100); // 资源校验背景
+ backgroundResourceCheck_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ backgroundResourceCheck_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ backgroundResourceCheck_.SetStyle(STYLE_BORDER_RADIUS, 100);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundResourceCheck_);
+
+ backgroundRestart_.SetPosition(43, 600, 380, 100); // 资源校验背景
+ backgroundRestart_.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ backgroundRestart_.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ backgroundRestart_.SetStyle(STYLE_BORDER_RADIUS, 100);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&backgroundRestart_);
+
+ labelTitle_.SetPosition(83, 50, 300, 60);
+ labelTitle_.SetFont(GILROY_BOLD_FONT, 30);
+ labelTitle_.SetText("Safe Mode");
+ labelTitle_.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); // 居中
+ labelTitle_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelTitle_);
+
+ // 设置四个功能状态标签
+ labelBLEStatus_.SetPosition(90, 153, 200, 60);
+ labelBLEStatus_.SetFont(GILROY_BOLD_FONT, 30);
+ labelBLEStatus_.SetText("BLE OTA");
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelBLEStatus_);
+
+ labelAutoOTAStatus_.SetPosition(90, 273, 200, 60);
+ labelAutoOTAStatus_.SetFont(GILROY_BOLD_FONT, 30);
+ labelAutoOTAStatus_.SetText("Auto OTA");
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelAutoOTAStatus_);
+
+ labelFactoryResetStatus_.SetPosition(90, 393, 200, 60);
+ labelFactoryResetStatus_.SetFont(GILROY_BOLD_FONT, 30);
+ labelFactoryResetStatus_.SetText("Factory Reset");
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelFactoryResetStatus_);
+
+ labelResourceCheckStatus_.SetPosition(90, 513, 200, 60);
+ labelResourceCheckStatus_.SetFont(GILROY_BOLD_FONT, 30);
+ labelResourceCheckStatus_.SetText("Resource Check");
+ labelResourceCheckStatus_.SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ labelResourceCheckStatus_.SetAlign(TEXT_ALIGNMENT_CENTER);
+ labelResourceCheckStatus_.SetRollSpeed(30);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelResourceCheckStatus_);
+
+ labelRestart_.SetPosition(90, 633, 200, 60);
+ labelRestart_.SetFont(GILROY_BOLD_FONT, 30);
+ labelRestart_.SetText("Restart");
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&labelRestart_);
+
+ // 设置四个切换按钮
+ btnBLE_.SetPosition(245, 120, 200, 100); // BLE OTA 切换按钮
+ btnBLE_.SetViewId(BLE_OTA); // 设置按钮的ViewId
+ btnBLE_.SetOnClickListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnBLE_);
+
+ btnAutoOTA_.SetPosition(245, 240, 200, 100); // Auto OTA 切换按钮
+ btnAutoOTA_.SetViewId(AUTO_OTA); // 设置按钮的ViewId
+ btnAutoOTA_.SetOnClickListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnAutoOTA_);
+
+ btnFactoryReset_.SetPosition(245, 360, 200, 100); // 恢复出厂设置切换按钮
+ btnFactoryReset_.SetViewId(FACTORY_RESET_SAFE); // 设置按钮的ViewId
+ btnFactoryReset_.SetOnClickListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnFactoryReset_);
+
+ btnResourceCheck_.SetPosition(245, 480, 200, 100); // 资源校验切换按钮
+ btnResourceCheck_.SetViewId(RESOURCE_CHECK); // 设置按钮的ViewId
+ btnResourceCheck_.SetOnClickListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnResourceCheck_);
+
+ btnRestart_.SetPosition(245, 600, 200, 100); // 资源校验切换按钮
+ btnRestart_.SetViewId(RE_START); // 设置按钮的ViewId
+ btnRestart_.SetOnClickListener(presenter_);
+ SafeModeScrollView[VIEW_SAFE_LIST]->Add(&btnRestart_);
+}
+/* -------------------------------------------------------------------------- */
+// 主视图
+bool SafeModeManagerView::ChangeToSafeModelistView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::ChangeToSafeModelistView");
+ container_->Add(SafeModeScrollView[thisView]);
+ }
+ return true;
+}
+
+// BleOTA
+bool SafeModeManagerView::ChangeToBleOTAView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::ChangeToBleOTAView");
#if 0
p_BleOTAView = new SystemAboutTheWatchView();
if (p_BleOTAView == nullptr)
SafeModeScrollView[thisView] = p_BleOTAView->SystemAbouTheWatchtInitIView();
container_->Add(SafeModeScrollView[thisView]);
#endif
- }
- return true;
- }
+ }
+ return true;
+}
- // 自动OTA
- bool SafeModeManagerView::ChangeToAutoOTAView(int16_t thisView)
- {
- if (SafeModeScrollView[thisView] == nullptr)
- {
+// 自动OTA
+bool SafeModeManagerView::ChangeToAutoOTAView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
#if 0
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::ChangeToAutoOTAView");
p_AutoOTAView = new SystemFactoryResetView();
SafeModeScrollView[thisView] = p_AutoOTAView->SystemFactoryResetViewInit();
container_->Add(SafeModeScrollView[thisView]);
#endif
- }
- return true;
- }
+ }
+ return true;
+}
- // 恢复出厂
- bool SafeModeManagerView::ChangeToFactoryView(int16_t thisView)
- {
- if (SafeModeScrollView[thisView] == nullptr)
- {
+// 恢复出厂
+bool SafeModeManagerView::ChangeToFactoryView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
#if 0
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::ChangeToFactoryView");
p_FactoryView = new SystemRestart();
SafeModeScrollView[thisView] = p_FactoryView->SystemRestartViewInit();
container_->Add(SafeModeScrollView[thisView]);
#endif
- }
- return true;
+ }
+ return true;
+}
+
+// 资源校验
+bool SafeModeManagerView::ChangeToResourceCheckView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::ChangeToResourceCheckView");
+ p_ResourceCheckView = new ResourceCheckView();
+ if (p_ResourceCheckView == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView:: new scrollView[%d] fail", thisView);
+ return false;
}
-
- // 资源校验
- bool SafeModeManagerView::ChangeToResourceCheckView(int16_t thisView)
- {
- if (SafeModeScrollView[thisView] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::ChangeToResourceCheckView");
- p_ResourceCheckView = new ResourceCheckView();
- if (p_ResourceCheckView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView:: new scrollView[%d] fail", thisView);
- return false;
- }
- SafeModeScrollView[thisView] = p_ResourceCheckView->ResourceCheckViewInit();
- container_->Add(SafeModeScrollView[thisView]);
- }
- return true;
+ SafeModeScrollView[thisView] = p_ResourceCheckView->ResourceCheckViewInit();
+ container_->Add(SafeModeScrollView[thisView]);
+ }
+ return true;
+}
+
+// 修复文件
+bool SafeModeManagerView::ChangeToRepairView(int16_t thisView) {
+ if (SafeModeScrollView[thisView] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::ChangeToRepairView");
+ p_RepairView = new RepairView();
+ if (p_RepairView == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView:: new scrollView[%d] fail", thisView);
+ return false;
}
-
- struct SafeModeManagerViewMapper
- {
- const int16_t viewId;
- bool (SafeModeManagerView::*func)(int16_t thisView);
- };
-
- static const SafeModeManagerViewMapper ViewMapper[] = {
- {VIEW_SAFE_LIST, &SafeModeManagerView::ChangeToSafeModelistView},
- {VIEW_BLE_OTA, &SafeModeManagerView::ChangeToBleOTAView},
- {VIEW_AUTO_OTA, &SafeModeManagerView::ChangeToAutoOTAView},
- {VIEW_FACTORY_RESET, &SafeModeManagerView::ChangeToFactoryView},
- {VIEW_RESOURCE_CHECK, &SafeModeManagerView::ChangeToResourceCheckView},
- };
-
- // 根据传入的interface参数执行相应视图ID关联的成员函数。
- bool SafeModeManagerView::ClickFunc(int16_t interface)
- {
- int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[VIEW_SAFE_LIST]);
- for (int i = 0; i < funcSize; i++)
- {
- if (interface == ViewMapper[i].viewId)
- {
- bool jug = (this->*(ViewMapper[i].func))(interface);
- if (jug == false)
- {
- return false;
- }
- return true;
- }
- }
+ SafeModeScrollView[thisView] = p_RepairView->RepairViewInit();
+ container_->Add(SafeModeScrollView[thisView]);
+ }
+ return true;
+}
+
+struct SafeModeManagerViewMapper {
+ const int16_t viewId;
+ bool (SafeModeManagerView::*func)(int16_t thisView);
+};
+
+static const SafeModeManagerViewMapper ViewMapper[] = {
+ {VIEW_SAFE_LIST, &SafeModeManagerView::ChangeToSafeModelistView},
+ {VIEW_BLE_OTA, &SafeModeManagerView::ChangeToBleOTAView},
+ {VIEW_AUTO_OTA, &SafeModeManagerView::ChangeToAutoOTAView},
+ {VIEW_FACTORY_RESET, &SafeModeManagerView::ChangeToFactoryView},
+ {VIEW_RESOURCE_CHECK, &SafeModeManagerView::ChangeToResourceCheckView},
+ {VIEW_REPAIR_FILE, &SafeModeManagerView::ChangeToRepairView}};
+
+// 根据传入的interface参数执行相应视图ID关联的成员函数。
+bool SafeModeManagerView::ClickFunc(int16_t interface) {
+ int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[VIEW_SAFE_LIST]);
+ for (int i = 0; i < funcSize; i++) {
+ if (interface == ViewMapper[i].viewId) {
+ bool jug = (this->*(ViewMapper[i].func))(interface);
+ if (jug == false) {
return false;
+ }
+ return true;
}
-
- /*检查传入的两个视图参数 hideView 和 showView 的有效性。*/
- bool SafeModeManagerView::CheckViewParam(int16_t hideView, int16_t showView)
- {
- if (showView < 0 || showView >= MAX_VIEW_ID)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::CheckViewParam showView err.");
- return false;
- }
-
- if (hideView < 0 || hideView > MAX_VIEW_ID)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::CheckViewParam hideView err.");
- return false;
- }
-
- return true;
- }
-
- // 切换视图
- void SafeModeManagerView::ChangeView(int16_t hideView, int16_t showView)
- {
- if (!CheckViewParam(hideView, showView))
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SafeModeManagerView::CheckViewParam failed.");
- return;
- }
- SafeModeScrollView[hideView]->SetVisible(false);
- ClickFunc(showView);
- SafeModeScrollView[showView]->SetVisible(true);
- Draw();
- }
- UIScrollView *SafeModeManagerView::GetSafeScrollView(int ViewId)
- {
- if (SafeModeScrollView[ViewId] == nullptr)
- {
- return nullptr;
- }
- return SafeModeScrollView[ViewId];
- }
- /* -------------------------------------------------------------------------- */
- void SafeModeManagerView::OnStart()
- {
- View<SafeModeManagerPresenter>::OnStart();
- SetContainerView(new UIViewGroup());
- if (GetContainer() == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");
- return;
- }
- container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
-
- InitView();
-
- // SetContainerView(container_);
- // RootView::GetInstance()->SetOnKeyActListener(presenter_);
- }
-
- void SafeModeManagerView::OnSetUpView()
- {
- View<SafeModeManagerPresenter>::OnSetUpView();
- container_->Add(SafeModeScrollView[VIEW_SAFE_LIST]);
- Draw();
- }
-
- void SafeModeManagerView::OnTearDownView()
- {
- View<SafeModeManagerPresenter>::OnTearDownView();
- return;
- }
-
- void SafeModeManagerView::OnStop()
- {
- View<SafeModeManagerPresenter>::OnStop();
- if (container_ != nullptr)
- {
- container_->RemoveAll();
- delete container_;
- container_ = nullptr;
- }
- RootView::GetInstance()->RemoveAll();
- return;
- }
-
-}
\ No newline at end of file
+ }
+ return false;
+}
+
+/*检查传入的两个视图参数 hideView 和 showView 的有效性。*/
+bool SafeModeManagerView::CheckViewParam(int16_t hideView, int16_t showView) {
+ if (showView < 0 || showView >= MAX_VIEW_ID) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::CheckViewParam showView err.");
+ return false;
+ }
+
+ if (hideView < 0 || hideView > MAX_VIEW_ID) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::CheckViewParam hideView err.");
+ return false;
+ }
+
+ return true;
+}
+
+// 切换视图
+void SafeModeManagerView::ChangeView(int16_t hideView, int16_t showView) {
+ if (!CheckViewParam(hideView, showView)) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "SafeModeManagerView::CheckViewParam failed.");
+ return;
+ }
+ SafeModeScrollView[hideView]->SetVisible(false);
+ ClickFunc(showView);
+ SafeModeScrollView[showView]->SetVisible(true);
+ Draw();
+}
+UIScrollView *SafeModeManagerView::GetSafeScrollView(int ViewId) {
+ if (SafeModeScrollView[ViewId] == nullptr) {
+ return nullptr;
+ }
+ return SafeModeScrollView[ViewId];
+}
+
+// 按键状态更新
+void SafeModeManagerView::UpdateToggleButState(void) {
+ // 更新按钮状态
+ UpdateButtonState(btnBLE_, Safe_State::BLE_OTA);
+ UpdateButtonState(btnAutoOTA_, Safe_State::AUTO_OTA);
+ UpdateButtonState(btnResourceCheck_, Safe_State::RESOURCE_CHECK);
+ UpdateButtonState(btnFactoryReset_, Safe_State::FACTORY_RESET);
+}
+
+// 更新单个按钮状态的辅助函数
+void SafeModeManagerView::UpdateButtonState(UIToggleButton button,
+ Safe_State state) {
+ if (SafeModeManagerModel::GetInstance()->IsState(state)) {
+ button.SetState(true);
+ } else {
+ button.SetState(false);
+ }
+}
+/* -------------------------------------------------------------------------- */
+void SafeModeManagerView::OnStart() {
+ View<SafeModeManagerPresenter>::OnStart();
+ SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");
+ return;
+ }
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(),
+ Screen::GetInstance().GetHeight());
+
+ InitView();
+
+ // SetContainerView(container_);
+ // RootView::GetInstance()->SetOnKeyActListener(presenter_);
+}
+
+void SafeModeManagerView::OnSetUpView() {
+ View<SafeModeManagerPresenter>::OnSetUpView();
+ container_->Add(SafeModeScrollView[VIEW_SAFE_LIST]);
+ Draw();
+}
+
+void SafeModeManagerView::OnTearDownView() {
+ View<SafeModeManagerPresenter>::OnTearDownView();
+ return;
+}
+
+void SafeModeManagerView::OnStop() {
+ View<SafeModeManagerPresenter>::OnStop();
+ if (container_ != nullptr) {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
+ RootView::GetInstance()->RemoveAll();
+ return;
+}
+
+} // namespace OHOS
\ No newline at end of file