M image/assets/lang/lang_en.json => image/assets/lang/lang_en.json +6 -0
@@ 150,6 150,7 @@
"app_desktop_menu_meditation": "MEDITATION",
"app_desktop_menu_music": "MUSIC",
"app_desktop_menu_tools": "TOOLS",
+ "app_desktop_menu_settings_new": "SETTINGS NEW",
"app_desktop_menu_settings": "SETTINGS",
"app_desktop_menu_phonebook": "PHONEBOOK",
"app_desktop_menu_title": "Menu",
@@ 199,7 200,12 @@
"app_messages_thread_you" : "You: ",
"app_settings_title_main": "Settings",
+ "app_settings_title_main_new": "Settings New",
"app_settings_bt" : "Bluetooth",
+ "app_settings_net" : "Network",
+ "app_settings_disp_key" : "Display and keypad",
+ "app_settings_system" : "System",
+ "app_settings_apps_tools" : "Apps and tools",
"app_settings_date_and_time": "Date and Time",
"app_settings_title_day": "Day",
"app_settings_title_month": "Month",
M module-apps/CMakeLists.txt => module-apps/CMakeLists.txt +1 -0
@@ 29,6 29,7 @@ set(APPLICATIONS
calendar
desktop
settings
+ settings-new
call
notes
phonebook
M module-apps/application-desktop/ApplicationDesktop.cpp => module-apps/application-desktop/ApplicationDesktop.cpp +1 -0
@@ 8,6 8,7 @@
#include "windows/Reboot.hpp"
#include <service-db/api/DBServiceAPI.hpp>
+#include <application-settings-new/ApplicationSettings.hpp>
#include <application-settings/ApplicationSettings.hpp>
#include <service-appmgr/ApplicationManager.hpp>
#include <service-cellular/ServiceCellular.hpp>
M module-apps/application-desktop/windows/DesktopMainWindow.cpp => module-apps/application-desktop/windows/DesktopMainWindow.cpp +1 -0
@@ 28,6 28,7 @@
#include "log/log.hpp"
#include <Span.hpp>
#include <Style.hpp>
+#include <application-settings-new/ApplicationSettings.hpp>
#include <application-settings/ApplicationSettings.hpp>
#include <cassert>
#include <service-appmgr/ApplicationManager.hpp>
M => +3 -3
@@ 24,7 24,7 @@ namespace style::design
namespace gui
{
inline const auto APP_SETTINGS_NEW = "ApplicationSettingsNew";
Tile::Tile(UTF8 icon, std::string title, std::function<bool(Item &)> activatedCallback, unsigned int notifications)
{
setSize(style::design::tile_w, style::design::tile_h);
@@ 168,11 168,11 @@ namespace gui
new gui::Tile{
"menu_meditation_W_G", "app_desktop_menu_meditation", [=](gui::Item &item) { return true; }},
new gui::Tile{"menu_settings_W_G",
"app_desktop_menu_settings",
"app_desktop_menu_settings_new",
[=](gui::Item &item) {
LOG_INFO("page 1 settings");
sapm::ApplicationManager::messageSwitchApplication(
application, "ApplicationSettings", gui::name::window::main_window, nullptr);
application, APP_SETTINGS_NEW, gui::name::window::main_window, nullptr);
return true;
}},
});
A module-apps/application-settings-new/ApplicationSettings.cpp => module-apps/application-settings-new/ApplicationSettings.cpp +62 -0
@@ 0,0 1,62 @@
+#include "Application.hpp"
+
+#include "MessageType.hpp"
+#include "windows/SettingsMainWindow.hpp"
+
+#include "ApplicationSettings.hpp"
+
+#include <module-services/service-evtmgr/api/EventManagerServiceAPI.hpp>
+#include <module-apps/messages/AppMessage.hpp>
+
+#include <i18/i18.hpp>
+
+namespace app
+{
+ ApplicationSettingsNew::ApplicationSettingsNew(std::string name, std::string parent, bool startBackgound)
+ : Application(name, parent, startBackgound)
+ {}
+
+ // Invoked upon receiving data message
+ sys::Message_t ApplicationSettingsNew::DataReceivedHandler(sys::DataMessage *msgl,
+ [[maybe_unused]] sys::ResponseMessage *resp)
+ {
+ auto retMsg = Application::DataReceivedHandler(msgl);
+ // if message was handled by application's template there is no need to process further.
+ auto rm = dynamic_cast<sys::ResponseMessage *>(retMsg.get());
+ if (nullptr != rm && sys::ReturnCodes::Success == rm->retCode) {
+ return retMsg;
+ }
+
+ return std::make_shared<sys::ResponseMessage>();
+ }
+
+ // Invoked during initialization
+ sys::ReturnCodes ApplicationSettingsNew::InitHandler()
+ {
+ board = EventManagerServiceAPI::GetBoard(this);
+
+ auto ret = Application::InitHandler();
+ if (ret != sys::ReturnCodes::Success) {
+ return ret;
+ }
+
+ createUserInterface();
+
+ setActiveWindow(gui::name::window::main_window);
+
+ return ret;
+ }
+
+ void ApplicationSettingsNew::createUserInterface()
+ {
+
+ gui::AppWindow *window = nullptr;
+
+ window = newOptionWindow(this, gui::name::window::main_window, mainWindowOptionsNew(this));
+ window->setTitle(utils::localize.get("app_settings_title_main_new"));
+ windows.insert(std::pair<std::string, gui::AppWindow *>(window->getName(), window));
+ }
+
+ void ApplicationSettingsNew::destroyUserInterface()
+ {}
+} /* namespace app */
A module-apps/application-settings-new/ApplicationSettings.hpp => module-apps/application-settings-new/ApplicationSettings.hpp +31 -0
@@ 0,0 1,31 @@
+#pragma once
+
+#include "Application.hpp"
+
+#include "bsp/common.hpp"
+
+namespace app
+{
+
+ inline const std::string name_settings_new = "ApplicationSettingsNew";
+
+ class ApplicationSettingsNew : public app::Application
+ {
+ public:
+ ApplicationSettingsNew(std::string name = name_settings_new,
+ std::string parent = "",
+ bool startBackgound = false);
+ sys::Message_t DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp) override;
+ sys::ReturnCodes InitHandler() override;
+
+ sys::ReturnCodes SwitchPowerModeHandler(const sys::ServicePowerMode mode) override final
+ {
+ return sys::ReturnCodes::Success;
+ }
+
+ void createUserInterface() override;
+ void destroyUserInterface() override;
+ bsp::Board board = bsp::Board::none;
+ };
+
+} /* namespace app */
A module-apps/application-settings-new/CMakeLists.txt => module-apps/application-settings-new/CMakeLists.txt +25 -0
@@ 0,0 1,25 @@
+
+include_directories( ${CMAKE_PROJECT_NAME}
+
+ PUBLIC
+ "${CMAKE_CURRENT_LIST_DIR}"
+)
+
+include_directories( ${PROJECT_NAME}
+
+ PUBLIC
+ ${CMAKE_CURRENT_LIST_DIR}
+)
+
+target_sources( ${PROJECT_NAME}
+
+ PRIVATE
+ ApplicationSettings.cpp
+ windows/SettingsMainWindow.cpp
+
+ PUBLIC
+ ApplicationSettings.hpp
+ windows/SettingsMainWindow.hpp
+)
+
+add_dependencies(${PROJECT_NAME} version)
A module-apps/application-settings-new/windows/SettingsMainWindow.cpp => module-apps/application-settings-new/windows/SettingsMainWindow.cpp +48 -0
@@ 0,0 1,48 @@
+#include "SettingsMainWindow.hpp"
+#include "../ApplicationSettings.hpp"
+#include "i18/i18.hpp"
+#include "log/log.hpp"
+#include "service-appmgr/ApplicationManager.hpp"
+
+std::list<gui::Option> mainWindowOptionsNew(app::Application *app)
+{
+ std::list<gui::Option> l;
+
+ auto i18 = [](const std::string &text) { return utils::localize.get(text); };
+ auto addMenu = [&l, &app](UTF8 name, const std::string &window = "") {
+ l.emplace_back(gui::Option{name,
+ [=](gui::Item &item) {
+ if (window.empty()) {
+ return false;
+ }
+ LOG_INFO("switching to %s page", window.c_str());
+ app->switchWindow(window, nullptr);
+ return true;
+ },
+ gui::Arrow::Enabled});
+ };
+ auto addApp = [&l, &app](UTF8 name, const std::string &window = "") {
+ l.emplace_back(gui::Option{name,
+ [=](gui::Item &item) {
+ if (window.empty()) {
+ return false;
+ }
+ LOG_INFO("switching to %s page", window.c_str());
+ sapm::ApplicationManager::messageSwitchApplication(
+ app, "ApplicationSettings", gui::name::window::main_window, nullptr);
+ app->switchWindow(window, nullptr);
+ return true;
+ },
+ gui::Arrow::Enabled});
+ };
+
+ addApp(i18("app_desktop_menu_settings"), "Settings");
+ addMenu(i18("app_settings_bt"), "Bluetooth");
+ addMenu(i18("app_settings_net"), "Network");
+ addMenu(i18("app_settings_disp_key"), "Display and keypad");
+ addMenu(i18("app_settings_phone_modes"), "Phone modes");
+ addMenu(i18("app_settings_apps_tools"), "Apps and tools");
+ addMenu(i18("app_settings_security"), "Security");
+ addMenu(i18("app_settings_system"), "System");
+ return l;
+}
A module-apps/application-settings-new/windows/SettingsMainWindow.hpp => module-apps/application-settings-new/windows/SettingsMainWindow.hpp +6 -0
@@ 0,0 1,6 @@
+#pragma once
+
+#include "OptionWindow.hpp"
+#include "Application.hpp"
+
+std::list<gui::Option> mainWindowOptionsNew(app::Application *app);
M source/main.cpp => source/main.cpp +2 -0
@@ 18,6 18,7 @@
#include "application-notes/ApplicationNotes.hpp"
#include "application-phonebook/ApplicationPhonebook.hpp"
#include "application-settings/ApplicationSettings.hpp"
+#include "application-settings-new/ApplicationSettings.hpp"
#include "application-special-input/AppSpecialInput.hpp"
#include "application-calendar/ApplicationCalendar.hpp"
#include "application-music-player/ApplicationMusicPlayer.hpp"
@@ 200,6 201,7 @@ int main()
#endif
#ifdef ENABLE_APP_SETTINGS
applications.push_back(app::CreateLauncher<app::ApplicationSettings>(app::name_settings));
+ applications.push_back(app::CreateLauncher<app::ApplicationSettingsNew>(app::name_settings_new));
#endif
#ifdef ENABLE_APP_NOTES
applications.push_back(app::CreateLauncher<app::ApplicationNotes>(app::name_notes));