From 017e3d88dc687c85f3d0aeab3cddf255c5cc5d99 Mon Sep 17 00:00:00 2001 From: Przemyslaw Brudny Date: Wed, 12 May 2021 17:20:16 +0200 Subject: [PATCH] [EGD-5711] Finalized onBoarding application Finalized onBoarding application. Added no sim ready window and sim response window. Created iceBox widget. Fixed various onBoarding errors and misalignment. --- image/assets/lang/English.json | 6 +- image/user/db/settings_v2_002.sql | 2 +- module-apps/Application.cpp | 6 ++ module-apps/CMakeLists.txt | 1 + .../ApplicationOnBoarding.cpp | 43 ++++++++---- .../ApplicationOnBoarding.hpp | 1 + .../application-onboarding/CMakeLists.txt | 5 +- .../data/OnBoardingMessages.hpp | 12 ++++ .../OnBoardingFinalizeWindowPresenter.cpp | 17 +++++ .../OnBoardingFinalizeWindowPresenter.hpp | 41 ++++++++++++ .../ConfigurationSuccessfulDialogWindow.cpp | 17 ++++- .../windows/NoConfigurationDialogWindow.cpp | 18 ++++- .../OnBoardingChangeDateAndTimeWindow.cpp | 4 +- .../OnBoardingChangeDateAndTimeWindow.hpp | 8 +-- .../windows/OnBoardingDateAndTimeWindow.cpp | 14 +++- .../windows/OnBoardingLanguagesWindow.cpp | 15 ++++- .../windows/OnBoardingMainWindow.cpp | 52 --------------- .../windows/OnBoardingMainWindow.hpp | 23 ------- .../windows/OnBoardingSimSelectWindow.cpp | 24 ++++--- .../windows/OnBoardingSimSelectWindow.hpp | 9 ++- .../windows/StartConfigurationWindow.cpp | 9 +++ .../windows/UpdateDialogWindow.cpp | 15 ++--- .../windows/UpdateDialogWindow.hpp | 15 +++-- .../ApplicationSettings.cpp | 9 ++- .../ApplicationSettings.hpp | 2 + .../windows/DateAndTimeMainWindow.cpp | 4 +- .../windows/DateAndTimeMainWindow.hpp | 2 +- .../windows/NetworkWindow.cpp | 6 ++ .../windows/NetworkWindow.hpp | 4 +- module-apps/locks/data/LockStyle.hpp | 16 ----- .../locks/handlers/PhoneLockHandler.cpp | 4 ++ module-apps/locks/handlers/SimLockHandler.cpp | 65 +++++++++++++++++-- module-apps/locks/handlers/SimLockHandler.hpp | 15 ++++- module-apps/locks/widgets/PhoneLockBox.cpp | 2 +- module-apps/locks/windows/LockInputWindow.cpp | 26 ++------ module-apps/locks/windows/LockInputWindow.hpp | 4 +- module-apps/popups/CMakeLists.txt | 2 + module-apps/popups/Popups.cpp | 4 ++ module-apps/popups/Popups.hpp | 4 +- .../lock-popups/PhoneLockInputWindow.cpp | 8 ++- .../lock-popups/PhoneLockedInfoWindow.cpp | 2 - .../popups/lock-popups/SimInfoWindow.cpp | 6 ++ .../popups/lock-popups/SimLockInputWindow.cpp | 7 ++ .../popups/lock-popups/SimNotReadyWindow.cpp | 46 +++++++++++++ .../popups/lock-popups/SimNotReadyWindow.hpp | 22 +++++++ module-apps/widgets/IceBox.cpp | 30 +++++++++ module-apps/widgets/IceBox.hpp | 32 +++++++++ .../model/ApplicationManager.cpp | 35 +++++++++- .../model/ApplicationManager.hpp | 3 + .../agents/settings/SystemSettings.hpp | 1 + 50 files changed, 523 insertions(+), 195 deletions(-) create mode 100644 module-apps/application-onboarding/data/OnBoardingMessages.hpp create mode 100644 module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.cpp create mode 100644 module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.hpp delete mode 100644 module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp delete mode 100644 module-apps/application-onboarding/windows/OnBoardingMainWindow.hpp create mode 100644 module-apps/popups/lock-popups/SimNotReadyWindow.cpp create mode 100644 module-apps/popups/lock-popups/SimNotReadyWindow.hpp create mode 100644 module-apps/widgets/IceBox.cpp create mode 100644 module-apps/widgets/IceBox.hpp diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 6cd52c5438ab491e5f03b84b203cb9c0a2a798b3..d78a739ac088afeecd6b80a1493a4653ef409469 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -246,6 +246,8 @@ "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.
", "sim_card_pin_disabled": "SIM card pin disabled", "sim_card_pin_enabled": "SIM card pin enabled", + "sim_card_cant_connect": "Cannot connect to $SIM card.

Please insert card.
", + "sim_card_not_ready": "Waiting for Modem to start.

This may take a moment.
", "app_desktop_press_to_unlock": "Press Unlock and then #", "app_desktop_unread_messages": "Unread messages", "app_desktop_missed_calls": "Missed calls", @@ -318,8 +320,8 @@ "app_onboarding_title_configuration": "Configuration", "app_onboarding_title_update_info": "MuditaOS update", "app_onboarding_skip_confirm": "Sim setup is required for network connection. Skip the setup anyway? ", - "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_configuration_successful": "Your Mudita Pure

is ready to use.
", + "app_onboarding_no_configuration": "Your Mudita Pure has not been

configured. You can go to

Settings to set it up.
", "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_settings_title_main": "Advanced", "app_settings_title_main_new": "Settings", diff --git a/image/user/db/settings_v2_002.sql b/image/user/db/settings_v2_002.sql index d8669e52fc5e594d79ae380885b1fb26ee491c22..1a6bee46de8c4d333ca06ed6dc181f5af440b769 100644 --- a/image/user/db/settings_v2_002.sql +++ b/image/user/db/settings_v2_002.sql @@ -19,7 +19,7 @@ INSERT OR IGNORE INTO settings_tab (path, value) VALUES ('gs_display_language', 'English'), ('gs_input_language', 'English'), ('gs_eula_accepted', '0'), - ('gs_onboarding_done', '0'), + ('gs_onboarding_done', '1'), ('gs_usb_security', '1'), ('gs_usb_devices', ''), ('gs_os_update_version', '0.00.0'), diff --git a/module-apps/Application.cpp b/module-apps/Application.cpp index f42bd897105186ed795f8faeef7f0fda58fc546b..12e3f23916fc648a83be1593dacda391ee1ef14a 100644 --- a/module-apps/Application.cpp +++ b/module-apps/Application.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -774,6 +775,7 @@ namespace app break; case ID::PhoneLock: case ID::PhoneLockInput: + case ID::PhoneLockInfo: case ID::PhoneLockChangeInfo: windowsFactory.attach(window::phone_lock_window, [](Application *app, const std::string &name) { return std::make_unique(app, window::phone_lock_window); @@ -796,12 +798,16 @@ namespace app break; case ID::SimLock: case ID::SimInfo: + case ID::SimNotReady: windowsFactory.attach(window::sim_unlock_window, [](Application *app, const std::string &name) { return std::make_unique(app, window::sim_unlock_window); }); windowsFactory.attach(window::sim_info_window, [](Application *app, const std::string &name) { return std::make_unique(app, window::sim_info_window); }); + windowsFactory.attach(window::sim_not_ready_window, [](Application *app, const std::string &name) { + return std::make_unique(app, window::sim_not_ready_window); + }); break; } } diff --git a/module-apps/CMakeLists.txt b/module-apps/CMakeLists.txt index 4d7f1865722e60bbd8339cae7229d6e6ea577b8f..6b56777d814e038add8e1dbf81aef9aeac12322d 100644 --- a/module-apps/CMakeLists.txt +++ b/module-apps/CMakeLists.txt @@ -37,6 +37,7 @@ set( SOURCES "widgets/ActiveIconFactory.cpp" "widgets/TextWithIconsWidget.cpp" "widgets/DateWidget.cpp" + "widgets/IceBox.cpp" "widgets/TimeWidget.cpp" "widgets/WidgetsUtils.cpp" "notifications/NotificationListItem.cpp" diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.cpp b/module-apps/application-onboarding/ApplicationOnBoarding.cpp index 9f33e978b1ec516e256914ba7b1770025c0c3d3c..af24c8f1e1bfb13edd6b60967b78b1521ace5c32 100644 --- a/module-apps/application-onboarding/ApplicationOnBoarding.cpp +++ b/module-apps/application-onboarding/ApplicationOnBoarding.cpp @@ -5,7 +5,7 @@ #include "ApplicationOnBoarding.hpp" -#include "windows/OnBoardingMainWindow.hpp" +#include "data/OnBoardingMessages.hpp" #include "windows/StartConfigurationWindow.hpp" #include "windows/OnBoardingLanguagesWindow.hpp" #include "windows/EULALicenseWindow.hpp" @@ -23,6 +23,8 @@ #include #include #include +#include +#include namespace app { @@ -42,6 +44,7 @@ namespace app bus.channels.push_back(sys::BusChannel::ServiceDBNotifications); bus.channels.push_back(sys::BusChannel::PhoneLockChanges); + bus.channels.push_back(sys::BusChannel::ServiceCellularNotifications); } // Invoked upon receiving data message @@ -85,12 +88,27 @@ namespace app return sys::msgHandled(); }); + connect(typeid(cellular::msg::notification::SimReady), [&](sys::Message *msg) { + if (getCurrentWindow()->getName() == gui::window::name::onBoarding_sim_select) { + phoneLockSubject.setPhoneLock(); + return sys::msgHandled(); + } + return sys::msgNotHandled(); + }); + return ret; } void ApplicationOnBoarding::acceptEULA() { - settings->setValue(settings::SystemProperties::eulaAccepted, "1", settings::SettingsScope::Global); + settings->setValue( + settings::SystemProperties::eulaAccepted, utils::to_string(true), settings::SettingsScope::Global); + } + + void ApplicationOnBoarding::finalizeOnBoarding() + { + bus.sendUnicast(std::make_shared(), + app::manager::ApplicationManager::ServiceName); } sys::ReturnCodes ApplicationOnBoarding::DeinitHandler() @@ -106,9 +124,6 @@ namespace app void ApplicationOnBoarding::createUserInterface() { windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) { - return std::make_unique(app); - }); - windowsFactory.attach(gui::window::name::onBoarding_languages, [](Application *app, const std::string &name) { return std::make_unique(app); }); windowsFactory.attach(gui::window::name::onBoarding_start_configuration, @@ -122,7 +137,8 @@ namespace app return std::make_unique(app, std::move(presenter)); }); windowsFactory.attach(gui::window::name::onBoarding_sim_select, [](Application *app, const std::string &name) { - return std::make_unique(app, gui::window::name::onBoarding_sim_select); + return std::make_unique( + app, gui::window::name::onBoarding_sim_select); }); windowsFactory.attach(gui::window::name::onBoarding_no_sim_selected, [](Application *app, const std::string &name) { @@ -136,8 +152,10 @@ namespace app [](Application *app, const std::string &name) { return std::make_unique(app); }); - windowsFactory.attach(gui::window::name::onBoarding_update, [](Application *app, const std::string &name) { - return std::make_unique(app); + windowsFactory.attach(gui::window::name::onBoarding_update, [&](Application *app, const std::string &name) { + auto presenter = + std::make_unique([&]() { finalizeOnBoarding(); }); + return std::make_unique(app, std::move(presenter)); }); windowsFactory.attach(gui::window::name::onBoarding_skip, [](Application *app, const std::string &name) { return std::make_unique(app); @@ -148,7 +166,7 @@ namespace app }); windowsFactory.attach(gui::window::name::onBoarding_change_date_and_time, [](Application *app, const std::string &name) { - return std::make_unique(app); + return std::make_unique(app); }); windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) { return std::make_unique(app); @@ -157,8 +175,11 @@ namespace app return std::make_unique(app, gui::window::name::dialog_confirm); }); - attachPopups( - {gui::popup::ID::Volume, gui::popup::ID::Tethering, gui::popup::ID::PhoneModes, gui::popup::ID::PhoneLock}); + attachPopups({gui::popup::ID::Volume, + gui::popup::ID::Tethering, + gui::popup::ID::PhoneModes, + gui::popup::ID::PhoneLock, + gui::popup::ID::SimLock}); } void ApplicationOnBoarding::destroyUserInterface() diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.hpp b/module-apps/application-onboarding/ApplicationOnBoarding.hpp index e0ec8cac864b272ccb650d3c823567eb89221ef4..742ee5782d93e8432cdf9168c85aeeac01b9b5c8 100644 --- a/module-apps/application-onboarding/ApplicationOnBoarding.hpp +++ b/module-apps/application-onboarding/ApplicationOnBoarding.hpp @@ -38,6 +38,7 @@ namespace app sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override; void acceptEULA(); + void finalizeOnBoarding(); void createUserInterface() override; void destroyUserInterface() override; diff --git a/module-apps/application-onboarding/CMakeLists.txt b/module-apps/application-onboarding/CMakeLists.txt index fa692904c712c4b19fb6593f972890a883c30c5f..ac753171c6fea9ae4950db261fb61c6d02a1d4e7 100644 --- a/module-apps/application-onboarding/CMakeLists.txt +++ b/module-apps/application-onboarding/CMakeLists.txt @@ -12,11 +12,11 @@ target_sources(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_LIST_DIR}/ApplicationOnBoarding.cpp" - "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingMainWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/StartConfigurationWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingLanguagesWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/EULALicenseWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/presenter/EULALicenseWindowPresenter.cpp" + "${CMAKE_CURRENT_LIST_DIR}/presenter/OnBoardingFinalizeWindowPresenter.cpp" "${CMAKE_CURRENT_LIST_DIR}/model/EULARepository.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/ConfigurationSuccessfulDialogWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/windows/NoConfigurationDialogWindow.cpp" @@ -28,12 +28,13 @@ target_sources(${PROJECT_NAME} "${CMAKE_CURRENT_LIST_DIR}/windows/NoSimSelectedDialogWindow.cpp" PUBLIC "${CMAKE_CURRENT_LIST_DIR}/ApplicationOnBoarding.hpp" - "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingMainWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/StartConfigurationWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingLanguagesWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/data/OnBoardingSwitchData.hpp" + "${CMAKE_CURRENT_LIST_DIR}/data/OnBoardingMessages.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/EULALicenseWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/presenter/EULALicenseWindowPresenter.hpp" + "${CMAKE_CURRENT_LIST_DIR}/presenter/OnBoardingFinalizeWindowPresenter.hpp" "${CMAKE_CURRENT_LIST_DIR}/model/EULARepository.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/ConfigurationSuccessfulDialogWindow.hpp" "${CMAKE_CURRENT_LIST_DIR}/windows/NoConfigurationDialogWindow.hpp" diff --git a/module-apps/application-onboarding/data/OnBoardingMessages.hpp b/module-apps/application-onboarding/data/OnBoardingMessages.hpp new file mode 100644 index 0000000000000000000000000000000000000000..c314734196a25f48acdcc9a72f843920d98209d9 --- /dev/null +++ b/module-apps/application-onboarding/data/OnBoardingMessages.hpp @@ -0,0 +1,12 @@ +// 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 + +namespace app::onBoarding +{ + class FinalizeOnBoarding : public sys::DataMessage + {}; +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.cpp b/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c664ec4408cb33f2719a1ac27833905d2c8f7e4e --- /dev/null +++ b/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.cpp @@ -0,0 +1,17 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "OnBoardingFinalizeWindowPresenter.hpp" + +namespace app::onBoarding +{ + OnBoardingFinalizeWindowPresenter::OnBoardingFinalizeWindowPresenter(Function finalizeOnBoarding) + : finalizeOnBoardingApp(std::move(finalizeOnBoarding)) + {} + + void OnBoardingFinalizeWindowPresenter::finalizeOnBoarding() + { + finalizeOnBoardingApp(); + } + +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.hpp b/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.hpp new file mode 100644 index 0000000000000000000000000000000000000000..ce0dee13d53bbd0643d94ca14df94ae3f0d87154 --- /dev/null +++ b/module-apps/application-onboarding/presenter/OnBoardingFinalizeWindowPresenter.hpp @@ -0,0 +1,41 @@ +// 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 "functional" +#include "string" +#include "BasePresenter.hpp" + +using Function = std::function; + +namespace app::onBoarding +{ + class OnBoardingFinalizeContract + { + public: + class View + { + public: + virtual ~View() noexcept = default; + }; + class Presenter : public BasePresenter + { + public: + ~Presenter() noexcept override = default; + + virtual void finalizeOnBoarding() = 0; + }; + }; + + class OnBoardingFinalizeWindowPresenter : public OnBoardingFinalizeContract::Presenter + { + public: + explicit OnBoardingFinalizeWindowPresenter(Function finalizeOnBoarding); + + void finalizeOnBoarding() override; + + private: + std::function finalizeOnBoardingApp; + }; +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp b/module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp index 271232e3d91067aa3924f72b3d72f83e098e426d..a94aac0bf54105467a30c40e35e88a5b03099069 100644 --- a/module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp +++ b/module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp @@ -3,12 +3,14 @@ #include "ConfigurationSuccessfulDialogWindow.hpp" -#include -#include - #include #include #include +#include +#include + +#include +#include namespace app::onBoarding { @@ -17,6 +19,8 @@ namespace app::onBoarding { bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::start)); bottomBar->setActive(gui::BottomBar::Side::RIGHT, false); + + new gui::IceBox(this); } bool ConfigurationSuccessfulDialogWindow::onInput(const gui::InputEvent &inputEvent) @@ -37,6 +41,13 @@ namespace app::onBoarding if (inputEvent.is(gui::KeyCode::KEY_RF)) { return true; } + + if (inputEvent.is(gui::KeyCode::KEY_LEFT)) { + app::manager::Controller::sendAction(application, + app::manager::actions::EmergencyDial, + std::make_unique(), + app::manager::OnSwitchBehaviour::RunInBackground); + } } return AppWindow::onInput(inputEvent); } diff --git a/module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp b/module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp index 94685aae90291fea03d5689e3ac611ac2fd9060d..122465c48c40a3d4bad12fe65714e070e80317f3 100644 --- a/module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp +++ b/module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp @@ -3,12 +3,14 @@ #include "NoConfigurationDialogWindow.hpp" -#include -#include - #include #include #include +#include +#include + +#include +#include namespace app::onBoarding { @@ -17,6 +19,8 @@ namespace app::onBoarding { bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::start)); bottomBar->setActive(gui::BottomBar::Side::RIGHT, false); + + new gui::IceBox(this); } bool NoConfigurationDialogWindow::onInput(const gui::InputEvent &inputEvent) @@ -37,6 +41,14 @@ namespace app::onBoarding if (inputEvent.is(gui::KeyCode::KEY_RF)) { return true; } + + if (inputEvent.is(gui::KeyCode::KEY_LEFT)) { + app::manager::Controller::sendAction(application, + app::manager::actions::EmergencyDial, + std::make_unique(), + app::manager::OnSwitchBehaviour::RunInBackground); + return true; + } } return AppWindow::onInput(inputEvent); } diff --git a/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp index 90c9fc4be4ff7ddf0c297ec29e84a47d70a8f8d7..30caa3b86cff1e91f5eb0b6d1d87bfda0c170a73 100644 --- a/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp +++ b/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp @@ -5,7 +5,7 @@ #include #include -namespace gui +namespace app::onBoarding { OnBoardingChangeDateAndTimeWindow::OnBoardingChangeDateAndTimeWindow(app::Application *app) : ChangeDateAndTimeWindow(app, gui::window::name::onBoarding_change_date_and_time) @@ -22,4 +22,4 @@ namespace gui return ChangeDateAndTimeWindow::onInput(inputEvent); } -} /* namespace gui */ +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp b/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp index 17a2b8b3101882c47d5a83a1fb2c3a4d64d05485..8ff9dd3bfa949a2f5a25c0083d1666ca1fee67dd 100644 --- a/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp +++ b/module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp @@ -6,13 +6,13 @@ #include #include -namespace gui +namespace app::onBoarding { - class OnBoardingChangeDateAndTimeWindow : public ChangeDateAndTimeWindow + class OnBoardingChangeDateAndTimeWindow : public gui::ChangeDateAndTimeWindow { public: explicit OnBoardingChangeDateAndTimeWindow(app::Application *app); - bool onInput(const InputEvent &inputEvent) override; + bool onInput(const gui::InputEvent &inputEvent) override; }; -} /* namespace gui */ +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp index 88254d99065c0f9178da8611c87e8180da297fa4..11bf63cb0f9aad5aca245241e3e03baf79bdd2c2 100644 --- a/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp +++ b/module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp @@ -8,11 +8,13 @@ #include #include #include -#include +#include +#include namespace app::onBoarding { - OnBoardingDateAndTimeWindow::OnBoardingDateAndTimeWindow(app::Application *app) : DateAndTimeMainWindow(app) + OnBoardingDateAndTimeWindow::OnBoardingDateAndTimeWindow(app::Application *app) + : DateAndTimeMainWindow(app, gui::window::name::onBoarding_date_and_time) { changeDateAndTimeWindow = gui::window::name::onBoarding_change_date_and_time; } @@ -25,6 +27,7 @@ namespace app::onBoarding void OnBoardingDateAndTimeWindow::onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) { DateAndTimeMainWindow::onBeforeShow(mode, data); + new gui::IceBox(this); bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::save)); bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(style::strings::common::Switch)); @@ -48,6 +51,13 @@ namespace app::onBoarding std::move(metaData)); return true; } + else if (inputEvent.isShortRelease(gui::KeyCode::KEY_LEFT)) { + app::manager::Controller::sendAction(application, + app::manager::actions::EmergencyDial, + std::make_unique(), + app::manager::OnSwitchBehaviour::RunInBackground); + return true; + } else { return DateAndTimeMainWindow::onInput(inputEvent); } diff --git a/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp index e77ba2d787d4468570f8365e9911736125326c39..cde7f33e30227c55e347badac70737d0dae3849a 100644 --- a/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp +++ b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp @@ -1,9 +1,12 @@ // Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md -#include "application-onboarding/ApplicationOnBoarding.hpp" #include "OnBoardingLanguagesWindow.hpp" +#include + +#include #include +#include namespace app::onBoarding { @@ -14,6 +17,7 @@ namespace app::onBoarding void OnBoardingLanguagesWindow::onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) { bottomBar->setActive(gui::BottomBar::Side::RIGHT, false); + new gui::IceBox(this); LanguagesWindow::onBeforeShow(mode, data); } @@ -23,8 +27,15 @@ namespace app::onBoarding if (inputEvent.isShortRelease(gui::KeyCode::KEY_RF)) { return true; } + else if (inputEvent.isShortRelease(gui::KeyCode::KEY_LEFT)) { + app::manager::Controller::sendAction(application, + app::manager::actions::EmergencyDial, + std::make_unique(), + app::manager::OnSwitchBehaviour::RunInBackground); + return true; + } else { return LanguagesWindow::onInput(inputEvent); } } -} /* namespace gui */ +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp deleted file mode 100644 index d78dd860ef5584fb53d9fa5c78e9d4ae937b7ca8..0000000000000000000000000000000000000000 --- a/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp +++ /dev/null @@ -1,52 +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 -#include - -#include - -#include - -#include "module-apps/application-onboarding/data/OnBoardingSwitchData.hpp" -#include "OnBoardingMainWindow.hpp" - -namespace app::onBoarding -{ - OnBoardingMainWindow::OnBoardingMainWindow(app::Application *app) : AppWindow(app, gui::name::window::main_window) - { - buildInterface(); - } - - void OnBoardingMainWindow::buildInterface() - { - AppWindow::buildInterface(); - - bottomBar->setActive(gui::BottomBar::Side::CENTER, true); - bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::start)); - - new gui::Image(this, 0, 0, 0, 0, "logo"); - } - - gui::top_bar::Configuration OnBoardingMainWindow::configureTopBar(gui::top_bar::Configuration appConfiguration) - { - appConfiguration.setIndicator(gui::top_bar::Indicator::Time, false); - appConfiguration.setIndicator(gui::top_bar::Indicator::Battery, false); - appConfiguration.setIndicator(gui::top_bar::Indicator::SimCard, false); - appConfiguration.setIndicator(gui::top_bar::Indicator::Signal, false); - return appConfiguration; - } - - bool OnBoardingMainWindow::onInput(const gui::InputEvent &inputEvent) - { - if (inputEvent.isShortRelease(gui::KeyCode::KEY_ENTER)) { - application->switchWindow(gui::window::name::onBoarding_languages, - gui::ShowMode::GUI_SHOW_INIT, - std::make_unique()); - - return true; - } - return AppWindow::onInput(inputEvent); - } - -} // namespace gui diff --git a/module-apps/application-onboarding/windows/OnBoardingMainWindow.hpp b/module-apps/application-onboarding/windows/OnBoardingMainWindow.hpp deleted file mode 100644 index aa48c9ae41409840b6e3124d4982641d53ea2ecc..0000000000000000000000000000000000000000 --- a/module-apps/application-onboarding/windows/OnBoardingMainWindow.hpp +++ /dev/null @@ -1,23 +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 - -namespace app::onBoarding -{ - class OnBoardingMainWindow : public gui::AppWindow - { - public: - explicit OnBoardingMainWindow(app::Application *app); - - bool onInput(const gui::InputEvent &inputEvent) override; - - void buildInterface() override; - gui::top_bar::Configuration configureTopBar(gui::top_bar::Configuration appConfiguration) override; - }; -} // namespace gui diff --git a/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp index 719de00bc8293ce1ab0ce3dad606f988696ebf79..96dc6bf3a97f6407935f8a78f67d646f8c3f0eca 100644 --- a/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp +++ b/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp @@ -7,9 +7,11 @@ #include #include +#include +#include #include -namespace gui +namespace app::onBoarding { OnBoardingSimSelectWindow::OnBoardingSimSelectWindow(app::Application *app, std::string name) : BaseSettingsWindow(app, std::move(name)) @@ -25,6 +27,8 @@ namespace gui bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back)); bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip)); + new gui::IceBox(this); + descriptionText = new gui::Text(this, style::window::default_left_margin, style::onboarding::sim_select::description_y, @@ -33,17 +37,12 @@ namespace gui descriptionText->setFont(style::window::font::medium); descriptionText->setAlignment( gui::Alignment{gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Top}); - descriptionText->setEdges(RectangleEdge::Top); + descriptionText->setEdges(gui::RectangleEdge::Top); descriptionText->setPenWidth(style::window::default_border_rect_no_focus); - descriptionText->setPadding(Padding(0, style::onboarding::sim_select::description_top_padding, 0, 0)); + descriptionText->setPadding(gui::Padding(0, style::onboarding::sim_select::description_top_padding, 0, 0)); descriptionText->setRichText(utils::translate("app_onboarding_select_sim_description")); } - void OnBoardingSimSelectWindow::onBeforeShow(ShowMode mode, SwitchData *data) - { - refreshOptionsList(); - } - auto OnBoardingSimSelectWindow::buildOptionsList() -> std::list { std::list options; @@ -97,6 +96,13 @@ namespace gui gui::window::name::onBoarding_skip, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData)); return true; } + else if (inputEvent.isShortRelease(gui::KeyCode::KEY_LEFT)) { + app::manager::Controller::sendAction(application, + app::manager::actions::EmergencyDial, + std::make_unique(), + app::manager::OnSwitchBehaviour::RunInBackground); + return true; + } return AppWindow::onInput(inputEvent); } -} /* namespace gui */ +} // namespace app::onBoarding diff --git a/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp b/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp index 23c19b2e4c5183b0af2ceec09f141febaaac7533..34d8aa0c7733830dc7631484f912ae953e0a9353 100644 --- a/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp +++ b/module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp @@ -6,9 +6,9 @@ #include #include -namespace gui +namespace app::onBoarding { - class OnBoardingSimSelectWindow : public BaseSettingsWindow + class OnBoardingSimSelectWindow : public gui::BaseSettingsWindow { public: explicit OnBoardingSimSelectWindow(app::Application *app, std::string name); @@ -17,8 +17,7 @@ namespace gui private: gui::Text *descriptionText = nullptr; - auto buildOptionsList() -> std::list