From e841f9af0c00528e776afa9eca8ab6a68e3743ad Mon Sep 17 00:00:00 2001 From: "Pawel.Paprocki" Date: Thu, 1 Apr 2021 07:58:12 +0200 Subject: [PATCH] [EGD-6351] Add Factory reset window Add Factory reset window to Settings --- image/assets/lang/English.json | 1 + .../ApplicationSettings.cpp | 3 ++ .../windows/SystemMainWindow.cpp | 29 ++++++++++++++++++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 63df25ca1eb98c69b58efc789b30b98d1d56453d..e096d944da9217d00387f61d2ce12432a03ca99e 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -403,6 +403,7 @@ "app_settings_security": "Security", "app_settings_language": "Language", "app_settings_factory_reset": "Factory reset", + "app_settings_display_factory_reset_confirmation": "Your phone needs to turn off \nto perform factory reset.\n Restart now?", "app_settings_about_your_pure": "About your Pure", "app_settings_technical_information": "Technical Information", "app_settings_tech_info_model": "Model", diff --git a/module-apps/application-settings-new/ApplicationSettings.cpp b/module-apps/application-settings-new/ApplicationSettings.cpp index 05f6d784748e6b64b95e75dc311a765862c0cc2c..3ef97b57f068d41b8cd48f9fb00c1dba228ed703 100644 --- a/module-apps/application-settings-new/ApplicationSettings.cpp +++ b/module-apps/application-settings-new/ApplicationSettings.cpp @@ -447,6 +447,9 @@ namespace app windowsFactory.attach(gui::window::name::about_your_pure, [](Application *app, const std::string &name) { return std::make_unique(app); }); + windowsFactory.attach(gui::window::name::factory_reset, [](Application *app, const std::string &name) { + return std::make_unique(app, name); + }); windowsFactory.attach(gui::window::name::certification, [](Application *app, const std::string &name) { return std::make_unique(app); }); diff --git a/module-apps/application-settings-new/windows/SystemMainWindow.cpp b/module-apps/application-settings-new/windows/SystemMainWindow.cpp index f9c1d344a1062be5c921198b5a078dd11b0df943..581a2e004719324e718d3047f2b422b12ba53c26 100644 --- a/module-apps/application-settings-new/windows/SystemMainWindow.cpp +++ b/module-apps/application-settings-new/windows/SystemMainWindow.cpp @@ -4,6 +4,9 @@ #include "application-settings-new/ApplicationSettings.hpp" #include "OptionSetting.hpp" #include "SystemMainWindow.hpp" +#include "DialogMetadataMessage.hpp" +#include +#include namespace gui { @@ -26,10 +29,34 @@ namespace gui option::SettingRightItem::ArrowWhite)); }; + auto addFactoryResetOption = [&](UTF8 name, const std::string &window) { + optionList.emplace_back(std::make_unique( + utils::translateI18(name), + [=](Item &item) { + auto metaData = std::make_unique( + gui::DialogMetadata{utils::localize.get("app_settings_factory_reset"), + "info_big_circle_W_G", + utils::localize.get("app_settings_display_factory_reset_confirmation"), + "", + [this]() { + auto msg = std::make_shared(); + application->bus.sendUnicast(msg, service::name::service_desktop); + application->returnToPreviousWindow(2); + return true; + }}); + LOG_INFO("switching to %s page", window.c_str()); + application->switchWindow(window, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData)); + return true; + }, + nullptr, + this, + option::SettingRightItem::Disabled)); + }; + addOption("app_settings_language", gui::window::name::languages); addOption("app_settings_date_and_time", gui::window::name::date_and_time); - addOption("app_settings_factory_reset", gui::window::name::factory_reset); addOption("app_settings_about_your_pure", gui::window::name::about_your_pure); + addFactoryResetOption("app_settings_factory_reset", gui::window::name::factory_reset); return optionList; }