",
"app_options_contact_details": "Contact details",
"app_options_contact_add": "Add to contacts",
"app_options_contact_edit": "Edit Contact",
-
"app_notes_title_main": "Notes",
"app_notes_edit_new_note": "Edit/New Note",
"app_notes_copy_text": "Copy text",
@@ -157,7 +154,6 @@
"app_notes_note_delete_confirmation": "Do you really want to delete this note?",
"app_notes_no_notes": "No notes yet.Press left arrow to add new.
",
"app_notes_search_no_results": "No notes found.",
-
"app_calllog_title_main": "Calls",
"app_calllog_new_note": "New Note",
"app_calllog_save": "SAVE",
@@ -173,7 +169,6 @@
"app_calllog_options_title": "Options",
"app_calllog_options_delete_call": "Delete call",
"app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?",
-
"app_desktop_unlock": "UNLOCK",
"app_desktop_lock": "LOCK",
"app_desktop_menu": "MENU",
@@ -182,7 +177,7 @@
"app_desktop_info_mmi_none_specified_failed": "Operation failed",
"app_desktop_info_mmi_none_specified_success": "Operation successful",
"app_desktop_info_mmi_common_failed": "failed",
- "app_desktop_info_mmi_common_no_meassage" :"not",
+ "app_desktop_info_mmi_common_no_meassage": "not",
"app_desktop_info_mmi_common_mmi_not_supported": "not supported",
"app_desktop_info_mmi_common_enabled": "enabled",
"app_desktop_info_mmi_common_disabled": "disabled",
@@ -192,7 +187,7 @@
"app_desktop_info_mmi_common_sync": "sync",
"app_desktop_info_mmi_common_async": "async",
"app_desktop_info_mmi_common_all_disabled": "all disabled",
- "app_desktop_info_mmi_common_deactivated":"deactivated",
+ "app_desktop_info_mmi_common_deactivated": "deactivated",
"app_desktop_info_mmi_common_activated": "activated",
"app_desktop_info_mmi_common_query": "query",
"app_desktop_info_mmi_clir_according_to_subscription": "CLIR according to subscription",
@@ -221,12 +216,12 @@
"app_desktop_info_mmi_clip_unknown": "CLIP unknown",
"app_desktop_info_mmi_call_waiting_activated": " call waiting activated",
"app_desktop_info_mmi_call_waiting_deactivated": "call waiting deactivated",
- "app_desktop_info_mmi_call_forwarding" : "Call forwarding",
- "app_desktop_info_mmi_call_barring" : "Call barring",
- "app_desktop_info_mmi_call_waiting" : "Call waiting",
- "app_desktop_info_mmi_clip" : "Caller ID displayed (CLIP)",
- "app_desktop_info_mmi_clir" : "Caller ID suppressed (CLIR)",
- "app_desktop_info_mmi_imei" : "IMEI (MEID)",
+ "app_desktop_info_mmi_call_forwarding": "Call forwarding",
+ "app_desktop_info_mmi_call_barring": "Call barring",
+ "app_desktop_info_mmi_call_waiting": "Call waiting",
+ "app_desktop_info_mmi_clip": "Caller ID displayed (CLIP)",
+ "app_desktop_info_mmi_clir": "Caller ID suppressed (CLIR)",
+ "app_desktop_info_mmi_imei": "IMEI (MEID)",
"app_desktop_info_mmi_result_success": "Success",
"app_desktop_info_mmi_result_failed": "Failed",
"app_desktop_header_sim_setup": "$SIM setup",
@@ -275,7 +270,6 @@
"app_desktop_clear": "CLEAR",
"app_desktop_clear_all": "CLEAR ALL",
"app_desktop_replay": "REPLY",
-
"app_call_call": "CALL",
"app_call_clear": "CLEAR",
"app_call_reject": "REJECT",
@@ -310,6 +304,7 @@
"app_messages_thread_not_sent": "Not sent: ",
"app_messages_thread_from_this": "From this message",
"app_messages_thread_you": "You: ",
+ "app_onboarding_start_configuration": "Hello!
Let's configure your Mudita Pure.",
"app_settings_title_main": "Settings",
"app_settings_title_main_new": "Settings New",
"app_settings_bt": "Bluetooth",
@@ -390,8 +385,8 @@
"app_settings_network_sim1": "Sim1",
"app_settings_network_sim2": "Sim2",
"app_settings_network_sim_none": "No Sim",
- "app_settings_network_voice_over_lte" : "VoLTE (experimental)",
- "app_settings_network_apn_settings" : "APN settings",
+ "app_settings_network_voice_over_lte": "VoLTE (experimental)",
+ "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",
@@ -402,11 +397,11 @@
"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_apn_settings_no_apns" : "No APNs yet.Press left arrow to add new.
",
- "app_settings_apn_options" : "Options",
- "app_settings_apn_options_delete" : "Delete",
- "app_settings_apn_options_edit" : "Edit",
- "app_settings_apn_options_set_as_default" : "Set as default",
+ "app_settings_apn_settings_no_apns": "No APNs yet.Press left arrow to add new.
",
+ "app_settings_apn_options": "Options",
+ "app_settings_apn_options_delete": "Delete",
+ "app_settings_apn_options_edit": "Edit",
+ "app_settings_apn_options_set_as_default": "Set as default",
"app_settings_new_edit_apn": "New/Edit APN",
"app_settings_apn_name": "Name",
"app_settings_apn_APN": "APN",
@@ -414,7 +409,7 @@
"app_settings_apn_password": "Password",
"app_settings_apn_authtype": "Authentication type",
"app_settings_apn_apntype": "APN Type",
- "app_settings_apn_apnprotocol" : "APN Protocol",
+ "app_settings_apn_apnprotocol": "APN Protocol",
"app_settings_title_color_test": "Display available colors",
"app_settings_toolbar_reset": "RESET",
"app_phonebook_title_main": "Contacts",
diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json
index 73c3eded6..46a7e791d 100644
--- a/image/assets/lang/Polski.json
+++ b/image/assets/lang/Polski.json
@@ -102,6 +102,7 @@
"app_call_is_calling": "dzwoni",
"app_call_call_ended": "zakończono",
"app_call_contact": "KONTAKT",
+ "app_onboarding_start_configuration": "Witaj!
Zacznijmy konfigurację Mudita Pure.",
"app_settings_title_main": "Ustawienia",
"app_settings_bt": "Bluetooth",
"app_settings_date_and_time": "Data i Czas",
diff --git a/module-apps/CMakeLists.txt b/module-apps/CMakeLists.txt
index dc701c1de..c3fec373b 100644
--- a/module-apps/CMakeLists.txt
+++ b/module-apps/CMakeLists.txt
@@ -51,6 +51,7 @@ set(APPLICATIONS
settings-new
call
notes
+ onboarding
phonebook
messages
calllog
diff --git a/module-apps/application-notes/ApplicationNotes.cpp b/module-apps/application-notes/ApplicationNotes.cpp
index f5ca5050d..a50b75f4c 100644
--- a/module-apps/application-notes/ApplicationNotes.cpp
+++ b/module-apps/application-notes/ApplicationNotes.cpp
@@ -19,6 +19,7 @@
#include
#include
#include
+#include
namespace app
{
@@ -28,7 +29,7 @@ namespace app
} // namespace
ApplicationNotes::ApplicationNotes(std::string name, std::string parent, StartInBackground startInBackground)
- : Application(name, parent, startInBackground, NotesStackSize)
+ : Application(std::move(name), std::move(parent), startInBackground, NotesStackSize)
{
bus.channels.push_back(sys::BusChannel::ServiceDBNotifications);
}
@@ -43,8 +44,7 @@ namespace app
}
if (msgl->messageType == MessageType::DBServiceNotification) {
- auto msg = dynamic_cast(msgl);
- if (msg != nullptr) {
+ if (auto msg = dynamic_cast(msgl); msg != nullptr) {
// window-specific actions
if (msg->interface == db::Interface::Name::Notes) {
for (auto &[name, window] : windowsStack) {
diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.cpp b/module-apps/application-onboarding/ApplicationOnBoarding.cpp
new file mode 100644
index 000000000..5f18b099b
--- /dev/null
+++ b/module-apps/application-onboarding/ApplicationOnBoarding.cpp
@@ -0,0 +1,99 @@
+// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
+
+#include
+
+#include "ApplicationOnBoarding.hpp"
+
+#include "windows/OnBoardingMainWindow.hpp"
+#include "windows/StartConfigurationWindow.hpp"
+#include "windows/OnBoardingLanguagesWindow.hpp"
+
+#include
+#include
+#include
+
+namespace app
+{
+ namespace
+ {
+ constexpr auto OnBoardingStackSize = 4096U;
+ } // namespace
+
+ ApplicationOnBoarding::ApplicationOnBoarding(std::string name,
+ std::string parent,
+ StartInBackground startInBackground)
+ : Application(std::move(name), std::move(parent), startInBackground, OnBoardingStackSize)
+ {
+ using namespace gui::top_bar;
+ topBarManager->enableIndicators({Indicator::Signal,
+ Indicator::Time,
+ Indicator::Battery,
+ Indicator::SimCard,
+ Indicator::NetworkAccessTechnology});
+
+ bus.channels.push_back(sys::BusChannel::ServiceDBNotifications);
+ }
+
+ // Invoked upon receiving data message
+ sys::MessagePointer ApplicationOnBoarding::DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp)
+ {
+ auto retMsg = Application::DataReceivedHandler(msgl);
+ // if message was handled by application's template there is no need to process further.
+ if (reinterpret_cast(retMsg.get())->retCode == sys::ReturnCodes::Success) {
+ return retMsg;
+ }
+
+ return msgNotHandled();
+ }
+
+ sys::ReturnCodes ApplicationOnBoarding::InitHandler()
+ {
+ const auto ret = Application::InitHandler();
+ if (ret != sys::ReturnCodes::Success) {
+ return ret;
+ }
+
+ createUserInterface();
+ setActiveWindow(gui::name::window::main_window);
+
+ connect(typeid(manager::GetCurrentDisplayLanguageResponse), [&](sys::Message *msg) {
+ if (gui::window::name::onBoarding_languages == getCurrentWindow()->getName()) {
+ switchWindow(gui::window::name::onBoarding_start_configuration, nullptr);
+ return msgHandled();
+ }
+ else {
+ return msgNotHandled();
+ }
+ });
+
+ return ret;
+ }
+
+ sys::ReturnCodes ApplicationOnBoarding::DeinitHandler()
+ {
+ return sys::ReturnCodes::Success;
+ }
+
+ sys::ReturnCodes ApplicationOnBoarding::SwitchPowerModeHandler(const sys::ServicePowerMode mode)
+ {
+ return sys::ReturnCodes::Success;
+ }
+
+ 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,
+ [](Application *app, const std::string &name) {
+ return std::make_unique(app);
+ });
+ }
+
+ void ApplicationOnBoarding::destroyUserInterface()
+ {}
+} // namespace app
diff --git a/module-apps/application-onboarding/ApplicationOnBoarding.hpp b/module-apps/application-onboarding/ApplicationOnBoarding.hpp
new file mode 100644
index 000000000..97ea91544
--- /dev/null
+++ b/module-apps/application-onboarding/ApplicationOnBoarding.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 "Application.hpp"
+
+namespace gui::window::name
+{
+ inline constexpr auto onBoarding_languages = "OnBoardingLanguages";
+ inline constexpr auto onBoarding_start_configuration = "OnBoardingStartingConfiguration";
+} // namespace gui::window::name
+
+namespace app
+{
+ inline constexpr auto name_onboarding = "ApplicationOnBoarding";
+
+ class ApplicationOnBoarding : public Application
+ {
+ public:
+ explicit ApplicationOnBoarding(std::string name = name_onboarding,
+ std::string parent = {},
+ StartInBackground startInBackground = {false});
+
+ sys::MessagePointer DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp) override;
+ sys::ReturnCodes InitHandler() override;
+ sys::ReturnCodes DeinitHandler() override;
+ sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override;
+
+ void createUserInterface() override;
+ void destroyUserInterface() override;
+ };
+
+ template <> struct ManifestTraits
+ {
+ static auto GetManifest() -> manager::ApplicationManifest
+ {
+ return {{manager::actions::Launch}};
+ }
+ };
+} // namespace app
diff --git a/module-apps/application-onboarding/CMakeLists.txt b/module-apps/application-onboarding/CMakeLists.txt
new file mode 100644
index 000000000..a31755e5c
--- /dev/null
+++ b/module-apps/application-onboarding/CMakeLists.txt
@@ -0,0 +1,28 @@
+include_directories( ${CMAKE_PROJECT_NAME}
+ PUBLIC
+ "${CMAKE_CURRENT_LIST_DIR}"
+)
+
+include_directories( ${PROJECT_NAME}
+ PUBLIC
+ "${CMAKE_CURRENT_LIST_DIR}"
+)
+
+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"
+ 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"
+)
+target_include_directories(${PROJECT_NAME}
+ PRIVATE
+ service-db
+)
diff --git a/module-apps/application-onboarding/data/OnBoardingSwitchData.hpp b/module-apps/application-onboarding/data/OnBoardingSwitchData.hpp
new file mode 100644
index 000000000..c1b4ffb4b
--- /dev/null
+++ b/module-apps/application-onboarding/data/OnBoardingSwitchData.hpp
@@ -0,0 +1,19 @@
+// 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 gui
+{
+
+ class OnBoardingSwitchData : public gui::SwitchData
+ {
+ public:
+ OnBoardingSwitchData() : SwitchData("onBoardingSwitchData")
+ {}
+ };
+} // namespace gui
diff --git a/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp
new file mode 100644
index 000000000..3ba8af782
--- /dev/null
+++ b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp
@@ -0,0 +1,30 @@
+// 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
+
+namespace gui
+{
+ OnBoardingLanguagesWindow::OnBoardingLanguagesWindow(app::Application *app)
+ : LanguagesWindow(app, window::name::onBoarding_languages)
+ {}
+
+ void OnBoardingLanguagesWindow::onBeforeShow(ShowMode mode, SwitchData *data)
+ {
+ bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
+
+ LanguagesWindow::onBeforeShow(mode, data);
+ }
+
+ bool OnBoardingLanguagesWindow::onInput(const gui::InputEvent &inputEvent)
+ {
+ if (inputEvent.isShortPress() && inputEvent.is(KeyCode::KEY_RF)) {
+ return true;
+ }
+ else {
+ return LanguagesWindow::onInput(inputEvent);
+ }
+ }
+} /* namespace gui */
diff --git a/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp
new file mode 100644
index 000000000..587aaea53
--- /dev/null
+++ b/module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp
@@ -0,0 +1,19 @@
+// 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 gui
+{
+ class OnBoardingLanguagesWindow : public LanguagesWindow
+ {
+ public:
+ explicit OnBoardingLanguagesWindow(app::Application *app);
+
+ private:
+ void onBeforeShow(ShowMode mode, SwitchData *data) override;
+ bool onInput(const gui::InputEvent &inputEvent) override;
+ };
+} /* namespace gui */
diff --git a/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp b/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp
new file mode 100644
index 000000000..84a3d3a48
--- /dev/null
+++ b/module-apps/application-onboarding/windows/OnBoardingMainWindow.cpp
@@ -0,0 +1,52 @@
+// 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 gui
+{
+ 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::localize.get(::style::strings::common::start));
+
+ new Image(this, 0, 0, 0, 0, "logo");
+ }
+
+ top_bar::Configuration OnBoardingMainWindow::configureTopBar(top_bar::Configuration appConfiguration)
+ {
+ appConfiguration.set(top_bar::Indicator::Time, false);
+ appConfiguration.set(top_bar::Indicator::Battery, false);
+ appConfiguration.set(top_bar::Indicator::SimCard, false);
+ appConfiguration.set(top_bar::Indicator::Signal, false);
+ return appConfiguration;
+ }
+
+ bool OnBoardingMainWindow::onInput(const gui::InputEvent &inputEvent)
+ {
+ if (inputEvent.isShortPress() && inputEvent.is(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
new file mode 100644
index 000000000..ed21f7830
--- /dev/null
+++ b/module-apps/application-onboarding/windows/OnBoardingMainWindow.hpp
@@ -0,0 +1,23 @@
+// 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 gui
+{
+ class OnBoardingMainWindow : public gui::AppWindow
+ {
+ public:
+ explicit OnBoardingMainWindow(app::Application *app);
+
+ bool onInput(const gui::InputEvent &inputEvent) override;
+
+ void buildInterface() override;
+ top_bar::Configuration configureTopBar(top_bar::Configuration appConfiguration) override;
+ };
+} // namespace gui
diff --git a/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp b/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp
new file mode 100644
index 000000000..48282ee8b
--- /dev/null
+++ b/module-apps/application-onboarding/windows/StartConfigurationWindow.cpp
@@ -0,0 +1,53 @@
+// 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 "StartConfigurationWindow.hpp"
+
+namespace gui
+{
+ StartConfigurationWindow::StartConfigurationWindow(app::Application *app)
+ : AppWindow(app, gui::window::name::onBoarding_start_configuration)
+ {
+ buildInterface();
+ }
+
+ void StartConfigurationWindow::buildInterface()
+ {
+ AppWindow::buildInterface();
+
+ bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
+ bottomBar->setText(gui::BottomBar::Side::CENTER, utils::localize.get(::style::strings::common::start));
+ bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
+ bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::localize.get(::style::strings::common::back));
+
+ new Icon(this,
+ 0,
+ 0,
+ style::window_width,
+ style::window::default_body_height,
+ "logo_no_text",
+ utils::localize.get("app_onboarding_start_configuration"));
+ }
+
+ bool StartConfigurationWindow::onInput(const gui::InputEvent &inputEvent)
+ {
+ if (inputEvent.isShortPress()) {
+ if (inputEvent.is(KeyCode::KEY_RF)) {
+ 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/StartConfigurationWindow.hpp b/module-apps/application-onboarding/windows/StartConfigurationWindow.hpp
new file mode 100644
index 000000000..55c26e54c
--- /dev/null
+++ b/module-apps/application-onboarding/windows/StartConfigurationWindow.hpp
@@ -0,0 +1,22 @@
+// 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 gui
+{
+ class StartConfigurationWindow : public gui::AppWindow
+ {
+ public:
+ explicit StartConfigurationWindow(app::Application *app);
+
+ bool onInput(const gui::InputEvent &inputEvent) override;
+
+ void buildInterface() override;
+ };
+} // namespace gui
diff --git a/module-apps/application-settings-new/CMakeLists.txt b/module-apps/application-settings-new/CMakeLists.txt
index 0f2967a05..3369233f7 100644
--- a/module-apps/application-settings-new/CMakeLists.txt
+++ b/module-apps/application-settings-new/CMakeLists.txt
@@ -16,7 +16,6 @@ target_sources( ${PROJECT_NAME}
PRIVATE
ApplicationSettings.cpp
models/ApnSettingsModel.cpp
- models/LanguagesModel.cpp
models/NewApnModel.cpp
widgets/timeWidget.cpp
widgets/ChangePasscodeLockHandler.cpp
diff --git a/module-apps/application-settings-new/models/LanguagesModel.cpp b/module-apps/application-settings-new/models/LanguagesModel.cpp
deleted file mode 100644
index 91afdd238..000000000
--- a/module-apps/application-settings-new/models/LanguagesModel.cpp
+++ /dev/null
@@ -1,12 +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 "LanguagesModel.hpp"
-
-void LanguagesModel::requestCurrentDisplayLanguage()
-{
- application->bus.sendUnicast(std::make_shared(),
- app::manager::ApplicationManager::ServiceName);
-}
diff --git a/module-apps/application-settings-new/models/LanguagesModel.hpp b/module-apps/application-settings-new/models/LanguagesModel.hpp
deleted file mode 100644
index 80243a1f9..000000000
--- a/module-apps/application-settings-new/models/LanguagesModel.hpp
+++ /dev/null
@@ -1,18 +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
-
-class LanguagesModel
-{
- public:
- explicit LanguagesModel(app::Application *application) : application(application)
- {}
-
- void requestCurrentDisplayLanguage();
-
- private:
- app::Application *application = nullptr;
-};
diff --git a/module-apps/application-settings-new/windows/LanguagesWindow.cpp b/module-apps/application-settings-new/windows/LanguagesWindow.cpp
index a07add7a0..f71174869 100644
--- a/module-apps/application-settings-new/windows/LanguagesWindow.cpp
+++ b/module-apps/application-settings-new/windows/LanguagesWindow.cpp
@@ -4,21 +4,24 @@
#include "application-settings-new/ApplicationSettings.hpp"
#include "application-settings-new/data/LanguagesData.hpp"
#include "LanguagesWindow.hpp"
+
+#include
#include "OptionSetting.hpp"
#include "service-appmgr/Controller.hpp"
namespace gui
{
- LanguagesWindow::LanguagesWindow(app::Application *app)
- : BaseSettingsWindow(app, window::name::languages), langList(loader.getAvailableDisplayLanguages()),
- languagesModel(app)
+ LanguagesWindow::LanguagesWindow(app::Application *app, std::string name)
+ : BaseSettingsWindow(app, std::move(name)), langList(loader.getAvailableDisplayLanguages())
{
setTitle(utils::localize.get("app_settings_title_languages"));
- languagesModel.requestCurrentDisplayLanguage();
}
void LanguagesWindow::onBeforeShow(ShowMode mode, SwitchData *data)
{
+ selectedLanguage = utils::localize.getDisplayLanguage();
+ setLanguageIndex();
+
refreshOptionsList(selectedLanguageIndex);
}
@@ -42,19 +45,6 @@ namespace gui
return options;
}
- auto LanguagesWindow::handleSwitchData(SwitchData *data) -> bool
- {
- auto *languagesData = dynamic_cast(data);
- if (languagesData == nullptr) {
- return false;
- }
-
- selectedLanguage = languagesData->getCurrentDisplayLanguage();
- setLanguageIndex();
-
- return true;
- }
-
void LanguagesWindow::setLanguageIndex()
{
for (unsigned int langIndex = 0; langIndex < langList.size(); ++langIndex) {
diff --git a/module-apps/application-settings-new/windows/LanguagesWindow.hpp b/module-apps/application-settings-new/windows/LanguagesWindow.hpp
index 6b85dcdea..f0f6c7d7d 100644
--- a/module-apps/application-settings-new/windows/LanguagesWindow.hpp
+++ b/module-apps/application-settings-new/windows/LanguagesWindow.hpp
@@ -3,7 +3,7 @@
#pragma once
-#include "application-settings-new/models/LanguagesModel.hpp"
+#include "application-settings-new/ApplicationSettings.hpp"
#include "BaseSettingsWindow.hpp"
#include
@@ -12,17 +12,15 @@ namespace gui
class LanguagesWindow : public BaseSettingsWindow
{
public:
- explicit LanguagesWindow(app::Application *app);
+ explicit LanguagesWindow(app::Application *app, std::string name = window::name::languages);
- private:
+ protected:
auto buildOptionsList() -> std::list