From 71925c63384b9020cd0c077eab2b9c4c5fead472 Mon Sep 17 00:00:00 2001 From: pawpMudita Date: Wed, 13 Jan 2021 15:20:23 +0100 Subject: [PATCH 01/22] [EGD-4740] Add New/Edit APN window - Part1 Add New/Edit APN window - basic window/ model/ widget --- changelog.md | 1 + image/assets/lang/English.json | 8 + .../ApplicationSettings.cpp | 13 ++ .../ApplicationSettings.hpp | 2 + .../application-settings-new/CMakeLists.txt | 7 + .../data/SettingsInternals.hpp | 30 +++ .../data/SettingsItemData.hpp | 23 ++ .../models/NewApnModel.cpp | 140 +++++++++++ .../models/NewApnModel.hpp | 36 +++ .../widgets/ApnInputWidget.cpp | 221 ++++++++++++++++++ .../widgets/ApnInputWidget.hpp | 44 ++++ .../widgets/ApnListItem.hpp | 18 ++ .../widgets/SettingsStyle.hpp | 20 ++ .../windows/APNSettingsWindow.cpp | 9 +- .../windows/NewApnWindow.cpp | 116 +++++++++ .../windows/NewApnWindow.hpp | 33 +++ .../service-cellular/ServiceCellular.cpp | 10 +- .../service-cellular/PacketDataTypes.hpp | 66 +++++- 18 files changed, 787 insertions(+), 10 deletions(-) create mode 100644 module-apps/application-settings-new/data/SettingsInternals.hpp create mode 100644 module-apps/application-settings-new/data/SettingsItemData.hpp create mode 100644 module-apps/application-settings-new/models/NewApnModel.cpp create mode 100644 module-apps/application-settings-new/models/NewApnModel.hpp create mode 100644 module-apps/application-settings-new/widgets/ApnInputWidget.cpp create mode 100644 module-apps/application-settings-new/widgets/ApnInputWidget.hpp create mode 100644 module-apps/application-settings-new/widgets/ApnListItem.hpp create mode 100644 module-apps/application-settings-new/windows/NewApnWindow.cpp create mode 100644 module-apps/application-settings-new/windows/NewApnWindow.hpp diff --git a/changelog.md b/changelog.md index 3aaaf6731..67d4c0974 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,7 @@ * Add hardware in the loop tests. * Add empty APN settings window. +* Add New/Edit APN window ### Changed diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 53a54c7a3..828034673 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -363,6 +363,14 @@ "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_new_edit_apn": "New/Edit APN", + "app_settings_apn_name": "Name", + "app_settings_apn_APN": "APN", + "app_settings_apn_username": "UserName", + "app_settings_apn_password": "Password", + "app_settings_apn_authtype": "Authentication type", + "app_settings_apn_apntype": "APN Type", + "app_settings_apn_apnprotocol" : "APN Protocol", "app_phonebook_title_main": "Contacts", "app_phonebook_search_win_contacts": "Contacts", "common_search_uc": "Search", diff --git a/module-apps/application-settings-new/ApplicationSettings.cpp b/module-apps/application-settings-new/ApplicationSettings.cpp index a0104201f..0aeecf9fe 100644 --- a/module-apps/application-settings-new/ApplicationSettings.cpp +++ b/module-apps/application-settings-new/ApplicationSettings.cpp @@ -28,6 +28,7 @@ #include "windows/QuotesOptionsWindow.hpp" #include "windows/ChangePasscodeWindow.hpp" #include "windows/SystemMainWindow.hpp" +#include "windows/NewApnWindow.hpp" #include "Dialog.hpp" @@ -233,9 +234,21 @@ namespace app windowsFactory.attach(gui::window::name::security, [](Application *app, const std::string &name) { return std::make_unique(app); }); + windowsFactory.attach(gui::window::name::system, [](Application *app, const std::string &name) { return std::make_unique(app); }); + + 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); + }); + + windowsFactory.attach(gui::window::name::new_apn, [](Application *app, const std::string &name) { + return std::make_unique(app); + }); } void ApplicationSettingsNew::destroyUserInterface() diff --git a/module-apps/application-settings-new/ApplicationSettings.hpp b/module-apps/application-settings-new/ApplicationSettings.hpp index 28edc2c3a..3cfc6cbc2 100644 --- a/module-apps/application-settings-new/ApplicationSettings.hpp +++ b/module-apps/application-settings-new/ApplicationSettings.hpp @@ -55,6 +55,8 @@ namespace gui::window::name inline constexpr auto about_your_pure = "AboutYourPure"; inline constexpr auto certification = "Certification"; + inline constexpr auto new_apn = "NewApn"; + } // namespace gui::window::name namespace app diff --git a/module-apps/application-settings-new/CMakeLists.txt b/module-apps/application-settings-new/CMakeLists.txt index d29668f3a..d412071a6 100644 --- a/module-apps/application-settings-new/CMakeLists.txt +++ b/module-apps/application-settings-new/CMakeLists.txt @@ -18,6 +18,7 @@ target_sources( ${PROJECT_NAME} widgets/timeWidget.cpp widgets/ChangePasscodeLockHandler.cpp widgets/QuoteWidget.cpp + widgets/ApnInputWidget.cpp windows/SettingsMainWindow.cpp windows/AddDeviceWindow.cpp windows/AllDevicesWindow.cpp @@ -42,12 +43,17 @@ target_sources( ${PROJECT_NAME} windows/QuotesAddWindow.cpp windows/SecurityMainWindow.cpp windows/ChangePasscodeWindow.cpp + windows/NewApnWindow.cpp + models/NewApnModel.cpp widgets/SpinBox.cpp widgets/SpinBoxOptionSetting.cpp windows/SystemMainWindow.cpp PUBLIC ApplicationSettings.hpp + widgets/ChangePasscodeLockHandler.hpp + widgets/ApnInputWidget.hpp + windows/NewApnWindow.hpp windows/SettingsMainWindow.hpp windows/BaseSettingsWindow.hpp windows/FontSizeWindow.hpp @@ -62,6 +68,7 @@ target_sources( ${PROJECT_NAME} windows/AutolockWindow.hpp windows/WallpaperWindow.hpp windows/SystemMainWindow.hpp + windows/ChangePasscodeWindow.hpp ) add_dependencies(${PROJECT_NAME} version) diff --git a/module-apps/application-settings-new/data/SettingsInternals.hpp b/module-apps/application-settings-new/data/SettingsInternals.hpp new file mode 100644 index 000000000..fca5eb5e1 --- /dev/null +++ b/module-apps/application-settings-new/data/SettingsInternals.hpp @@ -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 + +#pragma once + +#include + +namespace settingsInternals +{ + enum class ListItemName + { + Name, + APN, + Proxy, + Port, + Username, + Password, + + Server, + MMSC, + MmsProxy, + MmsPort, + MCC, + MNC, + AuthType, + ApnType, + ApnProtocol + }; + +} // namespace settingsInternals diff --git a/module-apps/application-settings-new/data/SettingsItemData.hpp b/module-apps/application-settings-new/data/SettingsItemData.hpp new file mode 100644 index 000000000..d9ad73e2b --- /dev/null +++ b/module-apps/application-settings-new/data/SettingsItemData.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 + +class ApnItemData : public gui::SwitchData +{ + public: + ApnItemData(std::shared_ptr Apn) : apn(std::move(Apn)){}; + ApnItemData() : apn(nullptr){}; + + auto getApn() -> std::shared_ptr + { + return apn; + } + + private: + std::shared_ptr apn; +}; diff --git a/module-apps/application-settings-new/models/NewApnModel.cpp b/module-apps/application-settings-new/models/NewApnModel.cpp new file mode 100644 index 000000000..25ee9057f --- /dev/null +++ b/module-apps/application-settings-new/models/NewApnModel.cpp @@ -0,0 +1,140 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "NewApnModel.hpp" + +#include "AppWindow.hpp" +#include "application-settings-new/widgets/ApnInputWidget.hpp" +#include + +#include +#include