From 3afcbd8f941738955b306cdefe4f76ea2217c74b Mon Sep 17 00:00:00 2001 From: lblach Date: Wed, 24 Mar 2021 09:37:27 +0100 Subject: [PATCH] [EGD-6267] Create Technical Information Window Add Technical Information Window to display tech info on Pure. --- image/assets/lang/Deutsch.json | 4 + image/assets/lang/English.json | 4 + image/assets/lang/Espanol.json | 4 + image/assets/lang/Francais.json | 4 + image/assets/lang/Polski.json | 6 +- image/assets/lang/Svenska.json | 4 + .../ApplicationSettings.cpp | 4 + .../application-settings-new/CMakeLists.txt | 2 + .../widgets/SettingsStyle.hpp | 64 +++++++++++ .../windows/CertificationWindow.cpp | 1 - .../windows/TechnicalInformationWindow.cpp | 105 ++++++++++++++++++ .../windows/TechnicalInformationWindow.hpp | 34 ++++++ 12 files changed, 234 insertions(+), 2 deletions(-) create mode 100644 module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp create mode 100644 module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp diff --git a/image/assets/lang/Deutsch.json b/image/assets/lang/Deutsch.json index d231001a9a414fea9df1af00391a52f790ea8203..42bc375529c712e1e51ef4fc63002f6da195a1c4 100644 --- a/image/assets/lang/Deutsch.json +++ b/image/assets/lang/Deutsch.json @@ -116,6 +116,10 @@ "app_settings_language": "Language", "app_settings_about_your_pure": "About your Pure", "app_settings_technical_information": "Technical Information", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Serial number", + "app_settings_tech_info_os_version": "OS Version", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certification", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Canada IC", diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index f81856699f1f2deb6acabfa881ae295ba3a928cd..63df25ca1eb98c69b58efc789b30b98d1d56453d 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -405,6 +405,10 @@ "app_settings_factory_reset": "Factory reset", "app_settings_about_your_pure": "About your Pure", "app_settings_technical_information": "Technical Information", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Serial number", + "app_settings_tech_info_os_version": "OS Version", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certification", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Canada IC", diff --git a/image/assets/lang/Espanol.json b/image/assets/lang/Espanol.json index 2025404a17683df04b3ccbf98b429c1f9b1fcb83..cbd8b1c6f06535475ef0abbfb0f808300aaef3db 100644 --- a/image/assets/lang/Espanol.json +++ b/image/assets/lang/Espanol.json @@ -118,6 +118,10 @@ "app_settings_language": "Language", "app_settings_about_your_pure": "About your Pure", "app_settings_technical_information": "Technical Information", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Serial number", + "app_settings_tech_info_os_version": "OS Version", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certification", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Canada IC", diff --git a/image/assets/lang/Francais.json b/image/assets/lang/Francais.json index d231001a9a414fea9df1af00391a52f790ea8203..42bc375529c712e1e51ef4fc63002f6da195a1c4 100644 --- a/image/assets/lang/Francais.json +++ b/image/assets/lang/Francais.json @@ -116,6 +116,10 @@ "app_settings_language": "Language", "app_settings_about_your_pure": "About your Pure", "app_settings_technical_information": "Technical Information", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Serial number", + "app_settings_tech_info_os_version": "OS Version", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certification", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Canada IC", diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json index 250fde9977b19f02584b706faaf91732a972c8db..610a3b17071b509a62eb9e92a378a36a9175aff6 100644 --- a/image/assets/lang/Polski.json +++ b/image/assets/lang/Polski.json @@ -118,7 +118,11 @@ "app_settings_security": "Bezpieczeństwo", "app_settings_language": "Język", "app_settings_about_your_pure": "O Twoim Pure", - "app_settings_technical_information": "Informacja Techniczne", + "app_settings_technical_information": "Informacja Techniczna", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Number seryjny", + "app_settings_tech_info_os_version": "Wersja systemu", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certyfikacja", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Kanada IC", diff --git a/image/assets/lang/Svenska.json b/image/assets/lang/Svenska.json index 8927c01e57a73b681168d6b26b56abf9dfcb0293..97ce0aa26cd24b00edec4f7952dbe21aa90096ad 100644 --- a/image/assets/lang/Svenska.json +++ b/image/assets/lang/Svenska.json @@ -373,6 +373,10 @@ "app_settings_factory_reset": "Återställ fabriksinställningar", "app_settings_about_your_pure": "Om din Pure", "app_settings_technical_information": "Teknisk information", + "app_settings_tech_info_model": "Model", + "app_settings_tech_info_serial_number": "Serial number", + "app_settings_tech_info_os_version": "OS Version", + "app_settings_tech_info_imei": "IMEI", "app_settings_certification": "Certifiering", "app_settings_us_fcc_id": "US FCC ID", "app_settings_canada_ic": "Canada IC", diff --git a/module-apps/application-settings-new/ApplicationSettings.cpp b/module-apps/application-settings-new/ApplicationSettings.cpp index 80789962f04f5a68457fdc718933e1e87f89c423..ba9b50cb8272ce4ffbaa852da7f3c391b708f7d4 100644 --- a/module-apps/application-settings-new/ApplicationSettings.cpp +++ b/module-apps/application-settings-new/ApplicationSettings.cpp @@ -42,6 +42,7 @@ #include "windows/ConnectionFrequencyWindow.hpp" #include "windows/AboutYourPureWindow.hpp" #include "windows/CertificationWindow.hpp" +#include "windows/TechnicalInformationWindow.hpp" #include "Dialog.hpp" #include "DialogMetadataMessage.hpp" @@ -448,6 +449,9 @@ namespace app windowsFactory.attach(gui::window::name::certification, [](Application *app, const std::string &name) { return std::make_unique(app); }); + windowsFactory.attach(gui::window::name::technical_information, [](Application *app, const std::string &name) { + return std::make_unique(app); + }); windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) { return std::make_unique(app); }); diff --git a/module-apps/application-settings-new/CMakeLists.txt b/module-apps/application-settings-new/CMakeLists.txt index 229066bbedd052397b7d4243f510ed50e23dd6f6..701765343e06e2360922bbe10d755583e70f337d 100644 --- a/module-apps/application-settings-new/CMakeLists.txt +++ b/module-apps/application-settings-new/CMakeLists.txt @@ -71,6 +71,7 @@ target_sources( ${PROJECT_NAME} windows/PhoneModesWindow.cpp windows/AboutYourPureWindow.cpp windows/CertificationWindow.cpp + windows/TechnicalInformationWindow.cpp PUBLIC ApplicationSettings.hpp @@ -100,6 +101,7 @@ target_sources( ${PROJECT_NAME} windows/QuoteCategoriesWindow.hpp windows/AboutYourPureWindow.hpp windows/CertificationWindow.hpp + windows/TechnicalInformationWindow.hpp ) add_dependencies(${PROJECT_NAME} version) diff --git a/module-apps/application-settings-new/widgets/SettingsStyle.hpp b/module-apps/application-settings-new/widgets/SettingsStyle.hpp index 00408be34f3254b1e9b5d6d4d02536929e50e27f..e3b53820ddf4d275faaefb62f796e95502bad522 100644 --- a/module-apps/application-settings-new/widgets/SettingsStyle.hpp +++ b/module-apps/application-settings-new/widgets/SettingsStyle.hpp @@ -216,4 +216,68 @@ namespace style } // namespace imagece } // namespace certification + + namespace techinfo + { + namespace textmodel + { + inline constexpr auto x = 30; + inline constexpr auto y = 117; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace textmodel + namespace valuemodel + { + inline constexpr auto x = 30; + inline constexpr auto y = 150; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace valuemodel + + namespace textserialnumber + { + inline constexpr auto x = 30; + inline constexpr auto y = 192; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace textserialnumber + namespace valueserialnumber + { + inline constexpr auto x = 30; + inline constexpr auto y = 225; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace valueserialnumber + + namespace textosversion + { + inline constexpr auto x = 30; + inline constexpr auto y = 267; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace textosversion + namespace valueosversion + { + inline constexpr auto x = 30; + inline constexpr auto y = 300; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace valueosversion + + namespace textimea + { + inline constexpr auto x = 30; + inline constexpr auto y = 342; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace textimea + namespace valueimea + { + inline constexpr auto x = 30; + inline constexpr auto y = 375; + inline constexpr auto width = 400; + inline constexpr auto height = 30; + } // namespace valueimea + + } // namespace techinfo } // namespace style diff --git a/module-apps/application-settings-new/windows/CertificationWindow.cpp b/module-apps/application-settings-new/windows/CertificationWindow.cpp index 3fd7b6a0ff282c8f960566c33ece3c50cd0ca2a3..df85040aaa9e64f733bec148705fd7be0a7146c7 100644 --- a/module-apps/application-settings-new/windows/CertificationWindow.cpp +++ b/module-apps/application-settings-new/windows/CertificationWindow.cpp @@ -11,7 +11,6 @@ inline constexpr auto certno = "XXXXXXXXXXXXXXXXXXX"; namespace gui { - CertificationWindow::CertificationWindow(app::Application *app) : AppWindow(app, gui::window::name::certification) { buildInterface(); diff --git a/module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp b/module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp new file mode 100644 index 0000000000000000000000000000000000000000..16efa683cf73db76047c9cf2b2ca1804c6ccb449 --- /dev/null +++ b/module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp @@ -0,0 +1,105 @@ +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "TechnicalInformationWindow.hpp" +#include +#include +#include +#include + +static constexpr auto model = "1.0"; +static constexpr auto serialNumber = "XXXXXXXXXXXXXXX"; +static constexpr auto imei = "AA-BBBBBB-CCCCCC-D"; + +namespace gui +{ + TechnicalInformationWindow::TechnicalInformationWindow(app::Application *app) + : AppWindow(app, gui::window::name::certification) + { + buildInterface(); + } + + void TechnicalInformationWindow::buildInterface() + { + AppWindow::buildInterface(); + + setTitle(utils::localize.get("app_settings_technical_information")); + + modelText = new gui::Text(this, + style::techinfo::textmodel::x, + style::techinfo::textmodel::y, + style::techinfo::textmodel::width, + style::techinfo::textmodel::height); + modelValue = new gui::Text(this, + style::techinfo::valuemodel::x, + style::techinfo::valuemodel::y, + style::techinfo::valuemodel::width, + style::techinfo::valuemodel::height); + + serialNumberText = new gui::Text(this, + style::techinfo::textserialnumber::x, + style::techinfo::textserialnumber::y, + style::techinfo::textserialnumber::width, + style::techinfo::textserialnumber::height); + serialNumberValue = new gui::Text(this, + style::techinfo::valueserialnumber::x, + style::techinfo::valueserialnumber::y, + style::techinfo::valueserialnumber::width, + style::techinfo::valueserialnumber::height); + + osVersionText = new gui::Text(this, + style::techinfo::textosversion::x, + style::techinfo::textosversion::y, + style::techinfo::textosversion::width, + style::techinfo::textosversion::height); + osVersionValue = new gui::Text(this, + style::techinfo::valueosversion::x, + style::techinfo::valueosversion::y, + style::techinfo::valueosversion::width, + style::techinfo::valueosversion::height); + + imeiText = new gui::Text(this, + style::techinfo::textimea::x, + style::techinfo::textimea::y + 10, + style::techinfo::textimea::width, + style::techinfo::textimea::height); + imeiValue = new gui::Text(this, + style::techinfo::valueimea::x, + style::techinfo::valueimea::y + 20, + style::techinfo::valueimea::width, + style::techinfo::valueimea::height); + + bottomBar->setText(BottomBar::Side::RIGHT, utils::localize.get(style::strings::common::back)); + } + + void TechnicalInformationWindow::onBeforeShow(ShowMode mode, SwitchData *data) + { + // dummy data for now + modelText->setText(utils::localize.get("app_settings_tech_info_model")); + modelValue->setText(model); + serialNumberText->setText(utils::localize.get("app_settings_tech_info_serial_number")); + serialNumberValue->setText(serialNumber); + osVersionText->setText(utils::localize.get("app_settings_tech_info_os_version")); + osVersionValue->setText(std::string(VERSION)); + imeiText->setText(utils::localize.get("app_settings_tech_info_imei")); + imeiValue->setText(imei); + } + + void TechnicalInformationWindow::destroyInterface() + { + erase(); + modelText = nullptr; + modelValue = nullptr; + serialNumberText = nullptr; + serialNumberValue = nullptr; + osVersionText = nullptr; + osVersionValue = nullptr; + imeiText = nullptr; + imeiValue = nullptr; + }; + + TechnicalInformationWindow::~TechnicalInformationWindow() + { + destroyInterface(); + } +} // namespace gui diff --git a/module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp b/module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp new file mode 100644 index 0000000000000000000000000000000000000000..835acf31333e9ea47a4478a8933edb8b960bd779 --- /dev/null +++ b/module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp @@ -0,0 +1,34 @@ +// 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 "BaseSettingsWindow.hpp" + +namespace gui +{ + class TechnicalInformationWindow : public AppWindow + { + public: + TechnicalInformationWindow(app::Application *app); + ~TechnicalInformationWindow() override; + void destroyInterface() override; + + private: + void buildInterface() override; + void onBeforeShow(ShowMode mode, SwitchData *data) override; + + gui::Text *modelText = nullptr; + gui::Text *modelValue = nullptr; + + gui::Text *serialNumberText = nullptr; + gui::Text *serialNumberValue = nullptr; + + gui::Text *osVersionText = nullptr; + gui::Text *osVersionValue = nullptr; + + gui::Text *imeiText = nullptr; + gui::Text *imeiValue = nullptr; + }; + +} // namespace gui