From bcdaf15ed1560876b4a784f758ead67a7e240968 Mon Sep 17 00:00:00 2001 From: Przemyslaw Brudny Date: Tue, 11 May 2021 18:52:31 +0200 Subject: [PATCH] [EGD-6740] Availability and Change handled by PhoneLockHandler Availability and Change in phoneLock handled by PhoneLockHandler. Removed old implementation from onBoarding and Settings. Cleared language assets. --- image/assets/lang/English.json | 34 +-- image/assets/lang/Svenska.json | 26 +- module-apps/Application.cpp | 54 ++-- module-apps/Application.hpp | 8 +- .../windows/CalendarEventsOptionsWindow.cpp | 4 +- .../ApplicationDesktop.cpp | 34 --- .../ApplicationDesktop.hpp | 7 - .../ApplicationOnBoarding.cpp | 29 +-- .../ApplicationOnBoarding.hpp | 7 - .../application-onboarding/CMakeLists.txt | 5 +- .../windows/ConfigurePasscodeWindow.cpp | 106 -------- .../windows/ConfigurePasscodeWindow.hpp | 26 -- .../windows/OnBoardingDateAndTimeWindow.cpp | 9 +- .../windows/StartConfigurationWindow.cpp | 4 +- .../windows/PhonebookContactOptions.cpp | 4 +- .../windows/PhonebookNamecardOptions.cpp | 1 - .../ApplicationSettings.cpp | 16 -- .../ApplicationSettings.hpp | 10 - .../application-settings-new/CMakeLists.txt | 4 - .../widgets/ChangePasscodeLockHandler.cpp | 57 ---- .../widgets/ChangePasscodeLockHandler.hpp | 36 --- .../windows/ChangePasscodeWindow.cpp | 189 -------------- .../windows/ChangePasscodeWindow.hpp | 41 --- .../windows/SecurityMainWindow.cpp | 37 ++- .../windows/SecurityMainWindow.hpp | 3 +- module-apps/locks/CMakeLists.txt | 2 +- module-apps/locks/data/LockData.hpp | 24 +- ...LockMessages.hpp => PhoneLockMessages.hpp} | 21 ++ .../locks/handlers/PhoneLockHandler.cpp | 243 ++++++++++++++++-- .../locks/handlers/PhoneLockHandler.hpp | 50 +++- .../locks/handlers/PhoneLockSubject.cpp | 27 +- .../locks/handlers/PhoneLockSubject.hpp | 7 +- module-apps/locks/handlers/PinLockHandler.cpp | 32 +-- module-apps/locks/handlers/PinLockHandler.hpp | 1 - module-apps/locks/widgets/Lock.cpp | 7 +- module-apps/locks/widgets/Lock.hpp | 7 +- module-apps/locks/widgets/PhoneLockBox.cpp | 92 ++++++- module-apps/locks/widgets/PhoneLockBox.hpp | 18 +- module-apps/locks/widgets/PukLockBox.cpp | 12 +- module-apps/locks/widgets/SimLockBox.cpp | 7 +- module-apps/locks/windows/LockWindow.cpp | 54 ++-- module-apps/locks/windows/LockWindow.hpp | 7 +- .../locks/windows/PinLockBaseWindow.cpp | 17 +- module-apps/locks/windows/PinLockWindow.cpp | 6 +- module-apps/popups/CMakeLists.txt | 6 +- module-apps/popups/Popups.cpp | 6 +- module-apps/popups/Popups.hpp | 6 +- .../popups/data/PopupRequestParams.hpp | 13 +- .../lock-popups/PhoneLockChangeInfoWindow.cpp | 63 +++++ .../lock-popups/PhoneLockChangeInfoWindow.hpp | 24 ++ ...ockWindow.cpp => PhoneLockInputWindow.cpp} | 80 +++--- ...ockWindow.hpp => PhoneLockInputWindow.hpp} | 11 +- .../popups/lock-popups/PhoneLockedWindow.cpp | 2 +- module-apps/windows/AppWindow.cpp | 2 +- module-gui/gui/widgets/Text.cpp | 8 +- module-gui/gui/widgets/Text.hpp | 5 +- .../model/ApplicationManager.cpp | 38 ++- .../model/ApplicationManager.hpp | 3 +- .../developerMode/DeveloperModeHelper.cpp | 2 +- module-utils/i18n/i18n.cpp | 10 +- 60 files changed, 784 insertions(+), 880 deletions(-) delete mode 100644 module-apps/application-onboarding/windows/ConfigurePasscodeWindow.cpp delete mode 100644 module-apps/application-onboarding/windows/ConfigurePasscodeWindow.hpp delete mode 100644 module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.cpp delete mode 100644 module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.hpp delete mode 100644 module-apps/application-settings-new/windows/ChangePasscodeWindow.cpp delete mode 100644 module-apps/application-settings-new/windows/ChangePasscodeWindow.hpp rename module-apps/locks/data/{LockMessages.hpp => PhoneLockMessages.hpp} (67%) create mode 100644 module-apps/popups/lock-popups/PhoneLockChangeInfoWindow.cpp create mode 100644 module-apps/popups/lock-popups/PhoneLockChangeInfoWindow.hpp rename module-apps/popups/lock-popups/{PhoneUnLockWindow.cpp => PhoneLockInputWindow.cpp} (56%) rename module-apps/popups/lock-popups/{PhoneUnLockWindow.hpp => PhoneLockInputWindow.hpp} (58%) diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 8a8e82114e4e68f5d34ae20d5722f16fab5fc769..b4025008aef31a80d049790ee44defd0ec624ee9 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -245,11 +245,6 @@ "app_desktop_sim_setup_wrong_puk_last_attempt_warning": "If the code is wrong this time, the

SIM card will be blocked and you'll

have to contact the operator.
", "app_desktop_sim_card_unlocked": "SIM card unlocked", "app_desktop_sim_card_locked": "SIM card locked", - "app_desktop_screen_enter_passcode_to_unlock": "Enter the passcode

to unlock:
", - "app_desktop_screen_wrong_passcode_last_attempt": "Wrong passcode.

You have 1 attempt left.
", - "app_desktop_screen_wrong_passcode_last_attempt_warning": "If the passcode is wrong this time,

you'll have to wait $MINUTES minutes

before trying again.
", - "app_desktop_screen_wrong_passcode": "Wrong passcode.

You have $ATTEMPTS attempts left.
", - "app_desktop_screen_blocked_info": "Sorry, phone blocked", "app_desktop_press_to_unlock": "Press Unlock and then #", "app_desktop_unread_messages": "Unread messages", "app_desktop_missed_calls": "Missed calls", @@ -321,10 +316,6 @@ "app_onboarding_configuration_successful": "Your Pure was configured

successfully.", "app_onboarding_no_configuration": "Your Pure is not configured.

You can go to Settings to.

configure it.", "app_onboarding_update_info": "New Mudita OS version is available.

To update your Pure Phone, please

visit: www.mudita.com/updateos

and follow the instructions.", - "app_onboarding_set_password": "Set passcode that unlocks the phone", - "app_onboarding_confirm_password": "Confirm the passcode", - "app_onboarding_wrong_password": "Wrong passcode. Configure passcode again.", - "app_onboarding_passcode_configuration": "Configure passcode", "app_settings_title_main": "Advanced", "app_settings_title_main_new": "Settings", "app_settings_bt": "Bluetooth", @@ -440,14 +431,23 @@ "app_settings_network_apn_settings": "APN settings", "app_settings_toggle_on": "ON", "app_settings_toggle_off": "OFF", - "app_settings_security_lock_screen_passcode": "Lock screen passcode", - "app_settings_security_change_passcode": "Change passcode", - "app_settings_security_type_current_passcode": "Type current passcode", - "app_settings_security_enter_new_passcode": "Enter new passcode", - "app_settings_security_confirm_new_passcode": "Confirm new passcode", - "app_settings_security_wrong_passcode": "Wrong passcode!", - "app_settings_security_passcode_changed_successfully": "Passcode changed successfully!", - "app_settings_security_passcode_disabled": "Passcode disabled!", + "app_settings_security_phone_lock": "Lock screen passcode", + "app_settings_security_change_phone_lock": "Change passcode", + "phone_lock_unlock": "Enter the passcode

to unlock:
", + "phone_lock_unlock_last_attempt": "Wrong passcode.

You have 1 attempt left.
", + "phone_lock_unlock_last_attempt_warning": "If the passcode is wrong this time,

you'll have to wait $MINUTES minutes

before trying again.
", + "phone_lock_unlock_invalid": "Wrong passcode.

You have $ATTEMPTS attempts left.
", + "phone_lock_blocked": "Sorry, phone blocked", + "phone_lock_current": "Type current passcode", + "phone_lock_enter_new": "Enter new passcode", + "phone_lock_confirm_new": "Confirm new passcode", + "phone_lock_invalid": "Wrong passcode!", + "phone_lock_changed_successfully": "Passcode changed successfully!", + "phone_lock_disabled": "Passcode disabled!", + "phone_lock_set": "Set passcode that unlocks

the phone
", + "phone_lock_confirm": "Confirm the passcode", + "phone_lock_invalid_retry": "Wrong passcode.

Configure passcode again.
", + "phone_lock_configure": "Configure passcode", "app_settings_security_usb_passcode": "USB security", "app_settings_apn_settings_no_apns": "No APNs yet.

Press left arrow to add new.

", "app_settings_apn_options": "Options", diff --git a/image/assets/lang/Svenska.json b/image/assets/lang/Svenska.json index 11b39b1000c2c63d4aea14de400464c3183f10af..f11d4228bfc29a10c9150bb809e6d751200be3ab 100644 --- a/image/assets/lang/Svenska.json +++ b/image/assets/lang/Svenska.json @@ -229,11 +229,6 @@ "app_desktop_sim_setup_wrong_puk": "Fel PUK-kod.

Du har $ATTEMPTS försök kvar.
", "app_desktop_sim_setup_wrong_puk_last_attempt": "Fel PUK-kod.

Du har 1 försök kvar.
", "app_desktop_sim_setup_wrong_puk_last_attempt_warning": "Om koden är fel den här gången

kommer SIM-kortet låsas och du kommer

behöva kontakta operatören.
", - "app_desktop_screen_enter_passcode_to_unlock": "Lösenord:", - "app_desktop_screen_wrong_passcode_last_attempt": "Fel lösenord.

Du har 1 försök kvar.
", - "app_desktop_screen_wrong_passcode_last_attempt_warning": "Om lösenordet är fel den här gången,

måste du vänta $MINUTES minuter

innan nästa försök.
", - "app_desktop_screen_wrong_passcode": "Fel lösenord.

Du har $ATTEMPTS försök kvar.
", - "app_desktop_screen_blocked_info": "Tyvärr, telefonen blockerad.", "app_desktop_press_to_unlock": "Tryck Lås upp följt av #", "app_desktop_unread_messages": "Olästa meddelanden", "app_desktop_missed_calls": "Missade samtal", @@ -379,14 +374,19 @@ "app_settings_network_apn_settings": "APN-inställningar", "app_settings_toggle_on": "PÅ", "app_settings_toggle_off": "AV", - "app_settings_security_lock_screen_passcode": "Lösenord för att låsa telefonen", - "app_settings_security_change_passcode": "Byt lösenord", - "app_settings_security_type_current_passcode": "Det förra lösenordet", - "app_settings_security_enter_new_passcode": "Det nya lösenordet", - "app_settings_security_confirm_new_passcode": "Bekräfta nytt löserord", - "app_settings_security_wrong_passcode": "Fel lösenord!", - "app_settings_security_passcode_changed_successfully": "Lösenordet bytt!", - "app_settings_security_passcode_disabled": "Lösenordet avstängt!", + "app_settings_security_phone_lock": "Lösenord för att låsa telefonen", + "app_settings_security_change_phone_lock": "Byt lösenord", + "phone_lock_unlock": "Lösenord:", + "phone_lock_unlock_last_attempt": "Fel lösenord.

Du har 1 försök kvar.
", + "phone_lock_unlock_last_attempt_warning": "Om lösenordet är fel den här gången,

måste du vänta $MINUTES minuter

innan nästa försök.
", + "phone_lock_unlock_invalid": "Fel lösenord.

Du har $ATTEMPTS försök kvar.
", + "phone_lock_blocked": "Tyvärr, telefonen blockerad.", + "phone_lock_current": "Det förra lösenordet", + "phone_lock_enter_new": "Det nya lösenordet", + "phone_lock_confirm_new": "Bekräfta nytt löserord", + "phone_lock_invalid": "Fel lösenord!", + "phone_lock_changed_successfully": "Lösenordet bytt!", + "phone_lock_disabled": "Lösenordet avstängt!", "app_settings_apn_settings_no_apns": "Inga APN-inställningar än.

Tryck vänsterpil för att lägga till.

", "app_settings_apn_options": "Alternativ", "app_settings_apn_options_delete": "Radera", diff --git a/module-apps/Application.cpp b/module-apps/Application.cpp index 2bbb77a23662b27e2730b2315a0931ac03bdde47..2ca9b6a423749eb7836b3380c0787f70851f1110 100644 --- a/module-apps/Application.cpp +++ b/module-apps/Application.cpp @@ -47,7 +47,8 @@ #include #include #include -#include +#include +#include #include #include #include @@ -627,12 +628,6 @@ namespace app setState(State::ACTIVE_BACKGROUND); } - lockScreenPasscodeIsOn = utils::getNumericValue( - settings->getValue(settings::SystemProperties::lockScreenPasscodeIsOn, settings::SettingsScope::Global)); - settings->registerValueChange( - settings::SystemProperties::lockScreenPasscodeIsOn, - [this](const std::string &value) { lockScreenPasscodeIsOn = utils::getNumericValue(value); }, - settings::SettingsScope::Global); return sys::ReturnCodes::Success; } @@ -774,16 +769,22 @@ namespace app case ID::Brightness: break; case ID::PhoneLock: - case ID::InputLock: + case ID::PhoneLockInput: + case ID::PhoneLockChangeInfo: windowsFactory.attach(window::phone_lock_window, [](Application *app, const std::string &name) { return std::make_unique(app, window::phone_lock_window); }); windowsFactory.attach(window::phone_lock_info_window, [](Application *app, const std::string &name) { return std::make_unique(app, window::phone_lock_info_window); }); - windowsFactory.attach(window::input_lock_window, [](Application *app, const std::string &name) { - return std::make_unique(app, window::input_lock_window); + windowsFactory.attach(window::phone_lock_input_window, [](Application *app, const std::string &name) { + return std::make_unique(app, window::phone_lock_input_window); }); + windowsFactory.attach(window::phone_lock_change_info_window, + [](Application *app, const std::string &name) { + return std::make_unique( + app, window::phone_lock_change_info_window); + }); windowsFactory.attach(window::power_off_window, [](Application *app, const std::string &name) { auto presenter = std::make_unique(app); return std::make_unique(app, std::move(presenter)); @@ -807,10 +808,12 @@ namespace app std::to_string(volumeParams->getVolume()).c_str()); handleVolumeChanged(volumeParams->getVolume(), volumeParams->getAudioContext()); } - else if (id == ID::InputLock) { + else if (id == ID::PhoneLockInput || id == ID::PhoneLockChangeInfo) { auto popupParams = static_cast(params); - switchWindow(gui::popup::resolveWindowName(id), std::make_unique(popupParams->getLock())); + switchWindow( + gui::popup::resolveWindowName(id), + std::make_unique(popupParams->getLock(), popupParams->getPhoneLockInputTypeAction())); } else { switchWindow(gui::popup::resolveWindowName(id)); @@ -933,31 +936,14 @@ namespace app callbackStorage->removeAll(receiver); } - void Application::handlePhoneLock() - { - phoneLockSubject.lock(); - } - - void Application::handlePhoneUnLock() - { - phoneLockSubject.unlock(); - } - - void Application::verifyPhoneLockInput(const std::vector &inputData) - { - phoneLockSubject.verifyInput(inputData); - } - - void Application::setLockScreenPasscodeOn(bool screenPasscodeOn) noexcept + auto Application::getPhoneLockSubject() noexcept -> locks::PhoneLockSubject & { - lockScreenPasscodeIsOn = screenPasscodeOn; - settings->setValue(settings::SystemProperties::lockScreenPasscodeIsOn, - std::to_string(lockScreenPasscodeIsOn), - settings::SettingsScope::Global); + return phoneLockSubject; } - bool Application::isLockScreenPasscodeOn() const noexcept + bool Application::isPhoneLockEnabled() const noexcept { - return lockScreenPasscodeIsOn; + return (utils::getNumericValue( + settings->getValue(settings::SystemProperties::lockScreenPasscodeIsOn, settings::SettingsScope::Global))); } } /* namespace app */ diff --git a/module-apps/Application.hpp b/module-apps/Application.hpp index 067302517dc6bf57a1c4808c7193a116da5e8c05..61b517cd87bfbfc1844a4e97d428817d70165177 100644 --- a/module-apps/Application.hpp +++ b/module-apps/Application.hpp @@ -157,7 +157,6 @@ namespace app private: std::string default_window; State state = State::DEACTIVATED; - bool lockScreenPasscodeIsOn; sys::MessagePointer handleSignalStrengthUpdate(sys::Message *msgl); sys::MessagePointer handleNetworkAccessTechnologyUpdate(sys::Message *msgl); @@ -403,12 +402,9 @@ namespace app locks::PhoneLockSubject phoneLockSubject; public: - void handlePhoneLock(); - void handlePhoneUnLock(); - void verifyPhoneLockInput(const std::vector &inputData); + [[nodiscard]] auto getPhoneLockSubject() noexcept -> locks::PhoneLockSubject &; - void setLockScreenPasscodeOn(bool screenPasscodeOn) noexcept; - bool isLockScreenPasscodeOn() const noexcept; + [[nodiscard]] bool isPhoneLockEnabled() const noexcept; const gui::top_bar::Configuration &getTopBarConfiguration() const noexcept; }; diff --git a/module-apps/application-calendar/windows/CalendarEventsOptionsWindow.cpp b/module-apps/application-calendar/windows/CalendarEventsOptionsWindow.cpp index a28fd667dafda4ba31d81fcb711f1ee4a0ba5a10..2bea6d4960014a5f616f01938a0e1f2b54cfa760 100644 --- a/module-apps/application-calendar/windows/CalendarEventsOptionsWindow.cpp +++ b/module-apps/application-calendar/windows/CalendarEventsOptionsWindow.cpp @@ -15,9 +15,7 @@ namespace gui CalendarEventsOptions::CalendarEventsOptions(app::Application *app) : OptionWindow(app, style::window::calendar::name::events_options) - { - buildInterface(); - } + {} auto CalendarEventsOptions::eventsOptionsList() -> std::list { diff --git a/module-apps/application-desktop/ApplicationDesktop.cpp b/module-apps/application-desktop/ApplicationDesktop.cpp index bd24b1b355c9bb606080cd158caacea508b1ef5f..e992609f50329299327e6a98faf41628f49362ac 100644 --- a/module-apps/application-desktop/ApplicationDesktop.cpp +++ b/module-apps/application-desktop/ApplicationDesktop.cpp @@ -165,11 +165,6 @@ namespace app if (auto msg = dynamic_cast(msgl)) { handled = handle(msg); } - else if (auto msg = dynamic_cast(msgl)) { - if (auto event = dynamic_cast(msg->event.get())) { - handled = handle(event); - } - } else if (auto msg = dynamic_cast(msgl)) { handled = handle(msg); } @@ -205,17 +200,6 @@ namespace app return true; } - auto ApplicationDesktop::handle(sdesktop::developerMode::ScreenlockCheckEvent *event) -> bool - { - if (event != nullptr) { - auto event = std::make_unique(lockHandler.isScreenLocked()); - auto msg = std::make_shared(std::move(event)); - bus.sendUnicast(std::move(msg), service::name::service_desktop); - } - - return true; - } - void ApplicationDesktop::handleNotificationsChanged(std::unique_ptr notificationsParams) { if (auto window = getCurrentWindow()->getName(); @@ -252,9 +236,6 @@ namespace app return ret; } - lockPassHashChanged( - settings->getValue(settings::SystemProperties::lockPassHash, settings::SettingsScope::Global)); - createUserInterface(); connect(sdesktop::UpdateOsMessage(), [&](sys::Message *msg) { @@ -361,11 +342,6 @@ namespace app [this](const std::string &value) { activeSimChanged(value); }, settings::SettingsScope::Global); - settings->registerValueChange( - settings::SystemProperties::lockPassHash, - [this](const std::string &value) { lockPassHashChanged(value); }, - settings::SettingsScope::Global); - settings->registerValueChange( settings::SystemProperties::osCurrentVersion, [this](const std::string &value) { osCurrentVersionChanged(value); }, @@ -467,16 +443,6 @@ namespace app } } - void ApplicationDesktop::lockPassHashChanged(std::string value) - { - if (!value.empty()) { - lockPassHash = utils::getNumericValue(value); - } - else { - lockPassHash = 0; - } - } - void ApplicationDesktop::handleLowBatteryNotification(manager::actions::ActionParamsPtr &&data) { auto lowBatteryState = static_cast(data.get()); diff --git a/module-apps/application-desktop/ApplicationDesktop.hpp b/module-apps/application-desktop/ApplicationDesktop.hpp index db945b00bf74b51bfe9ec21e434eb4efa45e9ddf..4ac738c8e576090adc1b5e4e71211fc890323da5 100644 --- a/module-apps/application-desktop/ApplicationDesktop.hpp +++ b/module-apps/application-desktop/ApplicationDesktop.hpp @@ -49,13 +49,8 @@ namespace app // done bool handle(cellular::StateChange *msg); auto handle(sdesktop::UpdateOsMessage *msg) -> bool; - auto handle(sdesktop::developerMode::ScreenlockCheckEvent *event) -> bool; void handleNotificationsChanged(std::unique_ptr notificationsParams) override; - unsigned int getLockPassHash() const noexcept - { - return lockPassHash; - } std::string getOsUpdateVersion() const { return osUpdateVersion; @@ -69,9 +64,7 @@ namespace app private: bool refreshMenuWindow(); void activeSimChanged(std::string value); - void lockPassHashChanged(std::string value); void handleLowBatteryNotification(manager::actions::ActionParamsPtr &&data); - unsigned int lockPassHash = 0; void osUpdateVersionChanged(const std::string &value); void osCurrentVersionChanged(const std::string &value); std::string osUpdateVersion{updateos::initSysVer}; diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.cpp b/module-apps/application-onboarding/ApplicationOnBoarding.cpp index 79ed0d2474f23fcfb183320776fb6e0dd3ffbd50..b4e09aec9a77b11da4bdf445a6865388e7ae0087 100644 --- a/module-apps/application-onboarding/ApplicationOnBoarding.cpp +++ b/module-apps/application-onboarding/ApplicationOnBoarding.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include namespace app { @@ -43,6 +43,7 @@ namespace app Indicator::NetworkAccessTechnology}); bus.channels.push_back(sys::BusChannel::ServiceDBNotifications); + bus.channels.push_back(sys::BusChannel::PhoneLockChanges); } // Invoked upon receiving data message @@ -76,6 +77,16 @@ namespace app } }); + connect(typeid(locks::SetConfirmedPhoneLock), [&](sys::Message *msg) { + switchWindow(gui::window::name::onBoarding_date_and_time); + return sys::msgHandled(); + }); + + connect(typeid(locks::SkippedSetPhoneLock), [&](sys::Message *msg) { + switchWindow(gui::window::name::onBoarding_date_and_time); + return sys::msgHandled(); + }); + return ret; } @@ -84,18 +95,6 @@ namespace app settings->setValue(settings::SystemProperties::eulaAccepted, "1", settings::SettingsScope::Global); } - void ApplicationOnBoarding::setLockPassHash(unsigned int value) - { - lockPassHash = value; - settings->setValue( - ::settings::SystemProperties::lockPassHash, std::to_string(value), ::settings::SettingsScope::Global); - } - - auto ApplicationOnBoarding::getLockPassHash() const noexcept -> unsigned int - { - return lockPassHash; - } - sys::ReturnCodes ApplicationOnBoarding::DeinitHandler() { return sys::ReturnCodes::Success; @@ -150,10 +149,6 @@ namespace app windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) { return std::make_unique(app); }); - windowsFactory.attach(gui::window::name::onBoarding_configure_passcode, - [](Application *app, const std::string &name) { - return std::make_unique(app); - }); windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) { return std::make_unique(app, gui::window::name::dialog_confirm); }); diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.hpp b/module-apps/application-onboarding/ApplicationOnBoarding.hpp index 722b08d3a203248957be5a0087dc1e80ccecc053..dbe234248a9488e81a66cc9c9b40a33d367f388a 100644 --- a/module-apps/application-onboarding/ApplicationOnBoarding.hpp +++ b/module-apps/application-onboarding/ApplicationOnBoarding.hpp @@ -16,7 +16,6 @@ namespace gui::window::name inline constexpr auto onBoarding_skip = "OnBoardingSkipConfirm"; inline constexpr auto onBoarding_date_and_time = "OnBoardingDateAndTime"; inline constexpr auto onBoarding_change_date_and_time = "OnBoardingChangeDateAndTime"; - inline constexpr auto onBoarding_configure_passcode = "OnBoardingConfigurePasscode"; } // namespace gui::window::name namespace app @@ -40,12 +39,6 @@ namespace app void createUserInterface() override; void destroyUserInterface() override; - - void setLockPassHash(unsigned int value); - [[nodiscard]] auto getLockPassHash() const noexcept -> unsigned int; - - private: - unsigned int lockPassHash = 0; }; template <> struct ManifestTraits diff --git a/module-apps/application-onboarding/CMakeLists.txt b/module-apps/application-onboarding/CMakeLists.txt index 19349ee8ceeb3e0aba7e49df9214ec09a8d5c590..e210f975e51ca8227434064efe1244a60c7620ae 100644 --- a/module-apps/application-onboarding/CMakeLists.txt +++ b/module-apps/application-onboarding/CMakeLists.txt @@ -10,7 +10,7 @@ include_directories( ${PROJECT_NAME} target_sources(${PROJECT_NAME} - PRIVATE + PRIVATE "${CMAKE_CURRENT_LIST_DIR}/ApplicationOnBoarding.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingMainWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/StartConfigurationWindow.cpp" @@ -24,8 +24,7 @@ target_sources(${PROJECT_NAME} "${CMAKE_CURRENT_LIST_DIR}/windows/SkipDialogWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingDateAndTimeWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingChangeDateAndTimeWindow.cpp" - "${CMAKE_CURRENT_LIST_DIR}/windows/ConfigurePasscodeWindow.cpp" - PUBLIC + PUBLIC "${CMAKE_CURRENT_LIST_DIR}/ApplicationOnBoarding.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingMainWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/StartConfigurationWindow.hpp" diff --git a/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.cpp b/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.cpp deleted file mode 100644 index 685fd57cb02923c6564fe0fbb5c2550620fb6aa5..0000000000000000000000000000000000000000 --- a/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "ConfigurePasscodeWindow.hpp" -#include "locks/data/LockStyle.hpp" - -#include -#include -#include -#include - -#include -#include -#include - -namespace lock_style = style::window::pin_lock; -namespace screen_lock_style = style::window::screen_pin_lock; - -namespace gui -{ - ConfigurePasscodeWindow::ConfigurePasscodeWindow(app::Application *app) : ChangePasscodeWindow(app) - { - lockState = Lock::LockState::NewInputRequired; - - textForEnterNewPassword = "app_onboarding_set_password"; - testForConfirmPassword = "app_onboarding_confirm_password"; - textForWrongPassword = "app_onboarding_worng_password"; - } - - auto ConfigurePasscodeWindow::onInput(const InputEvent &inputEvent) -> bool - { - if (inputEvent.isShortRelease(KeyCode::KEY_LF)) { - application->setLockScreenPasscodeOn(false); - application->switchWindow(gui::window::name::onBoarding_date_and_time, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique()); - } - - return ChangePasscodeWindow::onInput(inputEvent); - } - - void ConfigurePasscodeWindow::buildBottomBar() - { - bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::confirm)); - bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back)); - bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::skip)); - } - - void ConfigurePasscodeWindow::buildTitleBar() - { - setTitle(utils::translate("app_onboarding_passcode_configuration")); - } - - void ConfigurePasscodeWindow::processPasscode() - { - switch (lockState) { - case Lock::LockState::NewInputConfirmRequired: - case Lock::LockState::NewInputInvalid: { - lockState = lockHandler.newPasscodeConfirmed(); - if (lockState == Lock::LockState::Unlocked) { - auto app = static_cast(application); - app->setLockPassHash(lockHandler.getNewPasscodeHash()); - } - break; - } - default: - return ChangePasscodeWindow::processPasscode(); - } - } - - void ConfigurePasscodeWindow::setVisibleState() - { - switch (lockState) { - case Lock::LockState::NewInputInvalid: { - - auto metaData = std::make_unique( - gui::DialogMetadata{utils::translate("app_onboarding_passcode_configuration"), - "info_big_circle_W_G", - utils::translate("app_onboarding_wrong_password"), - "", - [this]() { - application->switchWindow(gui::window::name::onBoarding_configure_passcode, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique( - ChangePasscodeAction::OnlyProvideNewPasscode)); - return true; - }}); - - application->switchWindow( - gui::window::name::dialog_confirm, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData)); - - break; - } - case Lock::LockState::Unlocked: { - application->setLockScreenPasscodeOn(true); - application->switchWindow(gui::window::name::onBoarding_date_and_time, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique()); - break; - } - default: - ChangePasscodeWindow::setVisibleState(); - break; - } - } -} // namespace gui diff --git a/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.hpp b/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.hpp deleted file mode 100644 index 8a5508bcfa1de660f8083a3317a236040d3e08ac..0000000000000000000000000000000000000000 --- a/module-apps/application-onboarding/windows/ConfigurePasscodeWindow.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#pragma once - -#include -#include -#include -#include -#include - -namespace gui -{ - class ConfigurePasscodeWindow : public ChangePasscodeWindow - { - public: - explicit ConfigurePasscodeWindow(app::Application *app); - bool onInput(const InputEvent &inputEvent) override; - - protected: - void buildBottomBar() override; - void buildTitleBar() override; - void processPasscode() override; - void setVisibleState() override; - }; -} /* namespace gui */ diff --git a/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp index 3516b68ebe9de29776233f879a3323d8e19e1cc3..60c6cb5fb9470d377aae49ba074467e2fbf611a0 100644 --- a/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp +++ b/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp @@ -31,14 +31,7 @@ namespace app::onBoarding bool OnBoardingDateAndTimeWindow::onInput(const gui::InputEvent &inputEvent) { - if (inputEvent.isShortRelease(gui::KeyCode::KEY_RF)) { - application->switchWindow( - gui::window::name::onBoarding_configure_passcode, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique(ChangePasscodeAction::OnlyProvideNewPasscode)); - return true; - } - else if (inputEvent.isShortRelease(gui::KeyCode::KEY_LF)) { + if (inputEvent.isShortRelease(gui::KeyCode::KEY_LF)) { return getFocusItem()->onActivated(nullptr); } else if (inputEvent.isShortRelease(gui::KeyCode::KEY_ENTER)) { diff --git a/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp b/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp index 772bbc5ed25ef3c60153a3245428805aa526dae3..ccf573da6d7545642b9b30ed83f6a8e26556a0e9 100644 --- a/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp +++ b/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp @@ -51,9 +51,7 @@ namespace app::onBoarding std::make_unique()); } if (inputEvent.is(gui::KeyCode::KEY_ENTER)) { - application->switchWindow(gui::window::name::onBoarding_configure_passcode, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique()); + application->getPhoneLockSubject().setPhoneLock(); } if (inputEvent.is(gui::KeyCode::KEY_LF)) { diff --git a/module-apps/application-phonebook/windows/PhonebookContactOptions.cpp b/module-apps/application-phonebook/windows/PhonebookContactOptions.cpp index f961ba9b7cc677089e7ec6fc0347637b1b875175..b8581462aef1ae4f97dc268dbb647cdf870b4891 100644 --- a/module-apps/application-phonebook/windows/PhonebookContactOptions.cpp +++ b/module-apps/application-phonebook/windows/PhonebookContactOptions.cpp @@ -16,9 +16,7 @@ namespace gui PhonebookContactOptions::PhonebookContactOptions(app::Application *app) : OptionWindow(app, gui::window::name::contact_options) - { - buildInterface(); - } + {} auto PhonebookContactOptions::handleSwitchData(SwitchData *data) -> bool { diff --git a/module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp b/module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp index aa55120e65c14c7f94fe9e94bd70865e807df0b5..746caa56a9af1f83a106bff1067802c65d74d905 100644 --- a/module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp +++ b/module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp @@ -14,7 +14,6 @@ namespace gui PhonebookNamecardOptions::PhonebookNamecardOptions(app::Application *app) : OptionWindow(app, gui::window::name::namecard_options) { - buildInterface(); addOptions(namecardOptionsList()); } diff --git a/module-apps/application-settings-new/ApplicationSettings.cpp b/module-apps/application-settings-new/ApplicationSettings.cpp index 59ff839d8e24727641fbe1c596c99b5f56454a58..f682e4e6f74b13df138b337de62b3f97e834cac9 100644 --- a/module-apps/application-settings-new/ApplicationSettings.cpp +++ b/module-apps/application-settings-new/ApplicationSettings.cpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -301,11 +300,6 @@ namespace app ::settings::Cellular::volte_on, [this](const std::string &value) { volteChanged(value); }, ::settings::SettingsScope::Global); - settings->registerValueChange( - ::settings::SystemProperties::lockPassHash, - [this](const std::string &value) { lockPassHash = utils::getNumericValue(value); }, - ::settings::SettingsScope::Global); - /* settings->registerValueChange( ::settings::SystemProperties::usbSecurity, @@ -429,9 +423,6 @@ namespace app windowsFactory.attach(app::window::name::desktop_pin_lock, [&](Application *app, const std::string newname) { return std::make_unique(app, app::window::name::desktop_pin_lock); }); - windowsFactory.attach(gui::window::name::change_passcode, [](Application *app, const std::string &name) { - return std::make_unique(app); - }); windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) { return std::make_unique(app, gui::window::name::dialog_confirm); }); @@ -571,13 +562,6 @@ namespace app settings->setValue(::settings::SystemProperties::osUpdateVersion, value, ::settings::SettingsScope::Global); } - void ApplicationSettingsNew::setLockPassHash(unsigned int value) - { - lockPassHash = value; - settings->setValue( - ::settings::SystemProperties::lockPassHash, std::to_string(value), ::settings::SettingsScope::Global); - } - auto ApplicationSettingsNew::getCurrentValues() -> settingsInterface::ScreenLightSettings::Values { constexpr int timeout = pdMS_TO_TICKS(1500); diff --git a/module-apps/application-settings-new/ApplicationSettings.hpp b/module-apps/application-settings-new/ApplicationSettings.hpp index 02cd11384492c2e01955cacd3df0091866c945a4..197596d18391cc3a0018c9b96cceef6708bcdf1c 100644 --- a/module-apps/application-settings-new/ApplicationSettings.hpp +++ b/module-apps/application-settings-new/ApplicationSettings.hpp @@ -204,11 +204,6 @@ namespace app bool getVoLTEOn() const noexcept override; void volteChanged(const std::string &value); void setOsUpdateVersion(const std::string &value); - [[nodiscard]] auto getLockPassHash() const noexcept -> unsigned int - { - return lockPassHash; - } - void setLockPassHash(unsigned int value); ScreenLightSettings::Values getCurrentValues() override; void setBrightness(float brigtnessValue) override; @@ -222,9 +217,6 @@ namespace app auto isUSBSecured() const -> bool override; void setUSBSecurity(bool security) override; - void setLockScreenPasscodeOn(bool passcodeOn); - auto isLockScreenPasscodeOn() const -> bool; - auto getNotificationsWhenLocked() const noexcept -> bool override; void setNotificationsWhenLocked(bool on) noexcept override; auto getCallsFromFavourite() const noexcept -> bool override; @@ -246,8 +238,6 @@ namespace app bool operatorsOn = false; bool voLteStateOn = false; bool usbSecured = true; - bool lockScreenPasscodeOn = true; - unsigned int lockPassHash = 0; bool notificationsWhenLocked = true; bool callsFromFavorites = false; int connectionFrequency = 0; diff --git a/module-apps/application-settings-new/CMakeLists.txt b/module-apps/application-settings-new/CMakeLists.txt index 7539c9a9841aad8f350ba7ab315d91a2c8fc3434..fd48729bfb8195d7f1e21fa7a51f980d826e56bf 100644 --- a/module-apps/application-settings-new/CMakeLists.txt +++ b/module-apps/application-settings-new/CMakeLists.txt @@ -28,7 +28,6 @@ target_sources( ${PROJECT_NAME} models/SoundsModel.cpp presenter/SARInfoWindowPresenter.cpp presenter/TechnicalWindowPresenter.cpp - widgets/ChangePasscodeLockHandler.cpp widgets/QuoteWidget.cpp widgets/CategoryWidget.cpp widgets/ApnInputWidget.cpp @@ -66,7 +65,6 @@ target_sources( ${PROJECT_NAME} windows/QuotesOptionsWindow.cpp windows/SARInfoWindow.cpp windows/SecurityMainWindow.cpp - windows/ChangePasscodeWindow.cpp windows/NewApnWindow.cpp widgets/SpinBox.cpp widgets/SpinBoxOptionSettings.cpp @@ -89,7 +87,6 @@ target_sources( ${PROJECT_NAME} PUBLIC ApplicationSettings.hpp - widgets/ChangePasscodeLockHandler.hpp widgets/ApnInputWidget.hpp widgets/CategoryWidget.hpp windows/NewApnWindow.hpp @@ -106,7 +103,6 @@ target_sources( ${PROJECT_NAME} widgets/SettingsStyle.hpp windows/AutolockWindow.hpp windows/WallpaperWindow.hpp - windows/ChangePasscodeWindow.hpp windows/SystemMainWindow.hpp windows/LanguagesWindow.hpp windows/DateAndTimeMainWindow.hpp diff --git a/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.cpp b/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.cpp deleted file mode 100644 index eeb78ad9be6717869865a8165fb9bb71fc2c3af3..0000000000000000000000000000000000000000 --- a/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "ChangePasscodeLockHandler.hpp" -#include "locks/widgets/LockHash.hpp" - -namespace gui -{ - ChangePasscodeLockHandler::ChangePasscodeLockHandler() - : lock(Store::GSM::SIM::NONE, Lock::LockState::InputRequired, Lock::LockType::Screen) - {} - - Lock::LockState ChangePasscodeLockHandler::checkPasscode(unsigned int currentLockPassHash) - { - return activateLock([this, currentLockPassHash](Lock::LockType, const std::vector &pin) { - const auto hash = getHash(pin); - if (hash == currentLockPassHash) { - lock.lockState = Lock::LockState::NewInputRequired; - } - else { - lock.lockState = Lock::LockState::InputInvalidRetryRequired; - } - }); - } - - Lock::LockState ChangePasscodeLockHandler::newPasscodeConfirmed() - { - return activateLock([this](Lock::LockType, const std::vector &pin) { - const auto newPasscodeConfirmedHash = getHash(pin); - if (newPasscodeHash == newPasscodeConfirmedHash) { - lock.lockState = Lock::LockState::Unlocked; - } - else { - lock.lockState = Lock::LockState::NewInputInvalid; - } - }); - } - - Lock::LockState ChangePasscodeLockHandler::newPasscodeProvided() - { - return activateLock([this](Lock::LockType, const std::vector &pin) { - if (pin.size() < lock.getMaxInputSize()) { - lock.lockState = Lock::LockState::NewInputInvalidRetryRequired; - return; - } - newPasscodeHash = getHash(pin); - lock.lockState = Lock::LockState::NewInputConfirmRequired; - }); - } - - Lock::LockState ChangePasscodeLockHandler::activateLock(OnActivatedCallback onActivatedCallback) - { - lock.onActivatedCallback = onActivatedCallback; - lock.activate(); - return lock.lockState; - } -} // namespace gui diff --git a/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.hpp b/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.hpp deleted file mode 100644 index 64dacb2f7e69838db8afaac98b633f657da4f6a1..0000000000000000000000000000000000000000 --- a/module-apps/application-settings-new/widgets/ChangePasscodeLockHandler.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#pragma once - -#include "locks/widgets/Lock.hpp" - -namespace gui -{ - using namespace locks; - - class ChangePasscodeLockHandler - { - public: - ChangePasscodeLockHandler(); - - auto checkPasscode(unsigned int currentLockPassHash) -> Lock::LockState; - [[nodiscard]] auto getLock() -> Lock & - { - return lock; - } - [[nodiscard]] auto getNewPasscodeHash() const noexcept -> unsigned int - { - return newPasscodeHash; - } - auto newPasscodeConfirmed() -> Lock::LockState; - auto newPasscodeProvided() -> Lock::LockState; - - private: - using OnActivatedCallback = std::function &)>; - auto activateLock(OnActivatedCallback onActivatedCallback) -> Lock::LockState; - - Lock lock; - unsigned int newPasscodeHash; - }; -} // namespace gui diff --git a/module-apps/application-settings-new/windows/ChangePasscodeWindow.cpp b/module-apps/application-settings-new/windows/ChangePasscodeWindow.cpp deleted file mode 100644 index d961226621b2312ff1048f0c499ccbdfd8c8bfdf..0000000000000000000000000000000000000000 --- a/module-apps/application-settings-new/windows/ChangePasscodeWindow.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "application-settings-new/ApplicationSettings.hpp" -#include "locks/data/LockStyle.hpp" -#include "ChangePasscodeWindow.hpp" -#include "DialogMetadata.hpp" -#include "DialogMetadataMessage.hpp" -#include "windows/Dialog.hpp" - -namespace lock_style = style::window::pin_lock; -namespace screen_lock_style = style::window::screen_pin_lock; - -namespace gui -{ - ChangePasscodeWindow::ChangePasscodeWindow(app::Application *app) - : LockWindow(app, gui::window::name::change_passcode) - { - buildInterface(); - } - - auto ChangePasscodeWindow::onInput(const InputEvent &inputEvent) -> bool - { - auto &lock = lockHandler.getLock(); - if (lock.isState(Lock::LockState::Unlocked) && inputEvent.isShortRelease()) { - application->returnToPreviousWindow(); - } - if (!inputEvent.isShortRelease()) { - return AppWindow::onInput(inputEvent); - } - - if (inputEvent.isDigit() && lock.canPut()) { - lockBox->putChar(lock.getCharCount()); - lock.putNextChar(inputEvent.numericValue()); - return true; - } - else if (inputEvent.is(KeyCode::KEY_PND)) { - lock.popChar(); - lockBox->popChar(lock.getCharCount()); - return true; - } - else if (inputEvent.is(KeyCode::KEY_ENTER)) { - processPasscode(); - setVisibleState(); - return true; - } - return AppWindow::onInput(inputEvent); - } - - void ChangePasscodeWindow::rebuild() - { - destroyInterface(); - buildInterface(); - } - - void ChangePasscodeWindow::buildBottomBar() - { - LockWindow::buildBottomBar(); - setBottomBarWidgetsActive(false, true, true); - } - - void ChangePasscodeWindow::buildInterface() - { - AppWindow::buildInterface(); - LockWindow::build(); - - lockBox = std::make_unique(this); - lockBox->buildLockBox(lockHandler.getLock().getMaxInputSize()); - - lockImage = new gui::Image(this, lock_style::image::x, lock_style::image::y, 0, 0, "pin_lock"); - - primaryText->setPosition(lockImage->getHeight() + screen_lock_style::primary_text::y, gui::Axis::Y); - pinLabelsBox->setPosition(lockImage->getHeight() + screen_lock_style::pin_label::y, gui::Axis::Y); - } - - void ChangePasscodeWindow::buildTitleBar() - { - setTitle(utils::translate("app_settings_security_change_passcode")); - } - - void ChangePasscodeWindow::destroyInterface() - { - erase(); - } - - void ChangePasscodeWindow::onBeforeShow(ShowMode mode, SwitchData *data) - { - if (data != nullptr) { - auto changePasscodeData = static_cast(data); - changePasscodeAction = changePasscodeData->changePasscodeAction; - if (ChangePasscodeAction::OnlyProvideNewPasscode == changePasscodeAction) { - lockState = Lock::LockState::NewInputRequired; - } - } - setVisibleState(); - } - - void ChangePasscodeWindow::processPasscode() - { - switch (lockState) { - case Lock::LockState::InputRequired: - case Lock::LockState::InputInvalidRetryRequired: { - auto app = static_cast(application); - lockState = lockHandler.checkPasscode(app->getLockPassHash()); - if (ChangePasscodeAction::OnlyCheckCurrentPasscode == changePasscodeAction && - lockState == Lock::LockState::NewInputRequired) { - application->setLockScreenPasscodeOn(false); - - auto metaData = std::make_unique( - gui::DialogMetadata{utils::translate("app_settings_security_change_passcode"), - "success_icon_W_G", - utils::translate("app_settings_security_passcode_disabled"), - "", - [this]() { - application->switchWindow(gui::window::name::security); - return true; - }}); - application->switchWindow( - gui::window::name::dialog_confirm, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData)); - return; - } - break; - } - case Lock::LockState::NewInputRequired: - case Lock::LockState::NewInputInvalidRetryRequired: { - lockState = lockHandler.newPasscodeProvided(); - break; - } - case Lock::LockState::NewInputConfirmRequired: - case Lock::LockState::NewInputInvalid: { - lockState = lockHandler.newPasscodeConfirmed(); - if (lockState == Lock::LockState::Unlocked) { - auto app = static_cast(application); - app->setLockPassHash(lockHandler.getNewPasscodeHash()); - } - break; - } - default: - break; - } - } - - void ChangePasscodeWindow::setVisibleState() - { - lockBox->clear(); - switch (lockState) { - case Lock::LockState::InputRequired: { - setText("app_settings_security_type_current_passcode", LockWindow::TextType::Primary); - secondaryText->setVisible(false); - break; - } - case Lock::LockState::NewInputRequired: { - setText("app_settings_security_enter_new_passcode", LockWindow::TextType::Primary); - secondaryText->setVisible(false); - break; - } - case Lock::LockState::NewInputConfirmRequired: { - setText("app_settings_security_confirm_new_passcode", LockWindow::TextType::Primary); - secondaryText->setVisible(false); - break; - } - case Lock::LockState::InputInvalidRetryRequired: - case Lock::LockState::NewInputInvalidRetryRequired: - case Lock::LockState::NewInputInvalid: { - setText("app_settings_security_wrong_passcode", LockWindow::TextType::Secondary); - break; - } - case Lock::LockState::Unlocked: { - application->setLockScreenPasscodeOn(true); - - auto metaData = std::make_unique( - gui::DialogMetadata{utils::translate("app_settings_security_change_passcode"), - "success_icon_W_G", - utils::translate("app_settings_security_passcode_changed_successfully"), - "", - [this]() { - application->switchWindow(gui::window::name::security); - return true; - }}); - application->switchWindow( - gui::window::name::dialog_confirm, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData)); - break; - } - default: { - break; - } - } - } -} // namespace gui diff --git a/module-apps/application-settings-new/windows/ChangePasscodeWindow.hpp b/module-apps/application-settings-new/windows/ChangePasscodeWindow.hpp deleted file mode 100644 index 291858b1fb4374daf0a2d2fd3ec6f18a1c25747a..0000000000000000000000000000000000000000 --- a/module-apps/application-settings-new/windows/ChangePasscodeWindow.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#pragma once - -#include "locks/windows/LockWindow.hpp" -#include "locks/widgets/PhoneLockBaseBox.hpp" -#include "application-settings-new/data/ChangePasscodeData.hpp" -#include "application-settings-new/widgets/ChangePasscodeLockHandler.hpp" - -namespace gui -{ - class ChangePasscodeWindow : public LockWindow - { - public: - explicit ChangePasscodeWindow(app::Application *app); - bool onInput(const InputEvent &inputEvent) override; - void rebuild() override; - - protected: - void buildBottomBar() override; - void buildInterface() override; - void buildTitleBar() override; - void destroyInterface() override; - void onBeforeShow(ShowMode mode, SwitchData *data) override; - - virtual void processPasscode(); - virtual void setVisibleState(); - - ChangePasscodeAction changePasscodeAction; - std::unique_ptr lockBox = nullptr; - gui::Image *lockImage = nullptr; - Lock::LockState lockState{Lock::LockState::InputRequired}; - ChangePasscodeLockHandler lockHandler; - - std::string textForEnterCurrentPassword = "app_settings_security_type_current_passcode"; - std::string textForEnterNewPassword = "app_settings_security_enter_new_passcode"; - std::string testForConfirmPassword = "app_settings_security_confirm_new_passcode"; - std::string textForWrongPassword = "app_settings_security_wrong_passcode"; - }; -} /* namespace gui */ diff --git a/module-apps/application-settings-new/windows/SecurityMainWindow.cpp b/module-apps/application-settings-new/windows/SecurityMainWindow.cpp index a955da5bc2da542a16577be0e49762859c497762..1bae16d6947398623ada4ab7e4d31afd1a3acbd4 100644 --- a/module-apps/application-settings-new/windows/SecurityMainWindow.cpp +++ b/module-apps/application-settings-new/windows/SecurityMainWindow.cpp @@ -12,23 +12,24 @@ namespace gui { SecurityMainWindow::SecurityMainWindow(app::Application *app, app::settingsInterface::SecuritySettings *settings) - : BaseSettingsWindow(app, window::name::security), lockScreenPasscodeIsOn(app->isLockScreenPasscodeOn()), - securitySettings(settings) + : BaseSettingsWindow(app, window::name::security), securitySettings(settings) {} + void SecurityMainWindow::onBeforeShow(ShowMode mode, SwitchData *data) + { + isPhoneLockEnabled = application->isPhoneLockEnabled(); + BaseSettingsWindow::onBeforeShow(mode, data); + } + auto SecurityMainWindow::buildOptionsList() -> std::list