~aleteoryx/muditaos

df242323de2021baa3ec54e8f8a52e70ebad9491 — Przemyslaw Brudny 4 years ago a360454
[EGD-7135] Display and keypad setting cleanup and fixes

Display and keypad setting cleanup. Moved settings window
Names to separate file. Added selective build options.
Fixed SpinBox arrows position. Fixed focus on window start
in InputLanguageWindow and KeypadLightWindow. Moved AutoLock
to Security. Disabled not working options in UI.
67 files changed, 389 insertions(+), 423 deletions(-)

M image/assets/lang/Deutsch.json
M image/assets/lang/English.json
M image/assets/lang/Espanol.json
M image/assets/lang/Francais.json
M image/assets/lang/Polski.json
M module-apps/CMakeLists.txt
M module-apps/application-settings/ApplicationSettings.cpp
M module-apps/application-settings/ApplicationSettings.hpp
M module-apps/application-settings/CMakeLists.txt
M module-apps/application-settings/data/QuoteSwitchData.hpp
R module-apps/application-settings/models/{ => display-keypad}/CategoriesModel.cpp
R module-apps/application-settings/models/{ => display-keypad}/CategoriesModel.hpp
R module-apps/application-settings/models/{ => display-keypad}/QuotesModel.cpp
R module-apps/application-settings/models/{ => display-keypad}/QuotesModel.hpp
M module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp
M module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp
R module-apps/application-settings/widgets/{ => display-keypad}/CategoryWidget.cpp
R module-apps/application-settings/widgets/{ => display-keypad}/CategoryWidget.hpp
R module-apps/application-settings/widgets/{ => display-keypad}/QuoteWidget.cpp
R module-apps/application-settings/widgets/{ => display-keypad}/QuoteWidget.hpp
D module-apps/application-settings/windows/LockedScreenWindow.cpp
D module-apps/application-settings/windows/LockedScreenWindow.hpp
M module-apps/application-settings/windows/SecurityMainWindow.cpp
M module-apps/application-settings/windows/SettingsMainWindow.cpp
A module-apps/application-settings/windows/WindowNames.hpp
M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp
M module-apps/application-settings/windows/advanced/ColorTestWindow.cpp
M module-apps/application-settings/windows/advanced/EinkModeWindow.cpp
M module-apps/application-settings/windows/advanced/InformationWindow.cpp
M module-apps/application-settings/windows/advanced/UITestWindow.cpp
M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp
M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp
M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp
M module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp
M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/DisplayAndKeypadWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/DisplayAndKeypadWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/DisplayLightWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/DisplayLightWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/EditQuotesWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/EditQuotesWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/FontSizeWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/FontSizeWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/InputLanguageWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/InputLanguageWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/KeypadLightWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/KeypadLightWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/QuoteCategoriesWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/QuoteCategoriesWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesAddWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesAddWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesMainWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesMainWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesOptionsWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/QuotesOptionsWindow.hpp
R module-apps/application-settings/windows/{ => display-keypad}/WallpaperWindow.cpp
R module-apps/application-settings/windows/{ => display-keypad}/WallpaperWindow.hpp
M module-apps/application-settings/windows/network/ApnOptionsWindow.cpp
M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp
M module-apps/application-settings/windows/network/NewApnWindow.cpp
M module-apps/apps-common/CMakeLists.txt
R module-apps/{application-settings => apps-common}/widgets/SpinBox.cpp
R module-apps/{application-settings => apps-common}/widgets/SpinBox.hpp
M module-gui/gui/widgets/Text.cpp
M module-utils/i18n/i18n.cpp
M module-utils/i18n/i18nImpl.hpp
M module-utils/i18n/include/i18n/i18n.hpp
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +3 -3
@@ 471,9 471,9 @@
  "app_settings_apn_apnprotocol": "APN-Protokoll",
  "app_settings_title_color_test": "Verfügbare Farben anzeigen",
  "app_settings_toolbar_reset": "ZURÜCKSETZEN",
  "app_settings_option_connected": "<text font='gt_pressura' weight='regular' size='27'>VERBUNDEN</text>",
  "app_settings_option_connecting": "<text font='gt_pressura' weight='regular' size='27'>WIRD VERBUNDEN</text>",
  "app_settings_option_pairing": "<text font='gt_pressura' weight='regular' size='27'>WIRD GEKOPPELT</text>",
  "app_settings_option_connected": "VERBUNDEN",
  "app_settings_option_connecting": "WIRD VERBUNDEN",
  "app_settings_option_pairing": "WIRD GEKOPPELT",
  "app_settings_title_do_not_disturb": "Nicht stören",
  "app_settings_title_offline": "Offline",
  "app_settings_title_connection_frequency": "Verbindungsfrequenz",

M image/assets/lang/English.json => image/assets/lang/English.json +3 -3
@@ 441,9 441,9 @@
  "app_settings_apn_apnprotocol": "APN protocol",
  "app_settings_title_color_test": "Display available colors",
  "app_settings_toolbar_reset": "RESET",
  "app_settings_option_connected": "<text font='gt_pressura' weight='regular' size='27'>CONNECTED</text>",
  "app_settings_option_connecting": "<text font='gt_pressura' weight='regular' size='27'>CONNECTING</text>",
  "app_settings_option_pairing": "<text font='gt_pressura' weight='regular' size='27'>PAIRING</text>",
  "app_settings_option_connected": "CONNECTED",
  "app_settings_option_connecting": "CONNECTING",
  "app_settings_option_pairing": "PAIRING",
  "app_settings_title_do_not_disturb": "Do not disturb",
  "app_settings_title_offline": "Offline",
  "app_settings_title_connection_frequency": "Connection frequency",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +3 -3
@@ 471,9 471,9 @@
  "app_settings_apn_apnprotocol": "Protocolo APN",
  "app_settings_title_color_test": "Mostrar colores disponibles",
  "app_settings_toolbar_reset": "RESTABLECER",
  "app_settings_option_connected": "<text font='gt_pressura' weight='regular' size='27'>CONECTADO</text>",
  "app_settings_option_connecting": "<text font='gt_pressura' weight='regular' size='27'>CONECTANDO</text>",
  "app_settings_option_pairing": "<text font='gt_pressura' weight='regular' size='27'>EMPAREJANDO</text>",
  "app_settings_option_connected": "CONECTADO",
  "app_settings_option_connecting": "CONECTANDO",
  "app_settings_option_pairing": "EMPAREJANDO",
  "app_settings_title_do_not_disturb": "No molestar",
  "app_settings_title_offline": "Desconectado",
  "app_settings_title_connection_frequency": "Frecuencia de conexión",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +3 -3
@@ 440,9 440,9 @@
  "app_settings_apn_apnprotocol": "APN protocol",
  "app_settings_title_color_test": "Display available colors",
  "app_settings_toolbar_reset": "RESET",
  "app_settings_option_connected": "<text font='gt_pressura' weight='regular' size='27'>CONNECTED</text>",
  "app_settings_option_connecting": "<text font='gt_pressura' weight='regular' size='27'>CONNECTING</text>",
  "app_settings_option_pairing": "<text font='gt_pressura' weight='regular' size='27'>PAIRING</text>",
  "app_settings_option_connected": "CONNECTED",
  "app_settings_option_connecting": "CONNECTING",
  "app_settings_option_pairing": "PAIRING",
  "app_settings_title_do_not_disturb": "Ne pas déranger",
  "app_settings_title_offline": "Hors ligne",
  "app_settings_title_connection_frequency": "Fréquence de connexion",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +3 -3
@@ 471,9 471,9 @@
  "app_settings_apn_apnprotocol": "Protokół APN",
  "app_settings_title_color_test": "Wyświetlaj dostępne kolory",
  "app_settings_toolbar_reset": "RESETUJ",
  "app_settings_option_connected": "<text font='gt_pressura' weight='regular' size='27'>POŁĄCZONO</text>",
  "app_settings_option_connecting": "<text font='gt_pressura' weight='regular' size='27'>ŁĄCZENIE</text>",
  "app_settings_option_pairing": "<text font='gt_pressura' weight='regular' size='27'>PAROWANIE</text>",
  "app_settings_option_connected": "POŁĄCZONO",
  "app_settings_option_connecting": "ŁĄCZENIE",
  "app_settings_option_pairing": "PAROWANIE",
  "app_settings_title_do_not_disturb": "Nie przeszkadzać",
  "app_settings_title_offline": "Offline",
  "app_settings_title_connection_frequency": "Częstotliwość połączenia",

M module-apps/CMakeLists.txt => module-apps/CMakeLists.txt +10 -0
@@ 67,6 67,16 @@ if(${ENABLE_VOLTE})
    target_compile_definitions(${PROJECT_NAME} PUBLIC ENABLE_VOLTE=1)
endif()

option(DISABLED_SETTINGS_OPTIONS "Enable Disabled Settings Options" OFF)
if(${DISABLED_SETTINGS_OPTIONS})
    target_compile_definitions(${PROJECT_NAME} PUBLIC DISABLED_SETTINGS_OPTIONS=1)
endif()

option(DEVELOPER_SETTINGS_OPTIONS "Enable Developer Settings Options" ON)
if(${DEVELOPER_SETTINGS_OPTIONS})
    target_compile_definitions(${PROJECT_NAME} PUBLIC DEVELOPER_SETTINGS_OPTIONS=1)
endif()

target_link_libraries(${PROJECT_NAME}
    PRIVATE
        application-messages

M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +52 -48
@@ 19,12 19,17 @@
#include <application-settings/windows/network/NewApnWindow.hpp>
#include <application-settings/windows/network/ApnSettingsWindow.hpp>
#include <application-settings/windows/network/ApnOptionsWindow.hpp>
#include <application-settings/windows/DisplayAndKeypadWindow.hpp>
#include <application-settings/windows/InputLanguageWindow.hpp>
#include <application-settings/windows/LockedScreenWindow.hpp>
#include <application-settings/windows/FontSizeWindow.hpp>
#include <application-settings/windows/DisplayLightWindow.hpp>
#include <application-settings/windows/KeypadLightWindow.hpp>
#include <application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp>
#include <application-settings/windows/display-keypad/DisplayLightWindow.hpp>
#include <application-settings/windows/display-keypad/FontSizeWindow.hpp>
#include <application-settings/windows/display-keypad/WallpaperWindow.hpp>
#include <application-settings/windows/display-keypad/QuotesMainWindow.hpp>
#include <application-settings/windows/display-keypad/QuotesAddWindow.hpp>
#include <application-settings/windows/display-keypad/EditQuotesWindow.hpp>
#include <application-settings/windows/display-keypad/QuoteCategoriesWindow.hpp>
#include <application-settings/windows/display-keypad/QuotesOptionsWindow.hpp>
#include <application-settings/windows/display-keypad/KeypadLightWindow.hpp>
#include <application-settings/windows/display-keypad/InputLanguageWindow.hpp>
#include <application-settings/windows/AppsAndToolsWindow.hpp>
#include <application-settings/windows/NightshiftWindow.hpp>
#include <application-settings/windows/PhoneWindow.hpp>


@@ 33,13 38,7 @@
#include <application-settings/windows/SoundSelectWindow.hpp>
#include <application-settings/windows/AutolockWindow.hpp>
#include <application-settings/windows/TorchWindow.hpp>
#include <application-settings/windows/WallpaperWindow.hpp>
#include <application-settings/windows/QuotesMainWindow.hpp>
#include <application-settings/windows/QuotesAddWindow.hpp>
#include <application-settings/windows/EditQuotesWindow.hpp>
#include <application-settings/windows/QuoteCategoriesWindow.hpp>
#include <application-settings/windows/SecurityMainWindow.hpp>
#include <application-settings/windows/QuotesOptionsWindow.hpp>
#include <application-settings/windows/SARInfoWindow.hpp>
#include <application-settings/windows/SystemMainWindow.hpp>
#include <application-settings/windows/LanguagesWindow.hpp>


@@ 62,7 61,6 @@
#include <application-settings/data/PhoneNameData.hpp>
#include <application-settings/data/PINSettingsLockStateData.hpp>
#include <application-settings/data/AutoLockData.hpp>

#include <service-evtmgr/EventManagerServiceAPI.hpp>
#include <service-bluetooth/BluetoothMessage.hpp>
#include <service-bluetooth/Constants.hpp>


@@ 338,6 336,8 @@ namespace app
            return std::make_unique<gui::OptionWindow>(
                app, utils::translate("app_settings_title_main"), mainWindowOptionsNew(app));
        });

        // Advanced
        windowsFactory.attach(gui::window::name::advanced, [](Application *app, const std::string &name) {
            return std::make_unique<gui::OptionWindow>(
                app, utils::translate("app_settings_advanced"), advancedOptions(app));


@@ 354,6 354,8 @@ namespace app
        windowsFactory.attach(gui::window::name::color_test_window, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ColorTestWindow>(app);
        });

        // Bluetooth
        windowsFactory.attach(gui::window::name::bluetooth, [](Application *app, const std::string &name) {
            return std::make_unique<gui::BluetoothWindow>(app);
        });


@@ 370,32 372,58 @@ namespace app
                              [](Application *app, const std::string &name) {
                                  return std::make_unique<gui::BluetoothCheckPasskeyWindow>(app);
                              });

        // Network
        windowsFactory.attach(gui::window::name::network, [](Application *app, const std::string &name) {
            return std::make_unique<gui::NetworkWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::sim_cards, [](Application *app, const std::string &name) {
            return std::make_unique<gui::SimCardsWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::dialog_settings, [](Application *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        windowsFactory.attach(gui::window::name::apn_settings, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ApnSettingsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::apn_options, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ApnOptionsWindow>(app);
        });

        // Display and keypad
        windowsFactory.attach(gui::window::name::display_and_keypad, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DisplayAndKeypadWindow>(app);
        });
        windowsFactory.attach(gui::window::name::input_language, [](Application *app, const std::string &name) {
            return std::make_unique<gui::InputLanguageWindow>(app);
        windowsFactory.attach(gui::window::name::display_light, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DisplayLightWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::font_size, [](Application *app, const std::string &name) {
            return std::make_unique<gui::FontSizeWindow>(app);
        });
        windowsFactory.attach(gui::window::name::wallpaper, [](Application *app, const std::string &name) {
            return std::make_unique<gui::WallpaperWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quotes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuotesMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::new_quote, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuoteAddEditWindow>(app);
        });
        windowsFactory.attach(gui::window::name::locked_screen, [](Application *app, const std::string &name) {
            return std::make_unique<gui::LockedScreenWindow>(app);
        windowsFactory.attach(gui::window::name::options_quote, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuotesOptionsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::edit_quotes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::EditQuotesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quote_categories, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuoteCategoriesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::keypad_light, [](Application *app, const std::string &name) {
            return std::make_unique<gui::KeypadLightWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::font_size, [](Application *app, const std::string &name) {
            return std::make_unique<gui::FontSizeWindow>(app);
        windowsFactory.attach(gui::window::name::input_language, [](Application *app, const std::string &name) {
            return std::make_unique<gui::InputLanguageWindow>(app);
        });
        windowsFactory.attach(gui::window::name::display_light, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DisplayLightWindow>(app, static_cast<ApplicationSettings *>(app));

        windowsFactory.attach(gui::window::name::dialog_settings, [](Application *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(gui::window::name::apps_and_tools, [](Application *app, const std::string &name) {
            return std::make_unique<gui::AppsAndToolsWindow>(app);


@@ 403,13 431,6 @@ namespace app
        windowsFactory.attach(gui::window::name::nightshift, [](Application *app, const std::string &name) {
            return std::make_unique<gui::NightshiftWindow>(app);
        });

        windowsFactory.attach(gui::window::name::apn_settings, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ApnSettingsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::apn_options, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ApnOptionsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::phone, [](Application *app, const std::string &name) {
            auto audioModel =
                std::make_unique<audio_settings::AudioSettingsModel>(app, audio_settings::PlaybackType::CallRingtone);


@@ 435,9 456,7 @@ namespace app
        windowsFactory.attach(gui::window::name::torch, [](Application *app, const std::string &name) {
            return std::make_unique<gui::TorchWindow>(app);
        });
        windowsFactory.attach(gui::window::name::wallpaper, [](Application *app, const std::string &name) {
            return std::make_unique<gui::WallpaperWindow>(app);
        });

        windowsFactory.attach(gui::window::name::quotes_dialog_yes_no, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });


@@ 490,21 509,6 @@ namespace app
        windowsFactory.attach(gui::window::name::dialog_retry, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DialogRetry>(app, name);
        });
        windowsFactory.attach(gui::window::name::quotes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuotesMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::new_quote, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuoteAddEditWindow>(app);
        });
        windowsFactory.attach(gui::window::name::options_quote, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuotesOptionsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::edit_quotes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::EditQuotesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quote_categories, [](Application *app, const std::string &name) {
            return std::make_unique<gui::QuoteCategoriesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::phone_modes, [](Application *app, const std::string &name) {
            return std::make_unique<gui::PhoneModesWindow>(
                app, static_cast<ApplicationSettings *>(app), static_cast<ApplicationSettings *>(app));

M module-apps/application-settings/ApplicationSettings.hpp => module-apps/application-settings/ApplicationSettings.hpp +2 -77
@@ 5,87 5,12 @@

#include "Application.hpp"

#include <application-settings/windows/WindowNames.hpp>
#include <bsp/common.hpp>
#include <bsp/keypad_backlight/keypad_backlight.hpp>
#include <module-services/service-evtmgr/screen-light-control/ScreenLightControl.hpp>
#include <service-evtmgr/screen-light-control/ScreenLightControl.hpp>
#include <EventStore.hpp>

namespace gui::window::name
{
    inline constexpr auto advanced          = "Advanced";
    inline constexpr auto information       = "Information";
    inline constexpr auto ui_test           = "UI Test";
    inline constexpr auto eink_mode         = "Change Eink Mode";
    inline constexpr auto color_test_window = "Color Test";

    inline constexpr auto bluetooth               = "Bluetooth";
    inline constexpr auto all_devices             = "AllDevices";
    inline constexpr auto phone_name              = "PhoneName";
    inline constexpr auto add_device              = "AddDevice";
    inline constexpr auto bluetooth_check_passkey = "BluetoothCheckPasskey";

    inline constexpr auto network       = "Network";
    inline constexpr auto sim_cards     = "SimCards";
    inline constexpr auto all_operators = "AllOperators";
    inline constexpr auto apn_settings  = "APNSettings";
    inline constexpr auto apn_options   = "APNOptions";

    inline constexpr auto phone_modes    = "PhoneModes";
    inline constexpr auto apps_and_tools = "AppsAndTools";
    inline constexpr auto security       = "Security";
    inline constexpr auto system         = "System";

    inline constexpr auto display_light  = "DisplayLight";
    inline constexpr auto font_size      = "FontSize";
    inline constexpr auto keypad_light   = "KeypadLight";
    inline constexpr auto input_language = "InputLanguage";
    inline constexpr auto locked_screen  = "LockedScreen";

    inline constexpr auto phone             = "Phone";
    inline constexpr auto messages          = "Messages";
    inline constexpr auto message_templates = "MessageTemplates";
    inline constexpr auto alarm_clock       = "AlarmClock";
    inline constexpr auto sound_select      = "SoundSelect";
    inline constexpr auto torch             = "Torch";
    inline constexpr auto nightshift        = "Nightshift";

    inline constexpr auto autolock             = "Autolock";
    inline constexpr auto wallpaper            = "Wallpaper";
    inline constexpr auto quotes               = "Quotes";
    inline constexpr auto new_quote            = "NewQuote";
    inline constexpr auto edit_quote           = "EditQuote";
    inline constexpr auto edit_quotes          = "EditQuotes";
    inline constexpr auto options_quote        = "OptionsQuote";
    inline constexpr auto delete_quote         = "DeleteQuote";
    inline constexpr auto quotes_dialog_yes_no = "DialogYesNo";
    inline constexpr auto quote_categories     = "QuoteCategories";

    inline constexpr auto display_and_keypad = "DisplayAndKeypad";
    inline constexpr auto change_settings    = "ChangeSettings";
    inline constexpr auto pin_settings       = "PINSettings";
    inline constexpr auto import_contacts    = "ImportContacts";
    inline constexpr auto dialog_settings    = "DialogSettings";
    inline constexpr auto change_passcode    = "ChangePasscode";

    inline constexpr auto languages             = "Languages";
    inline constexpr auto date_and_time         = "DateAndTime";
    inline constexpr auto factory_reset         = "FactoryReset";
    inline constexpr auto about_your_pure       = "AboutYourPure";
    inline constexpr auto technical_information = "TechnicalInformation";
    inline constexpr auto certification         = "Certification";
    inline constexpr auto sar                   = "Sar";

    inline constexpr auto change_date_and_time = "ChangeDateAndTime";
    inline constexpr auto change_time_zone     = "ChangeTimeZone";

    inline constexpr auto new_apn = "NewApn";

    inline constexpr auto do_not_disturb       = "DoNotDisturb";
    inline constexpr auto offline              = "Offline";
    inline constexpr auto connection_frequency = "ConnectionFrequency";

} // namespace gui::window::name

namespace app
{
    inline constexpr auto name_settings = "ApplicationSettings";

M module-apps/application-settings/CMakeLists.txt => module-apps/application-settings/CMakeLists.txt +25 -27
@@ 19,10 19,10 @@ target_sources( ${PROJECT_NAME}
        models/bluetooth/BluetoothSettingsModel.cpp
        models/network/ApnSettingsModel.cpp
        models/network/NewApnModel.cpp
        models/display-keypad/QuotesModel.cpp
        models/display-keypad/CategoriesModel.cpp
        models/DateAndTimeModel.cpp
        models/FromTimeToTimeModel.cpp
        models/QuotesModel.cpp
        models/CategoriesModel.cpp
        models/SARInfoRepository.cpp
        models/FactoryData.cpp
        models/AudioSettingsModel.cpp


@@ 32,8 32,8 @@ target_sources( ${PROJECT_NAME}
        widgets/advanced/ColorTestListItem.cpp
        widgets/advanced/ColorTestListView.cpp
        widgets/network/ApnInputWidget.cpp
        widgets/QuoteWidget.cpp
        widgets/CategoryWidget.cpp
        widgets/display-keypad/QuoteWidget.cpp
        widgets/display-keypad/CategoryWidget.cpp
        widgets/SettingsDateItem.cpp
        widgets/SettingsTimeItem.cpp
        widgets/SettingsSoundItem.cpp


@@ 52,13 52,18 @@ target_sources( ${PROJECT_NAME}
        windows/network/SimCardsWindow.cpp
        windows/network/ApnSettingsWindow.cpp
        windows/network/ApnOptionsWindow.cpp
        windows/display-keypad/DisplayAndKeypadWindow.cpp
        windows/display-keypad/DisplayLightWindow.cpp
        windows/display-keypad/FontSizeWindow.cpp
        windows/display-keypad/WallpaperWindow.cpp
        windows/display-keypad/QuotesMainWindow.cpp
        windows/display-keypad/QuotesAddWindow.cpp
        windows/display-keypad/QuotesOptionsWindow.cpp
        windows/display-keypad/EditQuotesWindow.cpp
        windows/display-keypad/QuoteCategoriesWindow.cpp
        windows/display-keypad/KeypadLightWindow.cpp
        windows/display-keypad/InputLanguageWindow.cpp
        windows/BaseSettingsWindow.cpp
        windows/FontSizeWindow.cpp
        windows/InputLanguageWindow.cpp
        windows/DisplayLightWindow.cpp
        windows/KeypadLightWindow.cpp
        windows/LockedScreenWindow.cpp
        windows/DisplayAndKeypadWindow.cpp
        windows/AppsAndToolsWindow.cpp
        windows/NightshiftWindow.cpp
        windows/OptionsWidgetMaker.cpp


@@ 68,22 73,15 @@ target_sources( ${PROJECT_NAME}
        windows/SoundSelectWindow.cpp
        windows/AutolockWindow.cpp
        windows/TorchWindow.cpp
        windows/WallpaperWindow.cpp
        windows/QuotesMainWindow.cpp
        windows/QuotesAddWindow.cpp
        windows/QuotesOptionsWindow.cpp
        windows/SARInfoWindow.cpp
        windows/SecurityMainWindow.cpp
        windows/network/NewApnWindow.cpp
        widgets/SpinBox.cpp
        widgets/SpinBoxOptionSettings.cpp
        windows/SystemMainWindow.cpp
        windows/LanguagesWindow.cpp
        windows/DateAndTimeMainWindow.cpp
        windows/ChangeTimeZone.cpp
        windows/ChangeDateAndTimeWindow.cpp
        windows/EditQuotesWindow.cpp
        windows/QuoteCategoriesWindow.cpp
        windows/ConnectionFrequencyWindow.cpp
        windows/DoNotDisturbWindow.cpp
        windows/OfflineWindow.cpp


@@ 100,8 98,9 @@ target_sources( ${PROJECT_NAME}
        widgets/advanced/ColorTestListItem.hpp
        widgets/advanced/ColorTestListStyle.hpp
        widgets/network/ApnInputWidget.hpp
        widgets/CategoryWidget.hpp
        widgets/display-keypad/CategoryWidget.hpp
        windows/SettingsMainWindow.hpp
        windows/WindowNames.hpp
        windows/advanced/AdvancedOptionsWindow.hpp
        windows/advanced/InformationWindow.hpp
        windows/advanced/UITestWindow.hpp


@@ 109,24 108,23 @@ target_sources( ${PROJECT_NAME}
        windows/advanced/ColorTestWindow.hpp
        windows/network/SimCardsWindow.hpp
        windows/network/NewApnWindow.hpp
        windows/display-keypad/DisplayAndKeypadWindow.hpp
        windows/display-keypad/DisplayLightWindow.hpp
        windows/display-keypad/FontSizeWindow.hpp
        windows/display-keypad/WallpaperWindow.hpp
        windows/display-keypad/EditQuotesWindow.hpp
        windows/display-keypad/QuoteCategoriesWindow.hpp
        windows/display-keypad/KeypadLightWindow.hpp
        windows/display-keypad/InputLanguageWindow.hpp
        windows/BaseSettingsWindow.hpp
        windows/FontSizeWindow.hpp
        windows/InputLanguageWindow.hpp
        windows/DisplayLightWindow.hpp
        windows/KeypadLightWindow.hpp
        windows/LockedScreenWindow.hpp
        windows/DisplayAndKeypadWindow.hpp
        windows/AppsAndToolsWindow.hpp
        windows/MessagesWindow.hpp
        widgets/SettingsStyle.hpp
        windows/AutolockWindow.hpp
        windows/WallpaperWindow.hpp
        windows/SystemMainWindow.hpp
        windows/LanguagesWindow.hpp
        windows/DateAndTimeMainWindow.hpp
        windows/ChangeDateAndTimeWindow.hpp
        windows/EditQuotesWindow.hpp
        windows/QuoteCategoriesWindow.hpp
        windows/AboutYourPureWindow.hpp
        windows/CertificationWindow.hpp
        windows/TechnicalInformationWindow.hpp

M module-apps/application-settings/data/QuoteSwitchData.hpp => module-apps/application-settings/data/QuoteSwitchData.hpp +1 -4
@@ 3,11 3,8 @@

#pragma once

#include "application-settings/models/QuotesModel.hpp"

#include <application-settings/models/display-keypad/QuotesModel.hpp>
#include <SwitchData.hpp>
#include <json11.hpp>
#include <utility>

namespace Quotes
{

R module-apps/application-settings/models/CategoriesModel.cpp => module-apps/application-settings/models/display-keypad/CategoriesModel.cpp +3 -1
@@ 1,9 1,11 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "application-settings/windows/QuoteCategoriesWindow.hpp"
#include "CategoriesModel.hpp"

#include <application-settings/widgets/display-keypad/CategoryWidget.hpp>
#include <ListView.hpp>

namespace style::quotes::list
{
    constexpr auto item_height = 63;

R module-apps/application-settings/models/CategoriesModel.hpp => module-apps/application-settings/models/display-keypad/CategoriesModel.hpp +0 -0
R module-apps/application-settings/models/QuotesModel.cpp => module-apps/application-settings/models/display-keypad/QuotesModel.cpp +4 -8
@@ 1,17 1,13 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "application-settings/windows/QuotesMainWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "QuotesModel.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/widgets/display-keypad/QuoteWidget.hpp>

#include <InputEvent.hpp>
#include <i18n/i18n.hpp>
#include <json11.hpp>
#include <Utils.hpp>
#include <string>
#include <utility>
#include <service-db/QuotesMessages.hpp>
#include <ListView.hpp>

namespace style::quotes::list
{

R module-apps/application-settings/models/QuotesModel.hpp => module-apps/application-settings/models/display-keypad/QuotesModel.hpp +0 -0
M module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp => module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp +1 -2
@@ 3,8 3,7 @@

#include "SpinBoxOptionSettings.hpp"

#include <utility>
#include "SpinBox.hpp"
#include <widgets/SpinBox.hpp>

namespace gui
{

M module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp => module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp +1 -5
@@ 3,11 3,7 @@

#pragma once

#include "SpinBox.hpp"
#include "OptionWindow.hpp"
#include "Application.hpp"

#include <apps-common/options/type/OptionSetting.hpp>
#include <OptionSetting.hpp>

namespace gui
{

R module-apps/application-settings/widgets/CategoryWidget.cpp => module-apps/application-settings/widgets/display-keypad/CategoryWidget.cpp +0 -5
@@ 3,11 3,6 @@

#include "CategoryWidget.hpp"

#include <BottomBar.hpp>
#include <InputEvent.hpp>
#include <utility>
#include <i18n/i18n.hpp>

namespace style::quotes
{
    namespace widget

R module-apps/application-settings/widgets/CategoryWidget.hpp => module-apps/application-settings/widgets/display-keypad/CategoryWidget.hpp +0 -1
@@ 9,7 9,6 @@
#include <Image.hpp>
#include <Label.hpp>
#include <ListItem.hpp>
#include <service-db/QuotesMessages.hpp>

namespace gui
{

R module-apps/application-settings/widgets/QuoteWidget.cpp => module-apps/application-settings/widgets/display-keypad/QuoteWidget.cpp +0 -5
@@ 3,11 3,6 @@

#include "QuoteWidget.hpp"

#include <BottomBar.hpp>
#include <InputEvent.hpp>
#include <utility>
#include <i18n/i18n.hpp>

namespace style::quotes
{
    namespace widget

R module-apps/application-settings/widgets/QuoteWidget.hpp => module-apps/application-settings/widgets/display-keypad/QuoteWidget.hpp +0 -1
@@ 9,7 9,6 @@
#include <ImageBox.hpp>
#include <Label.hpp>
#include <ListItem.hpp>
#include <service-db/QuotesMessages.hpp>

namespace gui
{

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

#include "LockedScreenWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "OptionSetting.hpp"

#include <i18n/i18n.hpp>

namespace gui
{

    LockedScreenWindow::LockedScreenWindow(app::Application *app) : BaseSettingsWindow(app, window::name::locked_screen)
    {
        setTitle(utils::translate("app_settings_display_locked_screen"));
    }

    auto LockedScreenWindow::buildOptionsList() -> std::list<Option>
    {
        std::list<gui::Option> optionList;

        auto addMenu = [&](UTF8 name, std::string window = "") {
            optionList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                name,
                [=](gui::Item &item) {
                    if (window.empty()) {
                        return false;
                    }
                    LOG_INFO("switching to %s page", window.c_str());
                    application->switchWindow(window, nullptr);
                    return true;
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                    }
                    return true;
                },
                this,
                gui::option::SettingRightItem::ArrowWhite));
        };

        addMenu(utils::translate("app_settings_display_locked_screen_autolock"), gui::window::name::autolock);
        addMenu(utils::translate("app_settings_display_locked_screen_wallpaper"), gui::window::name::wallpaper);

        return optionList;
    }

} // namespace gui

D module-apps/application-settings/windows/LockedScreenWindow.hpp => module-apps/application-settings/windows/LockedScreenWindow.hpp +0 -16
@@ 1,16 0,0 @@
// Copyright (c) 2017-2020, 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 LockedScreenWindow : public BaseSettingsWindow
    {
      public:
        LockedScreenWindow(app::Application *app);
        auto buildOptionsList() -> std::list<Option> override;
    };
} // namespace gui

M module-apps/application-settings/windows/SecurityMainWindow.cpp => module-apps/application-settings/windows/SecurityMainWindow.cpp +11 -0
@@ 55,6 55,17 @@ namespace gui
                option::SettingRightItem::ArrowWhite));
        }

        optionList.emplace_back(std::make_unique<gui::option::OptionSettings>(
            utils::translate("app_settings_display_locked_screen_autolock"),
            [=](gui::Item &item) {
                this->application->switchWindow(gui::window::name::autolock, nullptr);
                return true;
            },
            nullptr,
            nullptr,
            gui::option::SettingRightItem::ArrowWhite,
            false));

        return optionList;
    }
} // namespace gui

M module-apps/application-settings/windows/SettingsMainWindow.cpp => module-apps/application-settings/windows/SettingsMainWindow.cpp +3 -0
@@ 26,7 26,10 @@ std::list<gui::Option> mainWindowOptionsNew(app::Application *app)
                                   gui::option::Arrow::Enabled});
    };

#if DEVELOPER_SETTINGS_OPTIONS == 1
    addMenu(i18("app_settings_advanced"), gui::window::name::advanced);
#endif // DEVELOPER_SETTINGS_OPTIONS

    addMenu(i18("app_settings_bt"), gui::window::name::bluetooth);
    addMenu(i18("app_settings_net"), gui::window::name::network);
    addMenu(i18("app_settings_disp_key"), gui::window::name::display_and_keypad);

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

#pragma once

namespace gui::window::name
{
    inline constexpr auto advanced          = "Advanced";
    inline constexpr auto information       = "Information";
    inline constexpr auto ui_test           = "UI Test";
    inline constexpr auto eink_mode         = "Change Eink Mode";
    inline constexpr auto color_test_window = "Color Test";

    inline constexpr auto bluetooth               = "Bluetooth";
    inline constexpr auto all_devices             = "AllDevices";
    inline constexpr auto phone_name              = "PhoneName";
    inline constexpr auto add_device              = "AddDevice";
    inline constexpr auto bluetooth_check_passkey = "BluetoothCheckPasskey";

    inline constexpr auto network         = "Network";
    inline constexpr auto sim_cards       = "SimCards";
    inline constexpr auto import_contacts = "ImportContacts";
    inline constexpr auto all_operators   = "AllOperators";
    inline constexpr auto apn_settings    = "APNSettings";
    inline constexpr auto apn_options     = "APNOptions";
    inline constexpr auto new_apn         = "NewApn";

    inline constexpr auto display_light        = "DisplayLight";
    inline constexpr auto font_size            = "FontSize";
    inline constexpr auto wallpaper            = "Wallpaper";
    inline constexpr auto quotes               = "Quotes";
    inline constexpr auto new_quote            = "NewQuote";
    inline constexpr auto edit_quotes          = "EditQuotes";
    inline constexpr auto options_quote        = "OptionsQuote";
    inline constexpr auto delete_quote         = "DeleteQuote";
    inline constexpr auto quotes_dialog_yes_no = "DialogYesNo";
    inline constexpr auto quote_categories     = "QuoteCategories";
    inline constexpr auto keypad_light         = "KeypadLight";
    inline constexpr auto input_language       = "InputLanguage";

    inline constexpr auto phone_modes    = "PhoneModes";
    inline constexpr auto apps_and_tools = "AppsAndTools";
    inline constexpr auto security       = "Security";
    inline constexpr auto system         = "System";

    inline constexpr auto phone             = "Phone";
    inline constexpr auto messages          = "Messages";
    inline constexpr auto message_templates = "MessageTemplates";
    inline constexpr auto alarm_clock       = "AlarmClock";
    inline constexpr auto sound_select      = "SoundSelect";
    inline constexpr auto torch             = "Torch";
    inline constexpr auto nightshift        = "Nightshift";

    inline constexpr auto autolock = "Autolock";

    inline constexpr auto display_and_keypad = "DisplayAndKeypad";
    inline constexpr auto change_settings    = "ChangeSettings";
    inline constexpr auto pin_settings       = "PINSettings";

    inline constexpr auto dialog_settings = "DialogSettings";
    inline constexpr auto change_passcode = "ChangePasscode";

    inline constexpr auto languages             = "Languages";
    inline constexpr auto date_and_time         = "DateAndTime";
    inline constexpr auto factory_reset         = "FactoryReset";
    inline constexpr auto about_your_pure       = "AboutYourPure";
    inline constexpr auto technical_information = "TechnicalInformation";
    inline constexpr auto certification         = "Certification";
    inline constexpr auto sar                   = "Sar";

    inline constexpr auto change_date_and_time = "ChangeDateAndTime";
    inline constexpr auto change_time_zone     = "ChangeTimeZone";

    inline constexpr auto do_not_disturb       = "DoNotDisturb";
    inline constexpr auto offline              = "Offline";
    inline constexpr auto connection_frequency = "ConnectionFrequency";

} // namespace gui::window::name

M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp => module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "AdvancedOptionsWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>

std::list<gui::Option> advancedOptions(app::Application *app)
{

M module-apps/application-settings/windows/advanced/ColorTestWindow.cpp => module-apps/application-settings/windows/advanced/ColorTestWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "ColorTestWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/advanced/ColorTestListStyle.hpp>

#include <service-gui/Common.hpp>

M module-apps/application-settings/windows/advanced/EinkModeWindow.cpp => module-apps/application-settings/windows/advanced/EinkModeWindow.cpp +3 -1
@@ 3,8 3,10 @@

#include "EinkModeWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <messages/EinkModeMessage.hpp>
#include <Application.hpp>
#include <i18n/i18n.hpp>

namespace gui
{

M module-apps/application-settings/windows/advanced/InformationWindow.cpp => module-apps/application-settings/windows/advanced/InformationWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "InformationWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <service-cellular/CellularServiceAPI.hpp>

#include <source/version.hpp>

M module-apps/application-settings/windows/advanced/UITestWindow.cpp => module-apps/application-settings/windows/advanced/UITestWindow.cpp +2 -1
@@ 3,7 3,8 @@

#include "UITestWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <i18n/i18n.hpp>
#include <Font.hpp>

namespace gui

M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp => module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp +2 -2
@@ 2,11 2,11 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "AddDeviceWindow.hpp"
#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/DeviceData.hpp>
#include <application-settings/data/PairingDeviceData.hpp>

#include "OptionSetting.hpp"
#include <OptionSetting.hpp>

extern "C"
{

M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp => module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp +1 -1
@@ 2,7 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "AllDevicesWindow.hpp"
#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/BondedDevicesData.hpp>
#include <application-settings/data/PairingDeviceData.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>

M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp +2 -2
@@ 2,8 2,8 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "BluetoothCheckPasskeyWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/widgets/SettingsStyle.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>
#include <widgets/Text.hpp>
#include <Image.hpp>


M module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp +3 -3
@@ 2,10 2,10 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "BluetoothWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/data/BluetoothStatusData.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/BluetoothStatusData.hpp>

#include "OptionSetting.hpp"
#include <OptionSetting.hpp>

namespace gui
{

M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp => module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp +3 -3
@@ 2,9 2,9 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "PhoneNameWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/data/PhoneNameData.hpp"
#include "widgets/InputBox.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/PhoneNameData.hpp>
#include <widgets/InputBox.hpp>

#include <Utils.hpp>


R module-apps/application-settings/windows/DisplayAndKeypadWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp +7 -5
@@ 3,10 3,8 @@

#include "DisplayAndKeypadWindow.hpp"

#include "application-settings/ApplicationSettings.hpp"
#include "windows/OptionWindow.hpp"
#include "OptionSetting.hpp"

#include <application-settings/windows/WindowNames.hpp>
#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>

namespace gui


@@ 45,8 43,12 @@ namespace gui
        };

        addMenu(utils::translate("app_settings_display_display_light"), gui::window::name::display_light);

#if DISABLED_SETTINGS_OPTIONS == 1
        addMenu(utils::translate("app_settings_display_font_size"), gui::window::name::font_size);
        addMenu(utils::translate("app_settings_display_locked_screen"), gui::window::name::locked_screen);
        addMenu(utils::translate("app_settings_display_locked_screen_wallpaper"), gui::window::name::wallpaper);
#endif // DISABLED_SETTINGS_OPTIONS

        addMenu(utils::translate("app_settings_display_keypad_light"), gui::window::name::keypad_light);
        addMenu(utils::translate("app_settings_display_input_language"), gui::window::name::input_language);


R module-apps/application-settings/windows/DisplayAndKeypadWindow.hpp => module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp +2 -3
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 10,8 10,7 @@ namespace gui
    class DisplayAndKeypadWindow : public OptionWindow
    {
      public:
        DisplayAndKeypadWindow(app::Application *app);
        ~DisplayAndKeypadWindow() override = default;
        explicit DisplayAndKeypadWindow(app::Application *app);

      private:
        std::list<Option> displayAndKeypadOptionsList();

R module-apps/application-settings/windows/DisplayLightWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp +14 -13
@@ 2,11 2,10 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "DisplayLightWindow.hpp"
#include "application-settings/widgets/SpinBoxOptionSettings.hpp"
#include "OptionSetting.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "OptionSetting.hpp"

#include <application-settings/windows/WindowNames.hpp>

#include <OptionSetting.hpp>
#include <service-evtmgr/screen-light-control/ScreenLightControl.hpp>
#include <i18n/i18n.hpp>



@@ 78,6 77,16 @@ namespace gui
                toggle ? gui::option::SettingRightItem::On : gui::option::SettingRightItem::Off));
        };

        addOnOffOoption(utils::translate("app_settings_display_light_main"), isDisplayLightSwitchOn);
        if (isDisplayLightSwitchOn) {
            addOnOffOoption(utils::translate("app_settings_display_light_auto"), isAutoLightSwitchOn);
        }

        if (isDisplayLightSwitchOn && !isAutoLightSwitchOn) {
            addBrightnessOption(optionsList);
        }

#if DEVELOPER_SETTINGS_OPTIONS == 1
        auto addDisplayLight = [&](UTF8 text) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                text, nullptr, nullptr, this, gui::option::SettingRightItem::Disabled));


@@ 88,17 97,9 @@ namespace gui
                text, nullptr, nullptr, this, gui::option::SettingRightItem::Disabled));
        };

        addOnOffOoption(utils::translate("app_settings_display_light_main"), isDisplayLightSwitchOn);
        if (isDisplayLightSwitchOn) {
            addOnOffOoption(utils::translate("app_settings_display_light_auto"), isAutoLightSwitchOn);
        }

        if (isDisplayLightSwitchOn && !isAutoLightSwitchOn) {
            addBrightnessOption(optionsList);
        }

        addDisplayLight("Light intensity = " + utils::to_string(ambientLight));
        addBrightnessValue("Manual brightness = " + utils::to_string(brightnessValue) + "%");
#endif // DEVELOPER_SETTINGS_OPTIONS

        return optionsList;
    }

R module-apps/application-settings/windows/DisplayLightWindow.hpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp +6 -7
@@ 3,19 3,18 @@

#pragma once

#include <apps-common/GuiTimer.hpp>
#include <module-services/service-evtmgr/screen-light-control/ScreenLightControl.hpp>
#include <module-apps/application-settings/widgets/SpinBox.hpp>
#include <module-apps/application-settings/ApplicationSettings.hpp>
#include <module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp>
#include "BaseSettingsWindow.hpp"
#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/widgets/SpinBoxOptionSettings.hpp>
#include <application-settings/windows/BaseSettingsWindow.hpp>

#include <GuiTimer.hpp>

namespace gui
{
    namespace lighting
    {
        constexpr inline auto AMBIENT_LIGHT_TIMER_MS = 2000;
        constexpr inline auto LIGHT_CONTROL_STEP     = 10;
        constexpr inline auto LIGHT_CONTROL_STEP     = 20;
    } // namespace lighting

    class DisplayLightWindow : public BaseSettingsWindow

R module-apps/application-settings/windows/EditQuotesWindow.cpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp +2 -2
@@ 3,8 3,8 @@

#include "EditQuotesWindow.hpp"

#include <module-apps/application-settings/ApplicationSettings.hpp>
#include <apps-common/options/type/OptionSetting.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <OptionSetting.hpp>

#include <i18n/i18n.hpp>


R module-apps/application-settings/windows/EditQuotesWindow.hpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include <application-settings/windows/BaseSettingsWindow.hpp>

namespace gui
{


@@ 12,7 12,7 @@ namespace gui
    class EditQuotesWindow : public BaseSettingsWindow
    {
      public:
        EditQuotesWindow(app::Application *app);
        explicit EditQuotesWindow(app::Application *app);

      private:
        void switchHandler(bool &optionSwitch);

R module-apps/application-settings/windows/FontSizeWindow.cpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "FontSizeWindow.hpp"

#include "application-settings/ApplicationSettings.hpp"
#include <application-settings/windows/WindowNames.hpp>

#include <i18n/i18n.hpp>


R module-apps/application-settings/windows/FontSizeWindow.hpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp +3 -3
@@ 1,9 1,9 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// 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"
#include <application-settings/windows/BaseSettingsWindow.hpp>

namespace gui
{


@@ 11,7 11,7 @@ namespace gui
    class FontSizeWindow : public BaseSettingsWindow
    {
      public:
        FontSizeWindow(app::Application *app);
        explicit FontSizeWindow(app::Application *app);
        auto buildOptionsList() -> std::list<gui::Option> override;
    };
} // namespace gui

R module-apps/application-settings/windows/InputLanguageWindow.cpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp +25 -8
@@ 3,29 3,36 @@

#include "InputLanguageWindow.hpp"

#include "application-settings/ApplicationSettings.hpp"
#include "OptionSetting.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <service-appmgr/service-appmgr/Controller.hpp>
#include <OptionSetting.hpp>

#include <i18n/i18n.hpp>
#include <module-services/service-appmgr/service-appmgr/Controller.hpp>

namespace gui
{
    InputLanguageWindow::InputLanguageWindow(app::Application *app)
        : BaseSettingsWindow(app, window::name::input_language)
        : BaseSettingsWindow(app, window::name::input_language), langList(profiles.getAvailableInputLanguages())
    {
        setTitle(utils::translate("app_settings_display_input_language"));
    }

    void InputLanguageWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        selectedLanguage = utils::getInputLanguage();
        setLanguageIndex();

        refreshOptionsList(selectedLanguageIndex);
    }

    auto InputLanguageWindow::buildOptionsList() -> std::list<gui::Option>
    {
        std::list<gui::Option> optionsList;
        const auto &langList = profiles.getAvailableInputLanguages();
        for (const auto &lang : langList) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                lang,
                [=](gui::Item &item) {
                    selectedLang = lang;
                    selectedLanguage = lang;
                    app::manager::Controller::changeInputLanguage(application, lang);
                    refreshOptionsList();
                    return true;


@@ 38,10 45,20 @@ namespace gui
                    return true;
                },
                this,
                selectedLang == lang ? gui::option::SettingRightItem::Checked
                                     : gui::option::SettingRightItem::Disabled));
                selectedLanguage == lang ? gui::option::SettingRightItem::Checked
                                         : gui::option::SettingRightItem::Disabled));
        }

        return optionsList;
    }

    void InputLanguageWindow::setLanguageIndex()
    {
        for (unsigned int langIndex = 0; langIndex < langList.size(); ++langIndex) {
            if (selectedLanguage == langList[langIndex]) {
                selectedLanguageIndex = langIndex;
                break;
            }
        }
    }
} // namespace gui

R module-apps/application-settings/windows/InputLanguageWindow.hpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp +9 -6
@@ 1,24 1,27 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// 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"
#include "Translator.hpp"
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <Translator.hpp>

namespace gui
{

    class InputLanguageWindow : public BaseSettingsWindow
    {
      public:
        InputLanguageWindow(app::Application *app);
        explicit InputLanguageWindow(app::Application *app);

      protected:
        auto buildOptionsList() -> std::list<gui::Option> override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        void setLanguageIndex();

      private:
        Language selectedLang;
        Profiles profiles;
        const std::vector<Language> langList;
        Language selectedLanguage;
        unsigned int selectedLanguageIndex{0};
    };
} // namespace gui

R module-apps/application-settings/windows/KeypadLightWindow.cpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp +15 -7
@@ 3,7 3,7 @@

#include "KeypadLightWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <OptionSetting.hpp>

#include <bsp/keypad_backlight/keypad_backlight.hpp>


@@ 17,21 17,30 @@ namespace gui
        : BaseSettingsWindow(app, window::name::keypad_light), keypadLightSettings(settings)
    {
        const auto keypadBacklightState = keypadLightSettings->getKeypadBacklightState();

        switch (keypadBacklightState) {
        case bsp::keypad_backlight::State::on:
            isAlwaysOnSwitchOn = true;
            isAlwaysOnSwitchOn  = true;
            selectedOptionIndex = 0;
            break;
        case bsp::keypad_backlight::State::activeMode:
            isActiveSwitchOn = true;
            isActiveSwitchOn    = true;
            selectedOptionIndex = 1;
            break;
        case bsp::keypad_backlight::State::off:
            isOffSwitchOn = true;
            isOffSwitchOn       = true;
            selectedOptionIndex = 2;
            break;
        }

        setTitle(utils::translate("app_settings_display_keypad_light"));
    }

    void KeypadLightWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        refreshOptionsList(selectedOptionIndex);
    }

    void KeypadLightWindow::switchHandler(bool &toggleSwitch)
    {
        isActiveSwitchOn   = false;


@@ 73,10 82,9 @@ namespace gui
        };

        addCheckOption(utils::translate("app_settings_display_keypad_light_on"), isAlwaysOnSwitchOn);
        addCheckOption(utils::translate("app_settings_display_keypad_light_off"), isOffSwitchOn);
        addCheckOption(utils::translate("app_settings_display_keypad_light_active"), isActiveSwitchOn);
        addCheckOption(utils::translate("app_settings_display_keypad_light_off"), isOffSwitchOn);

        return optionsList;
    } // namespace gui

    }
} // namespace gui

R module-apps/application-settings/windows/KeypadLightWindow.hpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp +8 -5
@@ 3,8 3,8 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include <module-apps/application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <application-settings/ApplicationSettings.hpp>

namespace gui
{


@@ 14,12 14,15 @@ namespace gui
        KeypadLightWindow(app::Application *app, app::settingsInterface::KeypdBacklightSettings *settings);

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

        app::settingsInterface::KeypdBacklightSettings *keypadLightSettings;
        void switchHandler(bool &onOffSwitch);
        std::list<Option> buildOptionsList() override;

        bool isAlwaysOnSwitchOn = false;
        bool isActiveSwitchOn   = false;
        bool isOffSwitchOn      = false;
        unsigned int selectedOptionIndex = 0;
        bool isAlwaysOnSwitchOn          = false;
        bool isActiveSwitchOn            = false;
        bool isOffSwitchOn               = false;
    };
} // namespace gui

R module-apps/application-settings/windows/QuoteCategoriesWindow.cpp => module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp +1 -2
@@ 2,8 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "QuoteCategoriesWindow.hpp"
#include <application-settings/models/CategoriesModel.hpp>
#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>

namespace gui

R module-apps/application-settings/windows/QuoteCategoriesWindow.hpp => module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.hpp +3 -5
@@ 3,11 3,9 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include <application-settings/widgets/CategoryWidget.hpp>
#include <application-settings/models/CategoriesModel.hpp>
#include <module-gui/gui/widgets/ListView.hpp>
#include <apps-common/InternalModel.hpp>
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <application-settings/models/display-keypad/CategoriesModel.hpp>
#include <ListView.hpp>

namespace gui
{

R module-apps/application-settings/windows/QuotesAddWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp +2 -3
@@ 2,10 2,9 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "QuotesAddWindow.hpp"
#include "QuotesMainWindow.hpp"

#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/data/QuoteSwitchData.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/QuoteSwitchData.hpp>

#include <i18n/i18n.hpp>
#include <widgets/Text.hpp>

R module-apps/application-settings/windows/QuotesAddWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesAddWindow.hpp +3 -3
@@ 3,9 3,9 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include "QuotesMainWindow.hpp"
#include "application-settings/models/QuotesModel.hpp"
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <application-settings/models/display-keypad/QuotesModel.hpp>
#include <application-settings/data/QuoteSwitchData.hpp>

namespace gui
{

R module-apps/application-settings/windows/QuotesMainWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp +4 -12
@@ 2,16 2,14 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "QuotesMainWindow.hpp"
#include "application-settings/models/QuotesModel.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/widgets/SettingsStyle.hpp"
#include "OptionSetting.hpp"

#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>

#include <OptionSetting.hpp>
#include <header/AddElementAction.hpp>
#include <InputEvent.hpp>
#include <i18n/i18n.hpp>
#include <json11.hpp>
#include <utility>

namespace style::quotes
{


@@ 22,12 20,6 @@ namespace style::quotes
        constexpr auto Width  = style::listview::body_width_with_scroll;
        constexpr auto Height = style::window_height - Y - style::footer::height;
    } // namespace list

    inline constexpr auto cross_x = 48;
    inline constexpr auto cross_y = 55;
    inline constexpr auto arrow_x = 30;
    inline constexpr auto arrow_y = 62;

} // namespace style::quotes

namespace gui

R module-apps/application-settings/windows/QuotesMainWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesMainWindow.hpp +6 -8
@@ 3,14 3,12 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include "application-settings/widgets/QuoteWidget.hpp"
#include "application-settings/models/QuotesModel.hpp"
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <application-settings/widgets/display-keypad/QuoteWidget.hpp>
#include <application-settings/models/display-keypad/QuotesModel.hpp>

#include <purefs/filesystem_paths.hpp>
#include <module-gui/gui/widgets/ListView.hpp>
#include <apps-common/InternalModel.hpp>
#include <utility>
#include <ListView.hpp>
#include <InternalModel.hpp>

namespace gui
{


@@ 21,7 19,7 @@ namespace gui

      private:
        void buildInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        auto onInput(const InputEvent &inputEvent) -> bool override;

        std::shared_ptr<Quotes::QuotesModel> quotesModel = nullptr;

R module-apps/application-settings/windows/QuotesOptionsWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp +5 -7
@@ 2,15 2,13 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "QuotesOptionsWindow.hpp"
#include "OptionSetting.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "DialogMetadataMessage.hpp"
#include "QuotesMainWindow.hpp"
#include "application-settings/ApplicationSettings.hpp"
#include "application-settings/widgets/QuoteWidget.hpp"

#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/display-keypad/QuoteWidget.hpp>
#include <DialogMetadataMessage.hpp>
#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
#include <widgets/Text.hpp>
#include <Text.hpp>

namespace gui
{

R module-apps/application-settings/windows/QuotesOptionsWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp +2 -3
@@ 3,9 3,8 @@

#pragma once

#include "BaseSettingsWindow.hpp"
#include "QuotesMainWindow.hpp"
#include "application-settings/widgets/QuoteWidget.hpp"
#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <application-settings/widgets/display-keypad/QuoteWidget.hpp>

namespace gui
{

R module-apps/application-settings/windows/WallpaperWindow.cpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp +2 -2
@@ 3,8 3,8 @@

#include "WallpaperWindow.hpp"

#include "application-settings/ApplicationSettings.hpp"
#include "OptionSetting.hpp"
#include <application-settings/windows/WindowNames.hpp>
#include <OptionSetting.hpp>

#include <i18n/i18n.hpp>


R module-apps/application-settings/windows/WallpaperWindow.hpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp +3 -3
@@ 1,9 1,9 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// 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"
#include <application-settings/windows/BaseSettingsWindow.hpp>

namespace gui
{


@@ 12,7 12,7 @@ namespace gui
    class WallpaperWindow : public BaseSettingsWindow
    {
      public:
        WallpaperWindow(app::Application *app);
        explicit WallpaperWindow(app::Application *app);

      private:
        void switchHandler(bool &onOffSwitch);

M module-apps/application-settings/windows/network/ApnOptionsWindow.cpp => module-apps/application-settings/windows/network/ApnOptionsWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "ApnOptionsWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/SettingsItemData.hpp>
#include <OptionSetting.hpp>


M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp => module-apps/application-settings/windows/network/ApnSettingsWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "ApnSettingsWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/data/ApnListData.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>
#include <application-settings/data/SettingsItemData.hpp>

M module-apps/application-settings/windows/network/NewApnWindow.cpp => module-apps/application-settings/windows/network/NewApnWindow.cpp +1 -1
@@ 3,7 3,7 @@

#include "NewApnWindow.hpp"

#include <application-settings/ApplicationSettings.hpp>
#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/widgets/SettingsStyle.hpp>

namespace gui

M module-apps/apps-common/CMakeLists.txt => module-apps/apps-common/CMakeLists.txt +1 -0
@@ 34,6 34,7 @@ target_sources(apps-common
        widgets/DateWidget.cpp
        widgets/InputBox.cpp
        widgets/ModesBox.cpp
        widgets/SpinBox.cpp
        widgets/TextWithIconsWidget.cpp
        widgets/TimeWidget.cpp
        widgets/WidgetsUtils.cpp

R module-apps/application-settings/widgets/SpinBox.cpp => module-apps/apps-common/widgets/SpinBox.cpp +15 -16
@@ 2,14 2,12 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "SpinBox.hpp"
#include "OptionStyle.hpp"
#include "widgets/BarGraph.hpp"

#include <OptionStyle.hpp>
#include <widgets/BarGraph.hpp>
#include <InputEvent.hpp>
#include <Label.hpp>
#include <Text.hpp>
#include <Image.hpp>
#include <utf8/UTF8.hpp>
#include <utility>

namespace gui
{


@@ 69,24 67,25 @@ namespace gui
        return arrow;
    }

    Label *SpinBox::addTitle(Item *parent, const std::string &text)
    Text *SpinBox::addTitle(Item *parent, const std::string &text)
    {
        auto label = new Label(parent);
        label->setMinimumHeight(style::window::label::default_h);
        label->setMaximumWidth(style::window::default_body_width);
        label->setMargins(Margins(option::window::option_left_margin, 0, 0, 0));
        label->setEdges(RectangleEdge::None);
        label->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
        label->setFont(style::window::font::big);
        label->setText(text);
        label->activeItem = false;
        auto title = new gui::Text(parent, 0, 0, 0, 0);
        title->setFont(style::window::font::big);
        title->setMinimumHeight(style::window::label::default_h);
        title->setMinimumWidthToFitText(text);
        title->setMargins(Margins(option::window::option_left_margin, 0, option::window::option_right_margin, 0));
        title->setEdges(RectangleEdge::None);
        title->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
        title->setText(text);
        title->activeItem = false;

        return label;
        return title;
    }

    HBarGraph *SpinBox::addBarGraph(Item *parent, uint8_t maxValue, uint8_t startValue)
    {
        auto barGraph = new HBarGraph(parent, 0, 0, maxValue);
        barGraph->setMaximumWidth(style::window::default_body_width);
        barGraph->setAlignment(Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
        barGraph->setMargins(Margins(0, 0, option::window::option_right_margin, 0));
        barGraph->setValue(startValue);

R module-apps/application-settings/widgets/SpinBox.hpp => module-apps/apps-common/widgets/SpinBox.hpp +4 -12
@@ 1,17 1,9 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once
#include "widgets/BarGraph.hpp"

namespace style::settings::brightness
{
    inline constexpr auto max_value = 6;
};

class UTF8;

namespace gui


@@ 25,17 17,17 @@ namespace gui
        SpinBox(Item *parent,
                const std::string &title,
                UpdateCallback updateCallback,
                std::uint8_t maxValue   = style::settings::brightness::max_value,
                std::uint8_t startValue = 0);
                std::uint8_t maxValue,
                std::uint8_t startValue);

      private:
        auto addArrow(Item *parent, const std::string &arrowName, Alignment::Horizontal aligment, bool visible)
            -> Image *;
        auto addBarGraph(Item *parent, uint8_t maxValue, uint8_t startValue) -> HBarGraph *;
        auto addTitle(Item *parent, const std::string &text) -> Label *;
        auto addTitle(Item *parent, const std::string &text) -> Text *;

        HBarGraph *bar;
        Label *titleLabel;
        Text *titleLabel;
        Image *leftArrow;
        Image *rightArrow;
        UpdateCallback updateBarCallback;

M module-gui/gui/widgets/Text.cpp => module-gui/gui/widgets/Text.cpp +5 -1
@@ 222,7 222,11 @@ namespace gui

    void Text::setMinimumWidthToFitText(const UTF8 &text)
    {
        setMinimumWidth(format.getFont()->getPixelWidth(text) + TextCursor::defaultWidth);
        auto textToFit = !text::RichTextParser().parse(text, &format)->getText().empty()
                             ? text::RichTextParser().parse(text, &format)->getText()
                             : text;

        setMinimumWidth(format.getFont()->getPixelWidth(textToFit) + TextCursor::defaultWidth);
    }

    auto Text::setCursorStartPosition(CursorStartPosition val) -> void

M module-utils/i18n/i18n.cpp => module-utils/i18n/i18n.cpp +6 -0
@@ 24,6 24,7 @@ namespace utils
            const std::string &get(const std::string &str);
            using i18n::getDisplayLanguage;
            using i18n::getDisplayLanguagePath;
            using i18n::getInputLanguage;
            using i18n::getInputLanguageFilename;
            using i18n::getInputLanguagePath;
            using i18n::resetAssetsPath;


@@ 164,6 165,11 @@ namespace utils
        return utils::localize.getDisplayLanguage();
    }

    const std::string &getInputLanguage()
    {
        return utils::localize.getInputLanguage();
    }

    const std::string &getInputLanguageFilename(const std::string &inputMode)
    {
        return localize.getInputLanguageFilename(inputMode);

M module-utils/i18n/i18nImpl.hpp => module-utils/i18n/i18nImpl.hpp +4 -0
@@ 47,6 47,10 @@ namespace utils
        {
            return currentDisplayLanguage;
        }
        const std::string &getInputLanguage()
        {
            return inputLanguage;
        }
        const std::string &getInputLanguageFilename(const std::string &inputMode);
        bool setInputLanguage(const Language &lang);
        bool setDisplayLanguage(const Language &lang);

M module-utils/i18n/include/i18n/i18n.hpp => module-utils/i18n/include/i18n/i18n.hpp +1 -0
@@ 27,6 27,7 @@ namespace utils

    const std::string &translate(const std::string &text);
    const std::string &getDisplayLanguage();
    const std::string &getInputLanguage();
    const std::string &getInputLanguageFilename(const std::string &inputMode);

    bool setInputLanguage(const Language &lang);