~aleteoryx/muditaos

738c11593545d43ef8a1d7fc30653eaf96cfab01 — lblach 4 years ago 3d0e235
[EGD-6266] Create Certification Window

Add Certification Window to display certification information.
A image/assets/images/settings_certification_ce.vpi => image/assets/images/settings_certification_ce.vpi +0 -0
A image/assets/images/settings_certification_fc.vpi => image/assets/images/settings_certification_fc.vpi +0 -0
A image/assets/images/settings_certification_ic.vpi => image/assets/images/settings_certification_ic.vpi +0 -0
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +3 -0
@@ 117,6 117,9 @@
  "app_settings_about_your_pure": "About your Pure",
  "app_settings_technical_information": "Technical Information",
  "app_settings_certification": "Certification",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Canada IC",
  "app_settings_europe": "Europe",
  "app_settings_sar": "SAR",
  "app_settings_about": "About Mudita Pure",
  "app_settings_title_languages": "Language Selection",

M image/assets/lang/English.json => image/assets/lang/English.json +3 -0
@@ 406,6 406,9 @@
  "app_settings_about_your_pure": "About your Pure",
  "app_settings_technical_information": "Technical Information",
  "app_settings_certification": "Certification",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Canada IC",
  "app_settings_europe": "Europe",
  "app_settings_sar": "SAR",
  "app_settings_about": "About Mudita Pure",
  "app_settings_title_languages": "Language selection",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +3 -0
@@ 119,6 119,9 @@
  "app_settings_about_your_pure": "About your Pure",
  "app_settings_technical_information": "Technical Information",
  "app_settings_certification": "Certification",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Canada IC",
  "app_settings_europe": "Europe",
  "app_settings_sar": "SAR",
  "app_settings_about": "About Mudita Pure",
  "app_settings_title_languages": "Language Selection",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +3 -0
@@ 117,6 117,9 @@
  "app_settings_about_your_pure": "About your Pure",
  "app_settings_technical_information": "Technical Information",
  "app_settings_certification": "Certification",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Canada IC",
  "app_settings_europe": "Europe",
  "app_settings_sar": "SAR",
  "app_settings_about": "About Mudita Pure",
  "app_settings_title_languages": "Language Selection",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +3 -0
@@ 120,6 120,9 @@
  "app_settings_about_your_pure": "O Twoim Pure",
  "app_settings_technical_information": "Informacja Techniczne",
  "app_settings_certification": "Certyfikacja",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Kanada IC",
  "app_settings_europe": "Europa",
  "app_settings_sar": "SAR",
  "app_settings_about": "O Mudita Pure",
  "app_settings_title_languages": "Wybór Języka",

M image/assets/lang/Svenska.json => image/assets/lang/Svenska.json +3 -0
@@ 374,6 374,9 @@
  "app_settings_about_your_pure": "Om din Pure",
  "app_settings_technical_information": "Teknisk information",
  "app_settings_certification": "Certifiering",
  "app_settings_us_fcc_id": "US FCC ID",
  "app_settings_canada_ic": "Canada IC",
  "app_settings_europe": "Europe",
  "app_settings_sar": "SAR",
  "app_settings_about": "Om Mudita Pure",
  "app_settings_title_languages": "Språkval",

M module-apps/application-settings-new/ApplicationSettings.cpp => module-apps/application-settings-new/ApplicationSettings.cpp +4 -0
@@ 41,6 41,7 @@
#include "windows/OfflineWindow.hpp"
#include "windows/ConnectionFrequencyWindow.hpp"
#include "windows/AboutYourPureWindow.hpp"
#include "windows/CertificationWindow.hpp"

#include "Dialog.hpp"
#include "DialogMetadataMessage.hpp"


@@ 444,6 445,9 @@ namespace app
        windowsFactory.attach(gui::window::name::about_your_pure, [](Application *app, const std::string &name) {
            return std::make_unique<gui::AboutYourPureWindow>(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::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
@@ 70,6 70,7 @@ target_sources( ${PROJECT_NAME}
        windows/OfflineWindow.cpp
        windows/PhoneModesWindow.cpp
        windows/AboutYourPureWindow.cpp
        windows/CertificationWindow.cpp

    PUBLIC
        ApplicationSettings.hpp


@@ 98,6 99,7 @@ target_sources( ${PROJECT_NAME}
        windows/EditQuotesWindow.hpp
        windows/QuoteCategoriesWindow.hpp
        windows/AboutYourPureWindow.hpp
        windows/CertificationWindow.hpp
)

add_dependencies(${PROJECT_NAME} version)

M module-apps/application-settings-new/widgets/SettingsStyle.hpp => module-apps/application-settings-new/widgets/SettingsStyle.hpp +70 -0
@@ 146,4 146,74 @@ namespace style
        inline constexpr auto arrow_y = 62;

    } // namespace quotes::categories

    namespace certification
    {
        namespace textfc
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 128;
            inline constexpr auto width  = 128;
            inline constexpr auto height = 35;
        } // namespace textfc
        namespace valuefc
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 166;
            inline constexpr auto width  = 420;
            inline constexpr auto height = 33;
        } // namespace valuefc
        namespace imagefc
        {
            inline constexpr auto x      = 373;
            inline constexpr auto y      = 138;
            inline constexpr auto width  = 64;
            inline constexpr auto height = 44;
        } // namespace imagefc

        namespace textic
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 236;
            inline constexpr auto width  = 133;
            inline constexpr auto height = 35;
        } // namespace textic
        namespace valueic
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 274;
            inline constexpr auto width  = 420;
            inline constexpr auto height = 33;
        } // namespace valueic
        namespace imageic
        {
            inline constexpr auto x      = 373;
            inline constexpr auto y      = 239;
            inline constexpr auto width  = 64;
            inline constexpr auto height = 59;
        } // namespace imageic

        namespace textce
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 339;
            inline constexpr auto width  = 94;
            inline constexpr auto height = 35;
        } // namespace textce
        namespace valuece
        {
            inline constexpr auto x      = 30;
            inline constexpr auto y      = 382;
            inline constexpr auto width  = 420;
            inline constexpr auto height = 33;
        } // namespace valuece
        namespace imagece
        {
            inline constexpr auto x      = 373;
            inline constexpr auto y      = 354;
            inline constexpr auto width  = 64;
            inline constexpr auto height = 46;
        } // namespace imagece

    } // namespace certification
} // namespace style

A module-apps/application-settings-new/windows/CertificationWindow.cpp => module-apps/application-settings-new/windows/CertificationWindow.cpp +112 -0
@@ 0,0 1,112 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "CertificationWindow.hpp"
#include <application-settings-new/ApplicationSettings.hpp>
#include <widgets/Text.hpp>
#include <widgets/Image.hpp>
#include <application-settings-new/widgets/SettingsStyle.hpp>

inline constexpr auto certno = "XXXXXXXXXXXXXXXXXXX";

namespace gui
{

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

    void CertificationWindow::buildInterface()
    {
        AppWindow::buildInterface();

        setTitle(utils::localize.get("app_settings_certification"));

        usFccIdText = new gui::Text(this,
                                    style::certification::textfc::x,
                                    style::certification::textfc::y,
                                    style::certification::textfc::width,
                                    style::certification::textfc::height);
        usFccIdText->setFont(::style::window::font::bigbold);
        usFccIdValue = new gui::Text(this,
                                     style::certification::valuefc::x,
                                     style::certification::valuefc::y,
                                     style::certification::valuefc::width,
                                     style::certification::valuefc::height);
        usFccIdImage = new gui::Image(this,
                                      style::certification::imagefc::x,
                                      style::certification::imagefc::y,
                                      style::certification::imagefc::width,
                                      style::certification::imagefc::height,
                                      "settings_certification_fc");

        canadaIcText = new gui::Text(this,
                                     style::certification::textic::x,
                                     style::certification::textic::y,
                                     style::certification::textic::width,
                                     style::certification::textic::height);
        canadaIcText->setFont(::style::window::font::bigbold);
        canadaIcValue = new gui::Text(this,
                                      style::certification::valueic::x,
                                      style::certification::valueic::y,
                                      style::certification::valueic::width,
                                      style::certification::valueic::height);
        canadaIcImage = new gui::Image(this,
                                       style::certification::imageic::x,
                                       style::certification::imageic::y,
                                       style::certification::imageic::width,
                                       style::certification::imageic::height,
                                       "settings_certification_ic");

        europeCeText = new gui::Text(this,
                                     style::certification::textce::x,
                                     style::certification::textce::y,
                                     style::certification::textce::width,
                                     style::certification::textce::height);
        europeCeText->setFont(::style::window::font::bigbold);
        europeCeValue = new gui::Text(this,
                                      style::certification::valuece::x,
                                      style::certification::valuece::y,
                                      style::certification::valuece::width,
                                      style::certification::valuece::height);
        europeCeImage = new gui::Image(this,
                                       style::certification::imagece::x,
                                       style::certification::imagece::y,
                                       style::certification::imagece::width,
                                       style::certification::imagece::height,
                                       "settings_certification_ce");

        bottomBar->setText(BottomBar::Side::RIGHT, utils::localize.get(style::strings::common::back));
    }

    void CertificationWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        // dummy data for now (to be changed later)
        usFccIdText->setText(utils::localize.get("app_settings_us_fcc_id"));
        usFccIdValue->setText(certno);
        canadaIcText->setText(utils::localize.get("app_settings_canada_ic"));
        canadaIcValue->setText(certno);
        europeCeText->setText(utils::localize.get("app_settings_europe"));
        europeCeValue->setText(certno);
    }

    void CertificationWindow::destroyInterface()
    {
        erase();
        usFccIdText   = nullptr;
        usFccIdValue  = nullptr;
        usFccIdImage  = nullptr;
        canadaIcText  = nullptr;
        canadaIcValue = nullptr;
        canadaIcImage = nullptr;
        europeCeText  = nullptr;
        europeCeValue = nullptr;
        europeCeImage = nullptr;
    };

    CertificationWindow::~CertificationWindow()
    {
        destroyInterface();
    }
} // namespace gui

A module-apps/application-settings-new/windows/CertificationWindow.hpp => module-apps/application-settings-new/windows/CertificationWindow.hpp +32 -0
@@ 0,0 1,32 @@
// 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 CertificationWindow : public AppWindow
    {
      public:
        explicit CertificationWindow(app::Application *app);
        ~CertificationWindow() override;
        void destroyInterface() override;

      private:
        void buildInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

        gui::Text *usFccIdText    = nullptr;
        gui::Text *usFccIdValue   = nullptr;
        gui::Image *usFccIdImage  = nullptr;
        gui::Text *canadaIcText   = nullptr;
        gui::Text *canadaIcValue  = nullptr;
        gui::Image *canadaIcImage = nullptr;
        gui::Text *europeCeText   = nullptr;
        gui::Text *europeCeValue  = nullptr;
        gui::Image *europeCeImage = nullptr;
    };

} // namespace gui