~aleteoryx/muditaos

3afcbd8f941738955b306cdefe4f76ea2217c74b — lblach 4 years ago 49336a4
[EGD-6267] Create Technical Information Window

Add Technical Information Window to display tech info on Pure.
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +4 -0
@@ 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",

M image/assets/lang/English.json => image/assets/lang/English.json +4 -0
@@ 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",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +4 -0
@@ 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",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +4 -0
@@ 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",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +5 -1
@@ 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",

M image/assets/lang/Svenska.json => image/assets/lang/Svenska.json +4 -0
@@ 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",

M module-apps/application-settings-new/ApplicationSettings.cpp => module-apps/application-settings-new/ApplicationSettings.cpp +4 -0
@@ 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<gui::CertificationWindow>(app);
        });
        windowsFactory.attach(gui::window::name::technical_information, [](Application *app, const std::string &name) {
            return std::make_unique<gui::TechnicalInformationWindow>(app);
        });
        windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ChangeTimeZone>(app);
        });

M module-apps/application-settings-new/CMakeLists.txt => module-apps/application-settings-new/CMakeLists.txt +2 -0
@@ 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)

M module-apps/application-settings-new/widgets/SettingsStyle.hpp => module-apps/application-settings-new/widgets/SettingsStyle.hpp +64 -0
@@ 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

M module-apps/application-settings-new/windows/CertificationWindow.cpp => module-apps/application-settings-new/windows/CertificationWindow.cpp +0 -1
@@ 11,7 11,6 @@ inline constexpr auto certno = "XXXXXXXXXXXXXXXXXXX";

namespace gui
{

    CertificationWindow::CertificationWindow(app::Application *app) : AppWindow(app, gui::window::name::certification)
    {
        buildInterface();

A module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp => module-apps/application-settings-new/windows/TechnicalInformationWindow.cpp +105 -0
@@ 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 <application-settings-new/ApplicationSettings.hpp>
#include <widgets/Text.hpp>
#include <application-settings-new/widgets/SettingsStyle.hpp>
#include <source/version.hpp>

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

A module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp => module-apps/application-settings-new/windows/TechnicalInformationWindow.hpp +34 -0
@@ 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