~aleteoryx/muditaos

7597d388526c3f1d3c666964514db33bfcd6cf4d — Przemyslaw Brudny 4 years ago 588925f
[EGD-7857] Renamed BottomBar to NavBar

Renamed BottomBar to NavBar.
215 files changed, 985 insertions(+), 1031 deletions(-)

M module-apps/application-alarm-clock/models/CustomRepeatModel.cpp
M module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp
M module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.cpp
M module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.hpp
M module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.cpp
M module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.hpp
M module-apps/application-alarm-clock/widgets/AlarmTimeItem.cpp
M module-apps/application-alarm-clock/widgets/AlarmTimeItem.hpp
M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp
M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp
M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp
M module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp
M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp
M module-apps/application-antenna/windows/AlgoParamsWindow.cpp
M module-apps/application-antenna/windows/AntennaMainWindow.cpp
M module-apps/application-antenna/windows/ScanModesWindow.cpp
M module-apps/application-calculator/windows/CalculatorMainWindow.cpp
M module-apps/application-calendar/windows/CalendarMainWindow.cpp
M module-apps/application-call/windows/CallWindow.cpp
M module-apps/application-call/windows/EmergencyCallWindow.cpp
M module-apps/application-call/windows/EnterNumberWindow.cpp
M module-apps/application-call/windows/NumberWindow.cpp
M module-apps/application-calllog/CalllogModel.cpp
M module-apps/application-calllog/data/CallLogStyle.hpp
M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp
M module-apps/application-calllog/windows/CallLogMainWindow.cpp
M module-apps/application-desktop/models/ActiveNotificationsModel.cpp
M module-apps/application-desktop/models/ActiveNotificationsModel.hpp
M module-apps/application-desktop/windows/ChargingBatteryWindow.cpp
M module-apps/application-desktop/windows/DeadBatteryWindow.cpp
M module-apps/application-desktop/windows/DesktopMainWindow.cpp
M module-apps/application-desktop/windows/LogoWindow.cpp
M module-apps/application-desktop/windows/MenuWindow.cpp
M module-apps/application-desktop/windows/MmiPullWindow.cpp
M module-apps/application-desktop/windows/MmiPushWindow.cpp
M module-apps/application-meditation/windows/MeditationOptionsWindows.cpp
M module-apps/application-meditation/windows/MeditationTimerWindow.cpp
M module-apps/application-meditation/windows/MeditationTimerWindow.hpp
M module-apps/application-meditation/windows/MeditationWindow.cpp
M module-apps/application-messages/widgets/SMSInputWidget.cpp
M module-apps/application-messages/windows/MessagesMainWindow.cpp
M module-apps/application-messages/windows/NewMessage.cpp
M module-apps/application-messages/windows/NewMessage.hpp
M module-apps/application-messages/windows/SMSTemplatesWindow.cpp
M module-apps/application-messages/windows/SMSThreadViewWindow.cpp
M module-apps/application-messages/windows/SearchResults.cpp
M module-apps/application-messages/windows/SearchStart.cpp
M module-apps/application-music-player/models/SongsModel.cpp
M module-apps/application-music-player/models/SongsModel.hpp
M module-apps/application-music-player/models/SongsModelInterface.hpp
M module-apps/application-music-player/presenters/SongsPresenter.cpp
M module-apps/application-music-player/presenters/SongsPresenter.hpp
M module-apps/application-music-player/widgets/SongItem.cpp
M module-apps/application-music-player/widgets/SongItem.hpp
M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp
M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp
M module-apps/application-music-player/windows/MusicPlayerMainWindow.cpp
M module-apps/application-music-player/windows/MusicPlayerMainWindow.hpp
M module-apps/application-notes/windows/NoteCreateWindow.cpp
M module-apps/application-notes/windows/NoteEditWindow.cpp
M module-apps/application-notes/windows/NoteMainWindow.cpp
M module-apps/application-notes/windows/NotePreviewWindow.cpp
M module-apps/application-notes/windows/SearchEngineWindow.cpp
M module-apps/application-notes/windows/SearchResultsWindow.cpp
M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp
M module-apps/application-onboarding/windows/EULALicenseWindow.cpp
M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp
M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp
M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp
M module-apps/application-onboarding/windows/StartConfigurationWindow.cpp
M module-apps/application-onboarding/windows/UpdateDialogWindow.cpp
M module-apps/application-phonebook/models/NewContactModel.cpp
M module-apps/application-phonebook/widgets/InformationWidget.cpp
M module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.cpp
M module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.hpp
M module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.cpp
M module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.hpp
M module-apps/application-phonebook/windows/PhonebookContactDetails.cpp
M module-apps/application-phonebook/windows/PhonebookIceContacts.cpp
M module-apps/application-phonebook/windows/PhonebookMainWindow.cpp
M module-apps/application-phonebook/windows/PhonebookNewContact.cpp
M module-apps/application-phonebook/windows/PhonebookSearch.cpp
M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp
M module-apps/application-settings/models/apps/SoundsModel.cpp
M module-apps/application-settings/models/display-keypad/CategoriesModel.cpp
M module-apps/application-settings/models/display-keypad/QuotesModel.cpp
M module-apps/application-settings/models/network/NewApnModel.cpp
M module-apps/application-settings/models/network/SimContactsImportModel.cpp
M module-apps/application-settings/models/system/DateAndTimeModel.cpp
M module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp
M module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp
M module-apps/application-settings/widgets/display-keypad/CategoryWidget.cpp
M module-apps/application-settings/widgets/display-keypad/CategoryWidget.hpp
M module-apps/application-settings/widgets/display-keypad/QuoteWidget.cpp
M module-apps/application-settings/widgets/display-keypad/QuoteWidget.hpp
M module-apps/application-settings/widgets/network/ApnInputWidget.cpp
M module-apps/application-settings/widgets/network/ApnInputWidget.hpp
M module-apps/application-settings/widgets/network/SimContactImportSelectWidget.cpp
M module-apps/application-settings/widgets/network/SimContactImportSelectWidget.hpp
M module-apps/application-settings/widgets/system/SettingsTimeItem.cpp
M module-apps/application-settings/widgets/system/SettingsTimeItem.hpp
M module-apps/application-settings/windows/OptionsWidgetMaker.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/StatusBarImageTypeWindow.cpp
M module-apps/application-settings/windows/advanced/UITestWindow.cpp
M module-apps/application-settings/windows/apps/AlarmClockWindow.cpp
M module-apps/application-settings/windows/apps/PhoneWindow.cpp
M module-apps/application-settings/windows/apps/SoundSelectWindow.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
M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp
M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp
M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp
M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp
M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp
M module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp
M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp
M module-apps/application-settings/windows/network/NetworkWindow.cpp
M module-apps/application-settings/windows/network/NewApnWindow.cpp
M module-apps/application-settings/windows/network/SimCardsWindow.cpp
M module-apps/application-settings/windows/network/SimContactsImportWindow.cpp
M module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp
M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp
M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp
M module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp
M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp
M module-apps/application-settings/windows/security/AutolockWindow.cpp
M module-apps/application-settings/windows/security/SecurityMainWindow.cpp
M module-apps/application-settings/windows/system/CertificationWindow.cpp
M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp
M module-apps/application-settings/windows/system/SARInfoWindow.cpp
M module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp
M module-apps/application-special-input/windows/SpecialInputMainWindow.cpp
M module-apps/apps-common/locks/widgets/PhoneLockBox.cpp
M module-apps/apps-common/locks/widgets/PhoneLockBox.hpp
M module-apps/apps-common/locks/widgets/SimLockBox.cpp
M module-apps/apps-common/locks/windows/LockInputWindow.cpp
M module-apps/apps-common/locks/windows/LockInputWindow.hpp
M module-apps/apps-common/options/type/OptionWithActiveIcons.cpp
M module-apps/apps-common/popups/AlarmPopup.cpp
M module-apps/apps-common/popups/HomeModesWindow.cpp
M module-apps/apps-common/popups/PowerOffWindow.cpp
M module-apps/apps-common/popups/VolumeWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp
M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp
M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp
M module-apps/apps-common/widgets/ActiveIconFactory.cpp
M module-apps/apps-common/widgets/ActiveIconFactory.hpp
M module-apps/apps-common/widgets/SpinBox.cpp
M module-apps/apps-common/widgets/SpinBox.hpp
M module-apps/apps-common/widgets/TimeWidget.cpp
M module-apps/apps-common/widgets/TimeWidget.hpp
M module-apps/apps-common/windows/AppWindow.cpp
M module-apps/apps-common/windows/AppWindow.hpp
M module-apps/apps-common/windows/Dialog.cpp
M module-apps/apps-common/windows/OptionWindow.cpp
M module-gui/WINDOW.md
M module-gui/gui/dom/Item2JsonSerializingVisitor.cpp
M module-gui/gui/dom/Item2JsonSerializingVisitor.hpp
M module-gui/gui/dom/ItemDataNames.hpp
M module-gui/gui/widgets/CMakeLists.txt
M module-gui/gui/widgets/CheckBox.cpp
M module-gui/gui/widgets/CheckBox.hpp
M module-gui/gui/widgets/CheckBoxWithLabel.cpp
M module-gui/gui/widgets/CheckBoxWithLabel.hpp
R module-gui/gui/widgets/{BottomBar => NavBar}.cpp
R module-gui/gui/widgets/{BottomBar => NavBar}.hpp
M module-gui/gui/widgets/Style.hpp
M module-gui/gui/widgets/Window.hpp
M module-gui/gui/widgets/visitor/GuiVisitor.hpp
M module-gui/test/test-google/test-gui-visitor-call.cpp
M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmSetWindow.cpp
M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp
M products/BellHybrid/apps/application-bell-background-sounds/windows/BGSoundsVolumeWindow.cpp
M products/BellHybrid/apps/application-bell-bedtime/windows/BellBedtimeWindow.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellBatteryShutdownWindow.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/AboutYourBellWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsFrontlightWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsLanguageWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsPrewakeUpWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/bedtime_settings/BellSettingsBedtimeToneSettingsWindow.cpp
M products/BellHybrid/apps/common/src/options/BellOptionWindow.cpp
M products/BellHybrid/apps/common/src/options/BellShortOptionWindow.cpp
M products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp
M products/BellHybrid/apps/common/src/popups/AlarmDeactivatedWindow.cpp
M products/BellHybrid/apps/common/src/popups/BedtimeNotificationWindow.cpp
M products/BellHybrid/apps/common/src/popups/BellRebootWindow.cpp
M products/BellHybrid/apps/common/src/windows/BellFactoryReset.cpp
M products/BellHybrid/apps/common/src/windows/BellFinishedCallbackWindow.cpp
M products/BellHybrid/apps/common/src/windows/BellFinishedWindow.cpp
M products/BellHybrid/apps/common/src/windows/BellTurnOffWindow.cpp
M products/BellHybrid/apps/common/src/windows/BellWelcomeWindow.cpp
M module-apps/application-alarm-clock/models/CustomRepeatModel.cpp => module-apps/application-alarm-clock/models/CustomRepeatModel.cpp +2 -2
@@ 42,8 42,8 @@ namespace app::alarmClock
            internalData.push_back(new gui::CustomCheckBoxWithLabel(
                utils::translate(day),
                selected,
                [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
                [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
                [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
                [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));
        }

        for (auto &item : internalData) {

M module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp => module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp +6 -6
@@ 49,15 49,15 @@ namespace app::alarmClock
        assert(app != nullptr);

        internalData.push_back(new gui::AlarmTimeItem(
            [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
            [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));

        internalData.push_back(new gui::AlarmMusicOptionsItem(
            application,
            utils::translate("app_alarm_clock_sound"),
            soundsPlayer,
            [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
            [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));

        internalData.push_back(new gui::AlarmSnoozeOptionsItem(utils::translate("app_alarm_clock_snooze")));



@@ 65,8 65,8 @@ namespace app::alarmClock
            application,
            utils::translate("app_alarm_clock_repeat"),
            rRulePresenter,
            [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
            [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));

        for (auto &item : internalData) {
            item->deleteByList = false;

M module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.cpp => module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.cpp +13 -14
@@ 11,10 11,10 @@ namespace gui
    AlarmMusicOptionsItem::AlarmMusicOptionsItem(app::ApplicationCommon *app,
                                                 const std::string &description,
                                                 std::shared_ptr<SoundsPlayer> player,
                                                 std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                                                 std::function<void()> bottomBarRestoreFromTemporaryMode)
        : AlarmOptionsItem(description), bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
                                                 std::function<void(const UTF8 &text)> navBarTemporaryMode,
                                                 std::function<void()> navBarRestoreFromTemporaryMode)
        : AlarmOptionsItem(description), navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        assert(app != nullptr);



@@ 29,18 29,17 @@ namespace gui
            if (event.isShortRelease(gui::KeyCode::KEY_LF)) {
                if (!player->previouslyPlayed(getFilePath(optionSpinner->getCurrentValue())) ||
                    player->isInState(SoundsPlayer::State::Stopped)) {
                    player->play(getFilePath(optionSpinner->getCurrentValue()), [=]() {
                        this->bottomBarTemporaryMode(utils::translate(style::strings::common::play));
                    });
                    this->bottomBarTemporaryMode(utils::translate(style::strings::common::pause));
                    player->play(getFilePath(optionSpinner->getCurrentValue()),
                                 [=]() { this->navBarTemporaryMode(utils::translate(style::strings::common::play)); });
                    this->navBarTemporaryMode(utils::translate(style::strings::common::pause));
                }
                else if (player->isInState(SoundsPlayer::State::Paused)) {
                    player->resume();
                    this->bottomBarTemporaryMode(utils::translate(style::strings::common::pause));
                    this->navBarTemporaryMode(utils::translate(style::strings::common::pause));
                }
                else {
                    player->pause();
                    this->bottomBarTemporaryMode(utils::translate(style::strings::common::play));
                    this->navBarTemporaryMode(utils::translate(style::strings::common::play));
                }
            }



@@ 52,10 51,10 @@ namespace gui

            if (res && player->previouslyPlayed(getFilePath(optionSpinner->getCurrentValue())) &&
                player->isInState(SoundsPlayer::State::Playing)) {
                this->bottomBarTemporaryMode(utils::translate(style::strings::common::pause));
                this->navBarTemporaryMode(utils::translate(style::strings::common::pause));
            }
            else if (res) {
                this->bottomBarTemporaryMode(utils::translate(style::strings::common::play));
                this->navBarTemporaryMode(utils::translate(style::strings::common::play));
            }

            return res;


@@ 65,10 64,10 @@ namespace gui
            setFocusItem(focus ? optionSpinner : nullptr);

            if (focus) {
                this->bottomBarTemporaryMode(utils::translate(style::strings::common::play));
                this->navBarTemporaryMode(utils::translate(style::strings::common::play));
            }
            else {
                this->bottomBarRestoreFromTemporaryMode();
                this->navBarRestoreFromTemporaryMode();
            }

            // stop preview playback when we loose focus

M module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.hpp => module-apps/application-alarm-clock/widgets/AlarmMusicOptionsItem.hpp +4 -4
@@ 16,8 16,8 @@ namespace gui
    class AlarmMusicOptionsItem : public AlarmOptionsItem
    {
      private:
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;

        /// pointer to audio operations which allows to make audio preview
        std::vector<tags::fetcher::Tags> alarmSoundList;


@@ 27,8 27,8 @@ namespace gui
        explicit AlarmMusicOptionsItem(app::ApplicationCommon *app,
                                       const std::string &description,
                                       std::shared_ptr<SoundsPlayer> player,
                                       std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                                       std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                                       std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                                       std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);

      private:
        [[nodiscard]] std::string getTitle(const std::string &filePath);

M module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.cpp => module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.cpp +8 -8
@@ 10,11 10,11 @@ namespace gui
    AlarmRRuleOptionsItem::AlarmRRuleOptionsItem(app::ApplicationCommon *app,
                                                 const std::string &description,
                                                 std::shared_ptr<app::alarmClock::AlarmRRulePresenter> presenter,
                                                 std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                                                 std::function<void()> bottomBarRestoreFromTemporaryMode)
                                                 std::function<void(const UTF8 &text)> navBarTemporaryMode,
                                                 std::function<void()> navBarRestoreFromTemporaryMode)
        : AlarmOptionsItem(description), AlarmRRuleItem(std::move(presenter)), app(app),
          bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
          navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        printOptions();



@@ 22,13 22,13 @@ namespace gui
            auto ret = optionSpinner->onInput(event);

            if (getRRuleOption(optionSpinner->getCurrentValue()) == RRule::Custom) {
                this->bottomBarTemporaryMode(utils::translate(style::strings::common::edit));
                this->navBarTemporaryMode(utils::translate(style::strings::common::edit));
                if (event.isShortRelease(gui::KeyCode::KEY_LF)) {
                    this->app->switchWindow(style::alarmClock::window::name::customRepeat);
                }
            }
            else {
                this->bottomBarRestoreFromTemporaryMode();
                this->navBarRestoreFromTemporaryMode();
            }

            return ret;


@@ 38,10 38,10 @@ namespace gui
            setFocusItem(focus ? optionSpinner : nullptr);

            if (getRRuleOption(optionSpinner->getCurrentValue()) == RRule::Custom) {
                this->bottomBarTemporaryMode(utils::translate(style::strings::common::edit));
                this->navBarTemporaryMode(utils::translate(style::strings::common::edit));
            }
            else {
                this->bottomBarRestoreFromTemporaryMode();
                this->navBarRestoreFromTemporaryMode();
            }

            return true;

M module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.hpp => module-apps/application-alarm-clock/widgets/AlarmRRuleOptionsItem.hpp +4 -4
@@ 15,8 15,8 @@ namespace gui
    {
      private:
        app::ApplicationCommon *app                                  = nullptr;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode    = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode         = nullptr;

        using RRule                                             = app::alarmClock::AlarmRRulePresenter::RRuleOptions;
        std::vector<std::pair<RRule, std::string>> rRuleOptions = {


@@ 33,7 33,7 @@ namespace gui
        explicit AlarmRRuleOptionsItem(app::ApplicationCommon *app,
                                       const std::string &description,
                                       std::shared_ptr<app::alarmClock::AlarmRRulePresenter> presenter,
                                       std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                                       std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                                       std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                                       std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);
    };
} /* namespace gui */

M module-apps/application-alarm-clock/widgets/AlarmTimeItem.cpp => module-apps/application-alarm-clock/widgets/AlarmTimeItem.cpp +6 -6
@@ 13,10 13,10 @@ namespace gui
{
    namespace timeItem = style::alarmClock::window::item::time;

    AlarmTimeItem::AlarmTimeItem(std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                                 std::function<void()> bottomBarRestoreFromTemporaryMode)
        : mode24H(!stm::api::isTimeFormat12h()), bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
    AlarmTimeItem::AlarmTimeItem(std::function<void(const UTF8 &text)> navBarTemporaryMode,
                                 std::function<void()> navBarRestoreFromTemporaryMode)
        : mode24H(!stm::api::isTimeFormat12h()), navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        setMinimumSize(timeItem::width, timeItem::height);



@@ 184,10 184,10 @@ namespace gui
            };
            mode12hInput->focusChangedCallback = [&](Item &item) {
                if (item.focus) {
                    bottomBarTemporaryMode(utils::translate("common_switch"));
                    navBarTemporaryMode(utils::translate("common_switch"));
                }
                else {
                    bottomBarRestoreFromTemporaryMode();
                    navBarRestoreFromTemporaryMode();
                }
                return true;
            };

M module-apps/application-alarm-clock/widgets/AlarmTimeItem.hpp => module-apps/application-alarm-clock/widgets/AlarmTimeItem.hpp +4 -4
@@ 17,8 17,8 @@ namespace gui
        gui::Label *mode12hInput = nullptr;
        bool mode24H             = false;

        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;

        void applyItemSpecificProperties(gui::Text *item);
        void applyInputCallbacks();


@@ 28,8 28,8 @@ namespace gui
        void validateHour();

      public:
        AlarmTimeItem(std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                      std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
        AlarmTimeItem(std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                      std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);
    };

} /* namespace gui */

M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp => module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp +6 -14
@@ 10,26 10,18 @@

namespace gui
{
    CustomCheckBoxWithLabel::CustomCheckBoxWithLabel(
        const std::string &description,
        bool initialState,
        const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
        const std::function<void()> &bottomBarRestoreFromTemporaryMode)
    CustomCheckBoxWithLabel::CustomCheckBoxWithLabel(const std::string &description,
                                                     bool initialState,
                                                     const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
                                                     const std::function<void()> &navBarRestoreFromTemporaryMode)
        : initialState(initialState)
    {
        setEdges(RectangleEdge::None);
        setMinimumSize(style::window::default_body_width, style::window::label::big_h);
        setMargins(gui::Margins(style::widgets::leftMargin, style::margins::big, 0, 0));

        checkBoxWithLabel = new gui::CheckBoxWithLabel(this,
                                                       0,
                                                       0,
                                                       0,
                                                       0,
                                                       description,
                                                       bottomBarTemporaryMode,
                                                       bottomBarRestoreFromTemporaryMode,
                                                       BottomBar::Side::LEFT);
        checkBoxWithLabel = new gui::CheckBoxWithLabel(
            this, 0, 0, 0, 0, description, navBarTemporaryMode, navBarRestoreFromTemporaryMode, nav_bar::Side::Left);

        inputCallback = [&]([[maybe_unused]] Item &item, const InputEvent &event) {
            return checkBoxWithLabel->onInput(event);

M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp => module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp +2 -2
@@ 19,8 19,8 @@ namespace gui
      public:
        CustomCheckBoxWithLabel(const std::string &description,
                                bool initialState,
                                const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode = nullptr,
                                const std::function<void()> &bottomBarRestoreFromTemporaryMode      = nullptr);
                                const std::function<void(const UTF8 &text)> &navBarTemporaryMode = nullptr,
                                const std::function<void()> &navBarRestoreFromTemporaryMode      = nullptr);
        bool isChecked();
    };
} // namespace gui

M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp => module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp +8 -8
@@ 32,10 32,10 @@ namespace app::alarmClock
    {
        AppWindow::buildInterface();

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::Switch));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::Switch));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(style::strings::common::options));

        setTitle(utils::translate("app_alarm_clock_title_main"));
        header->navigationIndicatorAdd(new gui::header::AddElementAction(), gui::header::BoxSelection::Left);


@@ 117,16 117,16 @@ namespace app::alarmClock
    void AlarmClockMainWindow::onEmptyList()
    {
        emptyListIcon->setVisible(true);
        bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
        navBar->setActive(gui::nav_bar::Side::Left, false);
        navBar->setActive(gui::nav_bar::Side::Center, false);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
    }

    void AlarmClockMainWindow::onListFilled()
    {
        emptyListIcon->setVisible(false);
        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
    }
} // namespace app::alarmClock

M module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp => module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp +4 -4
@@ 23,10 23,10 @@ namespace app::alarmClock
    {
        AppWindow::buildInterface();

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::save));

        setTitle(utils::translate("app_alarm_clock_custom_repeat_title"));
        list = new gui::ListView(this,

M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp => module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp +4 -4
@@ 18,10 18,10 @@ namespace app::alarmClock
    {
        AppWindow::buildInterface();

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::save));

        list = new gui::ListView(this,
                                 style::alarmClock::window::listView_x,

M module-apps/application-antenna/windows/AlgoParamsWindow.cpp => module-apps/application-antenna/windows/AlgoParamsWindow.cpp +5 -5
@@ 31,11 31,11 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_desktop_tools_antenna"));


M module-apps/application-antenna/windows/AntennaMainWindow.cpp => module-apps/application-antenna/windows/AntennaMainWindow.cpp +5 -5
@@ 40,12 40,12 @@ namespace gui

        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        navBar->setActive(nav_bar::Side::Left, true);

        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_desktop_tools_antenna"));


M module-apps/application-antenna/windows/ScanModesWindow.cpp => module-apps/application-antenna/windows/ScanModesWindow.cpp +6 -6
@@ 29,11 29,11 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_desktop_tools_antenna"));



@@ 48,7 48,7 @@ namespace gui
        modeButtonParams.insert(std::pair<uint32_t, std::string>(scanModes::CDMA_and_HDR_only, "CDMA and HDR only"));

        uint32_t w = this->getWidth() - style::window::default_left_margin * 2;
        uint32_t h = this->getHeight() - style::window::default_vertical_pos - bottomBar->getHeight();
        uint32_t h = this->getHeight() - style::window::default_vertical_pos - navBar->getHeight();

        modesBox = new gui::VBox(this, style::window::default_left_margin, style::window::default_vertical_pos, w, h);
        modesBox->setPenWidth(0);

M module-apps/application-calculator/windows/CalculatorMainWindow.cpp => module-apps/application-calculator/windows/CalculatorMainWindow.cpp +7 -7
@@ 19,13 19,13 @@ namespace gui

        setTitle(utils::translate("app_calculator_title_main"));

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, calc::symbols::strings::equals_str());
        bottomBar->setText(gui::BottomBar::Side::LEFT, calc::symbols::strings::decimal_separator_str());
        bottomBar->setFont(BottomBar::Side::LEFT, style::window::font::largelight);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, calc::symbols::strings::equals_str());
        navBar->setText(gui::nav_bar::Side::Left, calc::symbols::strings::decimal_separator_str());
        navBar->setFont(nav_bar::Side::Left, style::window::font::largelight);

        mathOperationInput = new gui::Text(this,
                                           style::calculator::window::input_margin,

M module-apps/application-calendar/windows/CalendarMainWindow.cpp => module-apps/application-calendar/windows/CalendarMainWindow.cpp +2 -2
@@ 151,8 151,8 @@ namespace gui
        this->buildMonth(monthModel);
        this->buildDateLabel(monthModel->getMonthYearText());

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
    }

    void CalendarMainWindow::destroyInterface()

M module-apps/application-call/windows/CallWindow.cpp => module-apps/application-call/windows/CallWindow.cpp +24 -25
@@ 51,12 51,12 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(strings::message));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(strings::message));

        // top circle image
        imageCircleTop = new gui::Image(this, imageCircleTop::x, imageCircleTop::y, 0, 0, imageCircleTop::name);


@@ 79,7 79,7 @@ namespace gui
        speakerIcon                       = new SpeakerIcon(this, speakerIcon::x, speakerIcon::y);
        speakerIcon->focusChangedCallback = [=](gui::Item &item) {
            LOG_DEBUG("speakerIcon get/lost focus");
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::Switch), false);
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::Switch), false);
            return true;
        };
        speakerIcon->activatedCallback = [=](gui::Item &item) {


@@ 107,7 107,7 @@ namespace gui
        microphoneIcon                       = new MicrophoneIcon(this, microphoneIcon::x, microphoneIcon::y);
        microphoneIcon->focusChangedCallback = [=](gui::Item &item) {
            LOG_DEBUG("microphoneIcon get/lost focus");
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::Switch), false);
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::Switch), false);
            return true;
        };
        microphoneIcon->activatedCallback = [=](gui::Item &item) {


@@ 124,8 124,7 @@ namespace gui
        sendSmsIcon                       = new gui::SendSmsIcon(this, sendMessageIcon::x, sendMessageIcon::y);
        sendSmsIcon->focusChangedCallback = [=](gui::Item &item) {
            LOG_DEBUG("Send message get/lost focus");
            bottomBar->setText(
                gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::send), item.focus);
            navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::send), item.focus);
            return true;
        };
        sendSmsIcon->activatedCallback = [=](gui::Item &item) {


@@ 168,19 167,19 @@ namespace gui

        switch (state) {
        case State::INCOMING_CALL: {
            bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(strings::answer), true);
            bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(strings::reject), true);
            navBar->setText(gui::nav_bar::Side::Left, utils::translate(strings::answer), true);
            navBar->setText(gui::nav_bar::Side::Right, utils::translate(strings::reject), true);
            durationLabel->setText(utils::translate(strings::iscalling));
            durationLabel->setVisible(true);
            speakerIcon->setVisible(false);
            microphoneIcon->setVisible(false);
            if (phoneNumber.getFormatted().empty()) {
                bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
                navBar->setActive(gui::nav_bar::Side::Center, false);
                sendSmsIcon->setVisible(false);
                setFocusItem(nullptr);
            }
            else {
                bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
                navBar->setActive(gui::nav_bar::Side::Center, true);
                sendSmsIcon->setVisible(true);
                setFocusItem(sendSmsIcon);
            }


@@ 188,9 187,9 @@ namespace gui
        case State::CALL_ENDED: {
            interface->stopAudio();
            stopCallTimer();
            bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
            bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
            bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
            navBar->setActive(gui::nav_bar::Side::Left, false);
            navBar->setActive(gui::nav_bar::Side::Center, false);
            navBar->setActive(gui::nav_bar::Side::Right, false);
            durationLabel->setVisible(true);
            setCallEndMessage();
            sendSmsIcon->setVisible(false);


@@ 206,9 205,9 @@ namespace gui
                interface->startAudioRouting();
            }
            runCallTimer();
            bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
            bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
            bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(strings::endcall), true);
            navBar->setActive(gui::nav_bar::Side::Left, false);
            navBar->setActive(gui::nav_bar::Side::Center, false);
            navBar->setText(gui::nav_bar::Side::Right, utils::translate(strings::endcall), true);
            durationLabel->setVisible(true);
            sendSmsIcon->setVisible(false);
            speakerIcon->setVisible(true);


@@ 220,9 219,9 @@ namespace gui
        } break;
        case State::OUTGOING_CALL: {
            interface->startAudioRouting();
            bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
            bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
            bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(strings::endcall), true);
            navBar->setActive(gui::nav_bar::Side::Left, false);
            navBar->setActive(gui::nav_bar::Side::Center, false);
            navBar->setText(gui::nav_bar::Side::Right, utils::translate(strings::endcall), true);
            durationLabel->setText(utils::translate(strings::calling));
            durationLabel->setVisible(true);
            sendSmsIcon->setVisible(false);


@@ 235,9 234,9 @@ namespace gui
            [[fallthrough]];
        default:
            numberLabel->clear();
            bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
            bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
            bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
            navBar->setActive(gui::nav_bar::Side::Left, false);
            navBar->setActive(gui::nav_bar::Side::Center, false);
            navBar->setActive(gui::nav_bar::Side::Right, false);
            durationLabel->setVisible(false);
            sendSmsIcon->setVisible(false);
            speakerIcon->setVisible(false);

M module-apps/application-call/windows/EmergencyCallWindow.cpp => module-apps/application-call/windows/EmergencyCallWindow.cpp +2 -2
@@ 20,8 20,8 @@ namespace gui
        using namespace callAppStyle;
        NumberWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate("app_phonebook_ice_contacts_title"));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate("app_phonebook_ice_contacts_title"));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        numberDescriptionLabel->setText(utils::translate("app_call_emergency_text"));
    }

M module-apps/application-call/windows/EnterNumberWindow.cpp => module-apps/application-call/windows/EnterNumberWindow.cpp +2 -2
@@ 32,8 32,8 @@ namespace gui
        using namespace callAppStyle::enterNumberWindow;
        NumberWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate("common_add"));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("app_call_clear"));
        navBar->setText(nav_bar::Side::Center, utils::translate("common_add"));
        navBar->setText(nav_bar::Side::Right, utils::translate("app_call_clear"));

        newContactIcon                    = new gui::AddContactIcon(this, newContactIcon::x, newContactIcon::y);
        newContactIcon->activatedCallback = [=](gui::Item &item) { return addNewContact(); };

M module-apps/application-call/windows/NumberWindow.cpp => module-apps/application-call/windows/NumberWindow.cpp +6 -6
@@ 35,10 35,10 @@ namespace gui
        numberLabel->setText(num);

        if (num.empty()) {
            bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
            navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
            return;
        }
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("app_call_clear"));
        navBar->setText(nav_bar::Side::Right, utils::translate("app_call_clear"));
    }

    void NumberWindow::buildInterface()


@@ 47,11 47,11 @@ namespace gui
        using namespace callAppStyle::enterNumberWindow;
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(callAppStyle::strings::call));
        navBar->setText(nav_bar::Side::Left, utils::translate(callAppStyle::strings::call));

        numberLabel = new gui::Label(this, numberLabel::x, numberLabel::y, numberLabel::w, numberLabel::h);
        numberLabel->setPenWidth(numberLabel::borderW);

M module-apps/application-calllog/CalllogModel.cpp => module-apps/application-calllog/CalllogModel.cpp +2 -2
@@ 91,11 91,11 @@ gui::ListItem *CalllogModel::getItem(gui::Order order)
            auto &callLogItem = dynamic_cast<gui::CalllogItem &>(item);
            if (callLogItem.getCall().presentation == PresentationType::PR_UNKNOWN) {
                // disable call button since the number is unknown
                application->getCurrentWindow()->setBottomBarActive(gui::BottomBar::Side::LEFT, false);
                application->getCurrentWindow()->setNavBarActive(gui::nav_bar::Side::Left, false);
                item.inputCallback = nullptr;
            }
            else {
                application->getCurrentWindow()->setBottomBarActive(gui::BottomBar::Side::LEFT, true);
                application->getCurrentWindow()->setNavBarActive(gui::nav_bar::Side::Left, true);
                item.inputCallback = callCallback;
            }
        }

M module-apps/application-calllog/data/CallLogStyle.hpp => module-apps/application-calllog/data/CallLogStyle.hpp +1 -1
@@ 14,7 14,7 @@ namespace callLogStyle
    // DETAILS WINDOW
    namespace detailsWindow
    {
        constexpr inline auto x = style::window::bottomBar::leftMargin;
        constexpr inline auto x = style::window::navBar::leftMargin;
        constexpr inline auto y = style::window::default_vertical_pos;
        constexpr inline auto w = style::window_width - 2 * x;
        constexpr inline auto h = style::window::default_body_height;

M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp => module-apps/application-calllog/windows/CallLogDetailsWindow.cpp +2 -2
@@ 120,8 120,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        auto vBox = new VBox(this, detailsWindow::x + 10, detailsWindow::y, detailsWindow::w, detailsWindow::h);
        vBox->setEdges(RectangleEdge::None);

M module-apps/application-calllog/windows/CallLogMainWindow.cpp => module-apps/application-calllog/windows/CallLogMainWindow.cpp +7 -7
@@ 45,9 45,9 @@ namespace gui

        setTitle(utils::translate("app_calllog_title_main"));

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::call));
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::call));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        list = new gui::ListView(this,
                                 mainWindow::x,


@@ 102,16 102,16 @@ namespace gui

    void CallLogMainWindow::onEmptyList()
    {
        bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
        navBar->setActive(gui::nav_bar::Side::Left, false);
        navBar->setActive(gui::nav_bar::Side::Center, false);
        emptyListIcon->setVisible(true);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
    }

    void CallLogMainWindow::onListFilled()
    {
        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        emptyListIcon->setVisible(false);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
    }

M module-apps/application-desktop/models/ActiveNotificationsModel.cpp => module-apps/application-desktop/models/ActiveNotificationsModel.cpp +10 -11
@@ 27,8 27,7 @@ namespace
    {
        item->focusChangedCallback = [model](gui::Item &_item) {
            if (_item.focus) {
                model->setParentBottomBar(
                    {}, utils::translate("app_desktop_show"), utils::translate("app_desktop_clear"));
                model->setParentNavBar({}, utils::translate("app_desktop_show"), utils::translate("app_desktop_clear"));
                return true;
            }
            return false;


@@ 101,9 100,9 @@ namespace
    {
        item->focusChangedCallback = [model, canCall = provider->hasRecord()](gui::Item &_item) {
            if (_item.focus) {
                UTF8 bottomBarLeftText = canCall ? UTF8{utils::translate("common_call")} : UTF8{};
                model->setParentBottomBar(
                    bottomBarLeftText, utils::translate("app_desktop_show"), utils::translate("app_desktop_clear"));
                UTF8 navBarLeftText = canCall ? UTF8{utils::translate("common_call")} : UTF8{};
                model->setParentNavBar(
                    navBarLeftText, utils::translate("app_desktop_show"), utils::translate("app_desktop_clear"));
            }
            return true;
        };


@@ 177,7 176,7 @@ namespace
    {
        item->focusChangedCallback = [model](gui::Item &_item) {
            if (_item.focus) {
                model->setParentBottomBar({}, utils::translate("common_disconnect"), {});
                model->setParentNavBar({}, utils::translate("common_disconnect"), {});
                return true;
            }
            return false;


@@ 188,7 187,7 @@ namespace
    {
        item->focusChangedCallback = [model](gui::Item &_item) {
            if (_item.focus) {
                model->setParentBottomBar({}, utils::translate("app_desktop_show"), utils::translate("common_stop"));
                model->setParentNavBar({}, utils::translate("app_desktop_show"), utils::translate("common_stop"));
            }
            return true;
        };


@@ 240,11 239,11 @@ ActiveNotificationsModel::ActiveNotificationsModel(AppWindow *parent)
    : AsyncCallbackReceiver(parent->getApplication()), parent(parent)
{}

void ActiveNotificationsModel::setParentBottomBar(const UTF8 &left, const UTF8 &center, const UTF8 &right)
void ActiveNotificationsModel::setParentNavBar(const UTF8 &left, const UTF8 &center, const UTF8 &right)
{
    parent->setBottomBarText(left, BottomBar::Side::LEFT);
    parent->setBottomBarText(center, BottomBar::Side::CENTER);
    parent->setBottomBarText(right, BottomBar::Side::RIGHT);
    parent->setNavBarText(left, nav_bar::Side::Left);
    parent->setNavBarText(center, nav_bar::Side::Center);
    parent->setNavBarText(right, nav_bar::Side::Right);
}

auto ActiveNotificationsModel::create(const notifications::NotSeenSMSNotification *notification)

M module-apps/application-desktop/models/ActiveNotificationsModel.hpp => module-apps/application-desktop/models/ActiveNotificationsModel.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
        AppWindow *parent = nullptr;
      public:
        explicit ActiveNotificationsModel(AppWindow *parent);
        void setParentBottomBar(const UTF8 &left, const UTF8 &center, const UTF8 &right);
        void setParentNavBar(const UTF8 &left, const UTF8 &center, const UTF8 &right);
        auto create(const notifications::NotSeenSMSNotification *notification) -> NotificationListItem * override;
        auto create(const notifications::NotSeenCallNotification *notification) -> NotificationListItem * override;
        auto create(const notifications::TetheringNotification *notification) -> NotificationListItem * override;

M module-apps/application-desktop/windows/ChargingBatteryWindow.cpp => module-apps/application-desktop/windows/ChargingBatteryWindow.cpp +1 -1
@@ 33,7 33,7 @@ namespace gui
    void ChargingBatteryWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setVisible(false);
        navBar->setVisible(false);
        statusBar->setVisible(false);
        new gui::Image(this, imgPositionX, imgPositionY, 0, 0, "charging_battery_W_G");
    }

M module-apps/application-desktop/windows/DeadBatteryWindow.cpp => module-apps/application-desktop/windows/DeadBatteryWindow.cpp +1 -1
@@ 33,7 33,7 @@ namespace gui
    void DeadBatteryWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setVisible(false);
        navBar->setVisible(false);
        statusBar->setVisible(false);
        new gui::Image(this, imgPositionX, imgPositionY, 0, 0, "dead_battery_W_G");
    }

M module-apps/application-desktop/windows/DesktopMainWindow.cpp => module-apps/application-desktop/windows/DesktopMainWindow.cpp +4 -5
@@ 24,7 24,7 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::CENTER, true);
        navBar->setActive(nav_bar::Side::Center, true);

        clockDate = new ClockDateWidget(
            this, 0, style::window::default_vertical_pos, style::window_width, clock_date_widget::h);


@@ 179,12 179,11 @@ namespace gui
        if (focusItem != nullptr) {
            return;
        }
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate("app_desktop_menu"));
        navBar->setText(nav_bar::Side::Center, utils::translate("app_desktop_menu"));
        const auto tetheringNotActive = !notificationsModel->isTetheringOn();
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate("app_desktop_calls"), tetheringNotActive);
        navBar->setText(nav_bar::Side::Left, utils::translate("app_desktop_calls"), tetheringNotActive);
        const auto hasDismissibleNotification = notificationsModel->hasDismissibleNotification();
        bottomBar->setText(
            BottomBar::Side::RIGHT, utils::translate("app_desktop_clear_all"), hasDismissibleNotification);
        navBar->setText(nav_bar::Side::Right, utils::translate("app_desktop_clear_all"), hasDismissibleNotification);

        inputCallback = [this, hasDismissibleNotification, tetheringNotActive]([[maybe_unused]] Item &item,
                                                                               const InputEvent &inputEvent) -> bool {

M module-apps/application-desktop/windows/LogoWindow.cpp => module-apps/application-desktop/windows/LogoWindow.cpp +1 -1
@@ 23,7 23,7 @@ namespace gui
    void LogoWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setVisible(false);
        navBar->setVisible(false);
        statusBar->setVisible(false);
        new gui::Image(this, 0, 0, 0, 0, "logo");
    }

M module-apps/application-desktop/windows/MenuWindow.cpp => module-apps/application-desktop/windows/MenuWindow.cpp +6 -6
@@ 154,10 154,10 @@ namespace gui
    void MenuWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        mainMenu = new MenuPage(
            this,


@@ 283,12 283,12 @@ namespace gui

        using namespace style::window;
        mainMenu->setSize(this->area().w - default_left_margin - default_right_margin,
                          bottomBar->area().pos(Axis::Y) - default_vertical_pos - style::design::grid_offset);
                          navBar->area().pos(Axis::Y) - default_vertical_pos - style::design::grid_offset);
        mainMenu->setPosition(default_left_margin, default_vertical_pos + style::design::grid_offset);
        mainMenu->setVisible(false);

        toolsMenu->setSize(this->area().w - default_left_margin - default_right_margin,
                           bottomBar->area().pos(Axis::Y) - default_vertical_pos - style::design::grid_offset);
                           navBar->area().pos(Axis::Y) - default_vertical_pos - style::design::grid_offset);
        toolsMenu->setPosition(default_left_margin, default_vertical_pos + style::design::grid_offset);
        toolsMenu->setVisible(false);


M module-apps/application-desktop/windows/MmiPullWindow.cpp => module-apps/application-desktop/windows/MmiPullWindow.cpp +4 -4
@@ 37,8 37,8 @@ MmiPullWindow::MmiPullWindow(app::ApplicationCommon *app, const std::string &nam
{
    AppWindow::buildInterface();

    bottomBar->setText(BottomBar::Side::CENTER, utils::translate("app_desktop_replay"));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
    navBar->setText(nav_bar::Side::Center, utils::translate("app_desktop_replay"));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
    text = new Text(
        this, style::desktop::text::x, style::desktop::text::y, style::desktop::text::w, style::desktop::text::h);
    text->setTextType(TextType::MultiLine);


@@ 57,8 57,8 @@ MmiPullWindow::MmiPullWindow(app::ApplicationCommon *app, const std::string &nam

    InputBox->inputText->setInputMode(new InputMode(
        {InputMode::digit},
        [=](const UTF8 &text1) { bottomBarTemporaryMode(text1); },
        [=]() { bottomBarRestoreFromTemporaryMode(); },
        [=](const UTF8 &text1) { navBarTemporaryMode(text1); },
        [=]() { navBarRestoreFromTemporaryMode(); },
        [=]() { selectSpecialCharacter(); }));

    addWidget(InputBox);

M module-apps/application-desktop/windows/MmiPushWindow.cpp => module-apps/application-desktop/windows/MmiPushWindow.cpp +1 -1
@@ 32,7 32,7 @@ namespace style::desktop
MmiPushWindow::MmiPushWindow(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
{
    AppWindow::buildInterface();
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::ok));
    icon = new Icon(this,
                    style::window::default_left_margin,
                    style::window::default_vertical_pos,

M module-apps/application-meditation/windows/MeditationOptionsWindows.cpp => module-apps/application-meditation/windows/MeditationOptionsWindows.cpp +4 -4
@@ 51,7 51,7 @@ void MeditationOptionsWindow::addCounterOption(std::list<Option> &options)
        },
        [=](gui::Item &item) {
            if (item.focus) {
                setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
                setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
            }
            return true;
        },


@@ 69,7 69,7 @@ void MeditationOptionsWindow::addPreparationTimeOption(std::list<Option> &option
        },
        [=](gui::Item &item) {
            if (item.focus) {
                setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
            }
            return true;
        },


@@ 81,8 81,8 @@ PreparationTimeWindow::PreparationTimeWindow(app::ApplicationCommon *app)
    : OptionWindow(app, app::window::name::meditation_preparation)
{
    setTitle(utils::translate("app_meditation_preparation_time"));
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
    addOptions(buildOptionsList());
}


M module-apps/application-meditation/windows/MeditationTimerWindow.cpp => module-apps/application-meditation/windows/MeditationTimerWindow.cpp +10 -10
@@ 102,12 102,12 @@ auto MeditationTimerWindow::onInput(const InputEvent &inputEvent) -> bool
            application->switchWindow(app::window::name::meditation_main_window);
            return true;
        }
        if (inputEvent.is(KeyCode::KEY_RF) && bottomBar->isActive(BottomBar::Side::RIGHT)) {
        if (inputEvent.is(KeyCode::KEY_RF) && navBar->isActive(nav_bar::Side::Right)) {
            timer->getTimer().stop();
            setVisibleMeditationEnd();
            return true;
        }
        if (inputEvent.is(KeyCode::KEY_ENTER) && bottomBar->isActive(BottomBar::Side::CENTER)) {
        if (inputEvent.is(KeyCode::KEY_ENTER) && navBar->isActive(nav_bar::Side::Center)) {
            if (timer->getTimer().isStopped()) {
                timer->getTimer().start();
                setVisibleRunning();


@@ 131,22 131,22 @@ void MeditationTimerWindow::setWidgetVisible(bool sBar, bool bBar, bool counter)
    });

    header->setTitleVisibility(sBar);
    bottomBar->setActive(BottomBar::Side::CENTER, bBar);
    bottomBar->setActive(BottomBar::Side::LEFT, bBar);
    navBar->setActive(nav_bar::Side::Center, bBar);
    navBar->setActive(nav_bar::Side::Left, bBar);
    timer->setVisible(counter);
}
void MeditationTimerWindow::setVisibleRunning()
{
    setWidgetVisible(false, true, true);
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::pause));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::stop));
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::pause));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::stop));
    meditationInfo->setVisible(false);
}
void MeditationTimerWindow::setVisiblePaused()
{
    setWidgetVisible(true, true, true);
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::resume));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::stop));
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::resume));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::stop));
}
void MeditationTimerWindow::setVisiblePreparation()
{


@@ 158,7 158,7 @@ void MeditationTimerWindow::setVisiblePreparation()
    meditationInfo->setVisible(true);

    finished = false;
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
}

void MeditationTimerWindow::setVisibleMeditationEnd()


@@ 170,7 170,7 @@ void MeditationTimerWindow::setVisibleMeditationEnd()
    finished        = true;
    meditationInfo->setText(std::move(textParsed));
    meditationInfo->setVisible(true);
    bottomBar->setVisible(false);
    navBar->setVisible(false);
    endScreenTimeout.start();
}


M module-apps/application-meditation/windows/MeditationTimerWindow.hpp => module-apps/application-meditation/windows/MeditationTimerWindow.hpp +1 -1
@@ 22,7 22,7 @@ namespace gui
        std::chrono::seconds meditationIntervalPeriod{0};
        sys::TimerHandle endScreenTimeout;

        void setWidgetVisible(bool sBar, bool bottomBar, bool counter);
        void setWidgetVisible(bool sBar, bool navBar, bool counter);
        void setVisibleRunning();
        void setVisiblePaused();
        void setVisiblePreparation();

M module-apps/application-meditation/windows/MeditationWindow.cpp => module-apps/application-meditation/windows/MeditationWindow.cpp +8 -8
@@ 32,12 32,12 @@ namespace gui
        AppWindow::buildInterface();
        setTitle(utils::translate("app_meditation_title_main"));

        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::start));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::start));

        timeSetter = new TimerProperty(this,
                                       style::meditation::timer::X,


@@ 70,11 70,11 @@ namespace gui
    auto MeditationWindow::onInput(const InputEvent &inputEvent) -> bool
    {
        if (inputEvent.isShortRelease()) {
            if (inputEvent.is(KeyCode::KEY_LF) && bottomBar->isActive(BottomBar::Side::LEFT)) {
            if (inputEvent.is(KeyCode::KEY_LF) && navBar->isActive(nav_bar::Side::Left)) {
                application->switchWindow(app::window::name::meditation_options);
                return true;
            }
            else if (inputEvent.is(KeyCode::KEY_ENTER) && bottomBar->isActive(BottomBar::Side::CENTER)) {
            else if (inputEvent.is(KeyCode::KEY_ENTER) && navBar->isActive(nav_bar::Side::Center)) {
                auto app = dynamic_cast<app::ApplicationMeditation *>(application);
                assert(app);


M module-apps/application-messages/widgets/SMSInputWidget.cpp => module-apps/application-messages/widgets/SMSInputWidget.cpp +5 -5
@@ 55,8 55,8 @@ namespace gui

        inputText->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &Text) { application->getCurrentWindow()->bottomBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &Text) { application->getCurrentWindow()->navBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
            [=]() { application->getCurrentWindow()->selectSpecialCharacter(); }));

        inputText->inputCallback = [this, application]([[maybe_unused]] Item &, const InputEvent &event) {


@@ 75,8 75,8 @@ namespace gui
            if (inputText->focus) {

                application->getWindow(gui::name::window::thread_view)
                    ->setBottomBarText(utils::translate(utils::translate(style::strings::common::send)),
                                       BottomBar::Side::CENTER);
                    ->setNavBarText(utils::translate(utils::translate(style::strings::common::send)),
                                    nav_bar::Side::Center);

                if (inputText->getText() == utils::translate("sms_temp_reply")) {
                    inputText->clear();


@@ 94,7 94,7 @@ namespace gui
                }

                application->getWindow(gui::name::window::thread_view)
                    ->setBottomBarText(utils::translate(style::strings::common::reply), BottomBar::Side::CENTER);
                    ->setNavBarText(utils::translate(style::strings::common::reply), nav_bar::Side::Center);
            }

            return true;

M module-apps/application-messages/windows/MessagesMainWindow.cpp => module-apps/application-messages/windows/MessagesMainWindow.cpp +12 -12
@@ 56,12 56,12 @@ namespace gui
        list->setScrollTopMargin(style::margins::small);
        list->rebuildList();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_messages_title_main"));
        header->navigationIndicatorAdd(new gui::header::AddElementAction(), gui::header::BoxSelection::Left);


@@ 80,22 80,22 @@ namespace gui

        list->setVisible(true);
        list->focusChangedCallback = [this]([[maybe_unused]] gui::Item &item) {
            bottomBar->setActive(BottomBar::Side::LEFT, true);
            bottomBar->setActive(BottomBar::Side::CENTER, true);
            navBar->setActive(nav_bar::Side::Left, true);
            navBar->setActive(nav_bar::Side::Center, true);
            return true;
        };

        list->emptyListCallback = [this]() {
            emptyListIcon->setVisible(true);
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setActive(nav_bar::Side::Center, false);
            application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
        };

        list->notEmptyListCallback = [this]() {
            emptyListIcon->setVisible(false);
            bottomBar->setActive(BottomBar::Side::LEFT, true);
            bottomBar->setActive(BottomBar::Side::CENTER, true);
            navBar->setActive(nav_bar::Side::Left, true);
            navBar->setActive(nav_bar::Side::Center, true);
            application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);
        };


M module-apps/application-messages/windows/NewMessage.cpp => module-apps/application-messages/windows/NewMessage.cpp +14 -14
@@ 98,7 98,7 @@ namespace gui
            message->setText(sendRequest->textData);
        }

        updateBottomBar();
        updateNavBar();
    }

    bool NewMessageWindow::selectContact()


@@ 165,15 165,15 @@ namespace gui
        return true;
    }

    void NewMessageWindow::updateBottomBar()
    void NewMessageWindow::updateNavBar()
    {
        if (getFocusItem() == recipient) {
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            navBar->setActive(nav_bar::Side::Left, false);
            if (recipient->getText().empty()) {
                bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::contacts));
                navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::contacts));
                return;
            }
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            navBar->setActive(nav_bar::Side::Center, false);
        }
    }



@@ 181,13 181,13 @@ namespace gui
    {
        namespace msgStyle = style::messages::newMessage;
        AppWindow::buildInterface();
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("sms_title_message"));

        const uint32_t w = this->getWidth() - style::window::default_left_margin - style::window::default_right_margin;
        const uint32_t h = this->getHeight() - style::window::default_vertical_pos - bottomBar->getHeight();
        const uint32_t h = this->getHeight() - style::window::default_vertical_pos - navBar->getHeight();
        body = new gui::VBox(this, style::window::default_left_margin, style::window::default_vertical_pos, w, h);

        auto recipientLabel = new Label(body, 0, 0, body->getWidth(), msgStyle::recipientLabel::h);


@@ 211,7 211,7 @@ namespace gui
        recipient->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
        recipient->activatedCallback    = [=](Item &) -> bool { return selectContact(); };
        recipient->focusChangedCallback = [=](Item &) -> bool {
            updateBottomBar();
            updateNavBar();
            return true;
        };
        recipient->inputCallback = [this]([[maybe_unused]] Item &, const InputEvent &inputEvent) -> bool {


@@ 231,7 231,7 @@ namespace gui
                contact = nullptr;
                phoneNumber.clear();
            }
            updateBottomBar();
            updateNavBar();
        });

        auto img        = new gui::Image(recipientHBox, 0, 0, 0, 0, "phonebook_small");


@@ 250,8 250,8 @@ namespace gui
        message->setEdges(gui::RectangleEdge::Bottom);
        message->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        message->setPenFocusWidth(style::window::default_border_focus_w);
        message->setPenWidth(style::window::default_border_rect_no_focus);


@@ 264,8 264,8 @@ namespace gui
            return true;
        };
        message->focusChangedCallback = [=](Item &) -> bool {
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::send));
            bottomBar->setActive(BottomBar::Side::LEFT, true);
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::send));
            navBar->setActive(nav_bar::Side::Left, true);
            return true;
        };
        message->inputCallback = [=](Item &, const InputEvent &event) {

M module-apps/application-messages/windows/NewMessage.hpp => module-apps/application-messages/windows/NewMessage.hpp +1 -1
@@ 29,7 29,7 @@ namespace gui
        bool selectContact();
        bool sendSms();
        bool switchToThreadWindow(const utils::PhoneNumber::View &number);
        void updateBottomBar();
        void updateNavBar();
        auto getPhoneNumber() const -> utils::PhoneNumber;
        auto handleMessageText() -> bool;
        auto addDraft(const utils::PhoneNumber &number) -> bool;

M module-apps/application-messages/windows/SMSTemplatesWindow.cpp => module-apps/application-messages/windows/SMSTemplatesWindow.cpp +2 -2
@@ 39,8 39,8 @@ namespace gui

        setTitle(utils::translate("app_messages_templates"));

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::use));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::use));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        namespace style = style::messages::templates::list;


M module-apps/application-messages/windows/SMSThreadViewWindow.cpp => module-apps/application-messages/windows/SMSThreadViewWindow.cpp +3 -3
@@ 27,8 27,8 @@ namespace gui
    {
        AppWindow::buildInterface();
        setTitle(utils::translate("app_messages_title_main"));
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        smsList = new gui::ListView(this,
                                    style::messages::smsList::x,


@@ 92,7 92,7 @@ namespace gui
    bool SMSThreadViewWindow::onInput(const InputEvent &inputEvent)
    {
        if (inputEvent.isShortRelease(KeyCode::KEY_ENTER) &&
            bottomBar->getText(BottomBar::Side::CENTER) !=
            navBar->getText(nav_bar::Side::Center) !=
                utils::translate(utils::translate(style::strings::common::send))) {

            smsList->rebuildList();

M module-apps/application-messages/windows/SearchResults.cpp => module-apps/application-messages/windows/SearchResults.cpp +4 -4
@@ 19,10 19,10 @@ namespace gui

        AppWindow::buildInterface();
        setTitle(utils::translate("app_messages_title_main"));
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::search));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::search));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        body = new gui::Item();
        body->setBoundingBox(bodySize());
        addWidget(body);

M module-apps/application-messages/windows/SearchStart.cpp => module-apps/application-messages/windows/SearchStart.cpp +6 -6
@@ 16,18 16,18 @@ namespace gui
    {
        buildInterface();
        setTitle(utils::translate("app_messages_title_main"));
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::search));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::search));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        body = new gui::Item();
        body->setBoundingBox(bodySize());
        addWidget(body);
        auto text = inputBox(this, utils::translate("common_search_uc"), "search");
        text->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &Text) { application->getCurrentWindow()->bottomBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &Text) { application->getCurrentWindow()->navBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
            [=]() { application->getCurrentWindow()->selectSpecialCharacter(); }));

        inputCallback = [=](Item &, const InputEvent &inputEvent) -> bool {

M module-apps/application-music-player/models/SongsModel.cpp => module-apps/application-music-player/models/SongsModel.cpp +6 -6
@@ 51,8 51,8 @@ namespace app::music_player
        auto item = new gui::SongItem(song->tags.album.artist,
                                      song->tags.title,
                                      utils::time::Duration(song->audioProperties.songLength).str(),
                                      bottomBarTemporaryMode,
                                      bottomBarRestoreFromTemporaryMode);
                                      navBarTemporaryMode,
                                      navBarRestoreFromTemporaryMode);

        if (songContext.filePath == song->fileInfo.path) {
            item->setState(songContext.isPlaying() ? gui::SongItem::ItemState::Playing


@@ 87,13 87,13 @@ namespace app::music_player

    void SongsModel::createData(OnShortReleaseCallback shortReleaseCallback,
                                OnLongPressCallback longPressCallback,
                                OnSetBottomBarTemporaryCallback bottomBarTemporaryMode,
                                OnRestoreBottomBarTemporaryCallback bottomBarRestoreFromTemporaryMode)
                                OnSetNavBarTemporaryCallback navBarTemporaryMode,
                                OnRestoreNavBarTemporaryCallback navBarRestoreFromTemporaryMode)
    {
        this->shortReleaseCallback              = shortReleaseCallback;
        this->longPressCallback                 = longPressCallback;
        this->bottomBarTemporaryMode            = bottomBarTemporaryMode;
        this->bottomBarRestoreFromTemporaryMode = bottomBarRestoreFromTemporaryMode;
        this->navBarTemporaryMode               = navBarTemporaryMode;
        this->navBarRestoreFromTemporaryMode    = navBarRestoreFromTemporaryMode;

        songsRepository->initCache();
    }

M module-apps/application-music-player/models/SongsModel.hpp => module-apps/application-music-player/models/SongsModel.hpp +4 -4
@@ 20,8 20,8 @@ namespace app::music_player

        void createData(OnShortReleaseCallback shortReleaseCallback,
                        OnLongPressCallback longPressCallback,
                        OnSetBottomBarTemporaryCallback bottomBarTemporaryMode,
                        OnRestoreBottomBarTemporaryCallback bottomBarRestoreFromTemporaryMode) override;
                        OnSetNavBarTemporaryCallback navBarTemporaryMode,
                        OnRestoreNavBarTemporaryCallback navBarRestoreFromTemporaryMode) override;

        [[nodiscard]] auto requestRecordsCount() -> unsigned int override;



@@ 56,8 56,8 @@ namespace app::music_player

        OnShortReleaseCallback shortReleaseCallback{nullptr};
        OnLongPressCallback longPressCallback{nullptr};
        OnSetBottomBarTemporaryCallback bottomBarTemporaryMode{nullptr};
        OnRestoreBottomBarTemporaryCallback bottomBarRestoreFromTemporaryMode{nullptr};
        OnSetNavBarTemporaryCallback navBarTemporaryMode{nullptr};
        OnRestoreNavBarTemporaryCallback navBarRestoreFromTemporaryMode{nullptr};

        std::shared_ptr<AbstractSongsRepository> songsRepository;
    };

M module-apps/application-music-player/models/SongsModelInterface.hpp => module-apps/application-music-player/models/SongsModelInterface.hpp +4 -4
@@ 19,15 19,15 @@ namespace app::music_player
      public:
        using OnShortReleaseCallback              = std::function<bool(const std::string &fileName)>;
        using OnLongPressCallback                 = std::function<void()>;
        using OnSetBottomBarTemporaryCallback     = std::function<void(const UTF8 &)>;
        using OnRestoreBottomBarTemporaryCallback = std::function<void()>;
        using OnSetNavBarTemporaryCallback        = std::function<void(const UTF8 &)>;
        using OnRestoreNavBarTemporaryCallback    = std::function<void()>;
        explicit SongsListItemProvider(app::ApplicationCommon *app);
        virtual ~SongsListItemProvider() noexcept = default;

        virtual void createData(OnShortReleaseCallback shortReleaseCallback,
                                OnLongPressCallback longPressCallback,
                                OnSetBottomBarTemporaryCallback bottomBarTemporaryMode,
                                OnRestoreBottomBarTemporaryCallback bottomBarRestoreFromTemporaryMode) = 0;
                                OnSetNavBarTemporaryCallback navBarTemporaryMode,
                                OnRestoreNavBarTemporaryCallback navBarRestoreFromTemporaryMode)       = 0;
        virtual void clearData()                                                                       = 0;
    };


M module-apps/application-music-player/presenters/SongsPresenter.cpp => module-apps/application-music-player/presenters/SongsPresenter.cpp +6 -6
@@ 28,8 28,8 @@ namespace app::music_player
    {
        songsModelInterface->createData([this](const std::string &fileName) { return requestAudioOperation(fileName); },
                                        [this]() { stop(); },
                                        [this](const UTF8 &text) { setViewBottomBarTemporaryMode(text); },
                                        [this]() { restoreViewBottomBarFromTemporaryMode(); });
                                        [this](const UTF8 &text) { setViewNavBarTemporaryMode(text); },
                                        [this]() { restoreViewNavBarFromTemporaryMode(); });
        updateViewSongState();
    }



@@ 282,17 282,17 @@ namespace app::music_player
        return play(filePath);
    }

    void SongsPresenter::setViewBottomBarTemporaryMode(const std::string &text)
    void SongsPresenter::setViewNavBarTemporaryMode(const std::string &text)
    {
        if (auto view = getView(); view != nullptr) {
            view->setBottomBarTemporaryMode(text);
            view->setNavBarTemporaryMode(text);
        }
    }

    void SongsPresenter::restoreViewBottomBarFromTemporaryMode()
    void SongsPresenter::restoreViewNavBarFromTemporaryMode()
    {
        if (auto view = getView(); view != nullptr) {
            view->restoreFromBottomBarTemporaryMode();
            view->restoreFromNavBarTemporaryMode();
        }
    }


M module-apps/application-music-player/presenters/SongsPresenter.hpp => module-apps/application-music-player/presenters/SongsPresenter.hpp +4 -4
@@ 28,8 28,8 @@ namespace app::music_player
                                          RecordState state)                = 0;
            virtual void updateSongProgress(float progress)                 = 0;
            virtual void refreshWindow()                                    = 0;
            virtual void setBottomBarTemporaryMode(const std::string &text) = 0;
            virtual void restoreFromBottomBarTemporaryMode()                = 0;
            virtual void setNavBarTemporaryMode(const std::string &text)    = 0;
            virtual void restoreFromNavBarTemporaryMode()                   = 0;
        };

        class Presenter : public BasePresenter<SongsContract::View>


@@ 98,8 98,8 @@ namespace app::music_player

        /// Request state dependant audio operation
        bool requestAudioOperation(const std::string &filePath = "");
        void setViewBottomBarTemporaryMode(const std::string &text);
        void restoreViewBottomBarFromTemporaryMode();
        void setViewNavBarTemporaryMode(const std::string &text);
        void restoreViewNavBarFromTemporaryMode();
        std::shared_ptr<SongsModelInterface> songsModelInterface;
        std::unique_ptr<AbstractAudioOperations> audioOperations;
        std::function<void(SongState)> changePlayingStateCallback = nullptr;

M module-apps/application-music-player/widgets/SongItem.cpp => module-apps/application-music-player/widgets/SongItem.cpp +5 -5
@@ 14,7 14,7 @@ namespace gui
                       const std::string &duration,
                       std::function<void(const UTF8 &)> setBtBarCallback,
                       std::function<void()> restoreBtBarCallback)
        : bottomBarTemporaryMode(setBtBarCallback), bottomBarRestoreFromTemporaryMode(restoreBtBarCallback)
        : navBarTemporaryMode(setBtBarCallback), navBarRestoreFromTemporaryMode(restoreBtBarCallback)
    {
        setMinimumSize(songItem::w, songItem::h);
        setMargins(Margins(0, style::margins::small, 0, style::margins::small));


@@ 90,14 90,14 @@ namespace gui
                    bottorBarText = utils::translate("common_play");
                    break;
                }
                if (bottomBarTemporaryMode != nullptr) {
                    bottomBarTemporaryMode(bottorBarText);
                if (navBarTemporaryMode != nullptr) {
                    navBarTemporaryMode(bottorBarText);
                }
            }
            else {
                setFocusItem(nullptr);
                if (bottomBarRestoreFromTemporaryMode != nullptr) {
                    bottomBarRestoreFromTemporaryMode();
                if (navBarRestoreFromTemporaryMode != nullptr) {
                    navBarRestoreFromTemporaryMode();
                }
            }
            setState(itemState);

M module-apps/application-music-player/widgets/SongItem.hpp => module-apps/application-music-player/widgets/SongItem.hpp +4 -4
@@ 19,8 19,8 @@ namespace gui
        SongItem(const std::string &authorName,
                 const std::string &songName,
                 const std::string &duration,
                 std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                 std::function<void()> bottomBarRestoreFromTemporaryMode);
                 std::function<void(const UTF8 &)> navBarTemporaryMode,
                 std::function<void()> navBarRestoreFromTemporaryMode);

        enum class ItemState
        {


@@ 39,8 39,8 @@ namespace gui
        TextFixedSize *durationText                                  = nullptr;
        Image *playedSong                                            = nullptr;
        ItemState itemState                                          = ItemState::None;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode    = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode         = nullptr;
    };

} /* namespace gui */

M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp => module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp +5 -5
@@ 34,7 34,7 @@ namespace gui
        AppWindow::buildInterface();

        setTitle(utils::translate("app_music_player_music_library_window_name"));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        songsList = new gui::ListView(this,
                                      musicPlayerStyle::allSongsWindow::x,


@@ 86,14 86,14 @@ namespace gui
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);
    }

    void MusicPlayerAllSongsWindow::setBottomBarTemporaryMode(const std::string &text)
    void MusicPlayerAllSongsWindow::setNavBarTemporaryMode(const std::string &text)
    {
        bottomBarTemporaryMode(text, BottomBar::Side::CENTER, false);
        navBarTemporaryMode(text, nav_bar::Side::Center, false);
    }

    void MusicPlayerAllSongsWindow::restoreFromBottomBarTemporaryMode()
    void MusicPlayerAllSongsWindow::restoreFromNavBarTemporaryMode()
    {
        bottomBarRestoreFromTemporaryMode();
        navBarRestoreFromTemporaryMode();
    }

    bool MusicPlayerAllSongsWindow::onInput(const InputEvent &inputEvent)

M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp => module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp +2 -2
@@ 29,8 29,8 @@ namespace gui
        void updateSongProgress(float progres) override
        {}
        void refreshWindow() override;
        void setBottomBarTemporaryMode(const std::string &text) override;
        void restoreFromBottomBarTemporaryMode() override;
        void setNavBarTemporaryMode(const std::string &text) override;
        void restoreFromNavBarTemporaryMode() override;

      private:
        std::shared_ptr<app::music_player::SongsContract::Presenter> presenter;

M module-apps/application-music-player/windows/MusicPlayerMainWindow.cpp => module-apps/application-music-player/windows/MusicPlayerMainWindow.cpp +21 -21
@@ 82,10 82,10 @@ namespace gui

        mainBox->resizeItems();

        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("app_music_player_quit"));
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate("app_music_player_quit"));
    }

    void MusicPlayerMainWindow::buildInterfaceTrackMode()


@@ 122,10 122,10 @@ namespace gui

        mainBox->resizeItems();

        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("app_music_player_quit"));
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate("app_music_player_quit"));
    }

    void MusicPlayerMainWindow::buildInterfaceLibraryMode()


@@ 163,10 163,10 @@ namespace gui
                    }
                    isPermissionToChangeViewMode = permissionToChangeViewMode;
                    if (window.empty()) {
                        clearBottomBarText(BottomBar::Side::CENTER);
                        clearNavBarText(nav_bar::Side::Center);
                    }
                    else {
                        bottomBar->setText(BottomBar::Side::CENTER, utils::translate("common_select"));
                        navBar->setText(nav_bar::Side::Center, utils::translate("common_select"));
                    }
                    return true;
                },


@@ 193,11 193,11 @@ namespace gui

        mainBox->resizeItems();

        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate("common_select"));
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("app_music_player_quit"));
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setText(nav_bar::Side::Center, utils::translate("common_select"));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate("app_music_player_quit"));
    }

    void MusicPlayerMainWindow::buildPlayButtonsInterface(VBox *parent)


@@ 422,14 422,14 @@ namespace gui
        application->refreshWindow(mode);
    }

    void MusicPlayerMainWindow::setBottomBarTemporaryMode(const std::string &text)
    void MusicPlayerMainWindow::setNavBarTemporaryMode(const std::string &text)
    {
        bottomBarTemporaryMode(text, BottomBar::Side::CENTER, false);
        navBarTemporaryMode(text, nav_bar::Side::Center, false);
    }

    void MusicPlayerMainWindow::restoreFromBottomBarTemporaryMode()
    void MusicPlayerMainWindow::restoreFromNavBarTemporaryMode()
    {
        bottomBarRestoreFromTemporaryMode();
        navBarRestoreFromTemporaryMode();
    }

    void MusicPlayerMainWindow::changeCurrentMode(ViewMode m)


@@ 485,8 485,8 @@ namespace gui
        }

        if (myViewMode == ViewMode::TRACK) {
            bottomBar->setText(BottomBar::Side::CENTER,
                               isPlaying ? utils::translate("common_pause") : utils::translate("common_resume"));
            navBar->setText(nav_bar::Side::Center,
                            isPlaying ? utils::translate("common_pause") : utils::translate("common_resume"));
        }
    }


M module-apps/application-music-player/windows/MusicPlayerMainWindow.hpp => module-apps/application-music-player/windows/MusicPlayerMainWindow.hpp +2 -2
@@ 47,8 47,8 @@ namespace gui
                              RecordState state) override;
        void updateSongProgress(float progress) override;
        void refreshWindow() override;
        void setBottomBarTemporaryMode(const std::string &text) override;
        void restoreFromBottomBarTemporaryMode() override;
        void setNavBarTemporaryMode(const std::string &text) override;
        void restoreFromNavBarTemporaryMode() override;

        void changeCurrentMode(ViewMode m);


M module-apps/application-notes/windows/NoteCreateWindow.cpp => module-apps/application-notes/windows/NoteCreateWindow.cpp +2 -2
@@ 15,7 15,7 @@ namespace app::notes
    bool NoteCreateWindow::onInput(const gui::InputEvent &inputEvent)
    {
        if (inputEvent.isShortRelease(gui::KeyCode::KEY_ENTER)) {
            if (!bottomBar->isActive(gui::BottomBar::Side::CENTER)) {
            if (!navBar->isActive(gui::nav_bar::Side::Center)) {
                return false;
            }
        }


@@ 25,6 25,6 @@ namespace app::notes
    void NoteCreateWindow::onCharactersCountChanged(std::uint32_t count)
    {
        NoteEditWindow::onCharactersCountChanged(count);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, count != 0U);
        navBar->setActive(gui::nav_bar::Side::Center, count != 0U);
    }
} // namespace app::notes

M module-apps/application-notes/windows/NoteEditWindow.cpp => module-apps/application-notes/windows/NoteEditWindow.cpp +8 -8
@@ 75,8 75,8 @@ namespace app::notes
        edit->setFont(::style::window::font::medium);
        edit->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        edit->setTextChangedCallback([this](Item &, const UTF8 &text) {
            const auto count = text.length();


@@ 85,14 85,14 @@ namespace app::notes
        });
        edit->setTextLimitType(gui::TextLimitType::MaxSignsCount, MaxCharactersCount);

        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::options));
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::options));

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::save));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::save));

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        setFocusItem(edit);
    }

M module-apps/application-notes/windows/NoteMainWindow.cpp => module-apps/application-notes/windows/NoteMainWindow.cpp +10 -10
@@ 46,12 46,12 @@ namespace app::notes
        header->navigationIndicatorAdd(new gui::header::AddElementAction(), gui::header::BoxSelection::Left);
        header->navigationIndicatorAdd(new gui::header::SearchAction(), gui::header::BoxSelection::Right);

        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::options));
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::open));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::options));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::open));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        namespace listStyle = app::notes::style::list;
        list                = new gui::ListView(this,


@@ 95,8 95,8 @@ namespace app::notes

    void NoteMainWindow::onEmptyList()
    {
        bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
        navBar->setActive(gui::nav_bar::Side::Left, false);
        navBar->setActive(gui::nav_bar::Side::Center, false);
        emptyListIcon->setVisible(true);
        header->navigationIndicatorRemove(gui::header::BoxSelection::Right);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);


@@ 104,8 104,8 @@ namespace app::notes

    void NoteMainWindow::onListFilled()
    {
        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        emptyListIcon->setVisible(false);
        header->navigationIndicatorAdd(new gui::header::SearchAction(), gui::header::BoxSelection::Right);
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP);

M module-apps/application-notes/windows/NotePreviewWindow.cpp => module-apps/application-notes/windows/NotePreviewWindow.cpp +6 -6
@@ 68,14 68,14 @@ namespace app::notes
        note->setEditMode(gui::EditMode::Scroll);
        note->setCursorStartPosition(gui::CursorStartPosition::DocumentBegin);

        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::options));
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::options));

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate("app_notes_edit"));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate("app_notes_edit"));

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        setFocusItem(note);
    }

M module-apps/application-notes/windows/SearchEngineWindow.cpp => module-apps/application-notes/windows/SearchEngineWindow.cpp +4 -4
@@ 29,10 29,10 @@ namespace app::notes
        AppWindow::buildInterface();
        setTitle(utils::translate("app_notes_title_main"));

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::search));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::search));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));

        input = gui::inputBox(this, utils::translate("common_search_uc"), "search");
        setFocusItem(input);

M module-apps/application-notes/windows/SearchResultsWindow.cpp => module-apps/application-notes/windows/SearchResultsWindow.cpp +4 -4
@@ 29,10 29,10 @@ namespace app::notes
        AppWindow::buildInterface();
        setTitle(utils::translate("app_notes_title_main"));

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::open));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::open));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        list = new gui::ListView(this,
                                 style::list::X,

M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp => module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp +2 -2
@@ 18,8 18,8 @@ namespace app::onBoarding
        : gui::Dialog(app, gui::window::name::onBoarding_configuration_successful)
    {
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::start));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::start));
        navBar->setActive(gui::nav_bar::Side::Right, false);
    }

    bool ConfigurationSuccessfulDialogWindow::onInput(const gui::InputEvent &inputEvent)

M module-apps/application-onboarding/windows/EULALicenseWindow.cpp => module-apps/application-onboarding/windows/EULALicenseWindow.cpp +5 -5
@@ 53,13 53,13 @@ namespace app::onBoarding
        eulaText->setEditMode(gui::EditMode::Scroll);
        eulaText->setCursorStartPosition(gui::CursorStartPosition::DocumentBegin);

        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);

        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::accept));
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::accept));

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        setFocusItem(eulaText);
    }

M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp => module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp +2 -2
@@ 18,8 18,8 @@ namespace app::onBoarding
        : gui::Dialog(app, gui::window::name::onBoarding_no_configuration)
    {
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::start));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::start));
        navBar->setActive(gui::nav_bar::Side::Right, false);
    }

    bool NoConfigurationDialogWindow::onInput(const gui::InputEvent &inputEvent)

M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp => module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp +2 -2
@@ 13,8 13,8 @@ namespace app::onBoarding
    NoSimSelectedDialogWindow::NoSimSelectedDialogWindow(app::ApplicationCommon *app)
        : gui::Dialog(app, gui::window::name::onBoarding_no_sim_selected)
    {
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::ok));
        navBar->setActive(gui::nav_bar::Side::Right, true);

        applyToStatusBar([](gui::status_bar::Configuration configuration) {
            configuration.setIndicator(gui::status_bar::Indicator::SimCard, false);

M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp => module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp +7 -7
@@ 29,9 29,9 @@ namespace app::onBoarding
        DateAndTimeMainWindow::onBeforeShow(mode, data);
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);

        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(style::strings::common::Switch));
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(style::strings::common::Switch));
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
    }

    bool OnBoardingDateAndTimeWindow::onInput(const gui::InputEvent &inputEvent)


@@ 63,15 63,15 @@ namespace app::onBoarding
        }
    }

    bool OnBoardingDateAndTimeWindow::bottomBarCallback(gui::Item &item)
    bool OnBoardingDateAndTimeWindow::navBarCallback(gui::Item &item)
    {
        setBottomBarText(utils::translate(style::strings::common::save), gui::BottomBar::Side::CENTER);
        setNavBarText(utils::translate(style::strings::common::save), gui::nav_bar::Side::Center);

        if (item.focus) {
            setBottomBarText(utils::translate(style::strings::common::Switch), gui::BottomBar::Side::LEFT);
            setNavBarText(utils::translate(style::strings::common::Switch), gui::nav_bar::Side::Left);
        }
        else {
            setBottomBarText(utils::translate(style::strings::common::select), gui::BottomBar::Side::LEFT);
            setNavBarText(utils::translate(style::strings::common::select), gui::nav_bar::Side::Left);
        }
        return true;
    }

M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp => module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace app::onBoarding
        ~OnBoardingDateAndTimeWindow();

      protected:
        bool bottomBarCallback(Item &item) override;
        bool navBarCallback(Item &item) override;

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

M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp => module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp +1 -1
@@ 22,7 22,7 @@ namespace app::onBoarding
    void OnBoardingLanguagesWindow::onBeforeShow(gui::ShowMode mode, gui::SwitchData *data)
    {
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
        navBar->setActive(gui::nav_bar::Side::Right, false);

        LanguagesWindow::onBeforeShow(mode, data);
    }

M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp => module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp +3 -3
@@ 23,9 23,9 @@ namespace app::onBoarding
    {
        setTitle(utils::translate("app_onboarding_select_sim"));
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::select));
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::select));
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::skip));

        descriptionText = new gui::Text(this,
                                        style::window::default_left_margin,

M module-apps/application-onboarding/windows/StartConfigurationWindow.cpp => module-apps/application-onboarding/windows/StartConfigurationWindow.cpp +3 -3
@@ 28,9 28,9 @@ namespace app::onBoarding
        AppWindow::buildInterface();

        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::start));
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::start));
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::skip));

        new gui::Icon(this,
                      0,

M module-apps/application-onboarding/windows/UpdateDialogWindow.cpp => module-apps/application-onboarding/windows/UpdateDialogWindow.cpp +2 -2
@@ 16,8 16,8 @@ namespace app::onBoarding
                                           std::unique_ptr<OnBoardingFinalizeContract::Presenter> &&windowPresenter)
        : gui::Dialog(app, gui::window::name::onBoarding_update), presenter(std::move(windowPresenter))
    {
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, false);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::ok));
        navBar->setActive(gui::nav_bar::Side::Right, false);
        presenter->attach(this);
    }


M module-apps/application-phonebook/models/NewContactModel.cpp => module-apps/application-phonebook/models/NewContactModel.cpp +21 -21
@@ 10,7 10,7 @@

#include <ListView.hpp>
#include <time/ScopedTime.hpp>
#include <BottomBar.hpp>
#include <NavBar.hpp>

NewContactModel::NewContactModel(app::ApplicationCommon *app) : application(app)
{}


@@ 42,66 42,66 @@ void NewContactModel::createData()

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::FirstName,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this]() { this->ContactDataChanged(); }));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::SecondName,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this]() { this->ContactDataChanged(); }));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::Number,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this]() { this->ContactDataChanged(); }));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::SecondNumber,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this]() { this->ContactDataChanged(); }));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::Email,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this]() { this->ContactDataChanged(); }));

    internalData.push_back(new gui::InputBoxWithLabelAndIconWidget(
        phonebookInternals::ListItemName::AddToFavourites,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));

    internalData.back()->setMargins(gui::Margins(style::widgets::leftMargin, style::margins::very_big, 0, 0));

    internalData.push_back(new gui::InputBoxWithLabelAndIconWidget(
        phonebookInternals::ListItemName::AddToICE,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));

    internalData.back()->setMargins(
        gui::Margins(style::widgets::leftMargin, style::margins::big, 0, style::margins::very_small));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::Address,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        nullptr,
        2));

    internalData.push_back(new gui::InputLinesWithLabelIWidget(
        phonebookInternals::ListItemName::Note,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        nullptr,
        2));


@@ 145,11 145,11 @@ void NewContactModel::ContactDataChanged()
    for (auto item : internalData) {
        if (item->onEmptyCallback) {
            if (!item->onEmptyCallback()) {
                application->getCurrentWindow()->setBottomBarActive(gui::BottomBar::Side::CENTER, true); // SAVE button
                application->getCurrentWindow()->setNavBarActive(gui::nav_bar::Side::Center, true); // SAVE button
                return;
            }
        }
    }
    application->getCurrentWindow()->setBottomBarActive(gui::BottomBar::Side::CENTER, false); // SAVE button
    application->getCurrentWindow()->setNavBarActive(gui::nav_bar::Side::Center, false); // SAVE button
    return;
}

M module-apps/application-phonebook/widgets/InformationWidget.cpp => module-apps/application-phonebook/widgets/InformationWidget.cpp +1 -1
@@ 88,7 88,7 @@ namespace gui
            }
            else {
                savedFocusItem = getFocusItem();
                app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode();
                app->getCurrentWindow()->navBarRestoreFromTemporaryMode();
            }
            return true;
        };

M module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.cpp => module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.cpp +15 -15
@@ 5,7 5,7 @@

#include "application-phonebook/data/PhonebookStyle.hpp"

#include <BottomBar.hpp>
#include <NavBar.hpp>
#include <i18n/i18n.hpp>

#include <utility>


@@ 14,10 14,10 @@ namespace gui
{
    InputBoxWithLabelAndIconWidget::InputBoxWithLabelAndIconWidget(
        phonebookInternals::ListItemName listItemName,
        std::function<void(const UTF8 &)> bottomBarTemporaryMode,
        std::function<void()> bottomBarRestoreFromTemporaryMode)
        : listItemName(listItemName), bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
        std::function<void(const UTF8 &)> navBarTemporaryMode,
        std::function<void()> navBarRestoreFromTemporaryMode)
        : listItemName(listItemName), navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        setMinimumSize(phonebookStyle::inputBoxWithLabelAndIconIWidget::w,
                       phonebookStyle::inputBoxWithLabelAndIconIWidget::h);


@@ 139,16 139,16 @@ namespace gui
                setFocusItem(inputBoxLabel);
                descriptionLabel->setFont(style::window::font::mediumbold);
                if (tickImage->visible) {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                    navBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                }
                else {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_check"));
                    navBarTemporaryMode(utils::translate("app_phonebook_check"));
                }
            }
            else {
                setFocusItem(nullptr);
                descriptionLabel->setFont(style::window::font::medium);
                bottomBarRestoreFromTemporaryMode();
                navBarRestoreFromTemporaryMode();
            }
            return true;
        };


@@ 157,10 157,10 @@ namespace gui
            if (event.isShortRelease(gui::KeyCode::KEY_LF)) {
                tickImage->setVisible(!tickImage->visible);
                if (tickImage->visible) {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                    navBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                }
                else {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_check"));
                    navBarTemporaryMode(utils::translate("app_phonebook_check"));
                }
                hBox->resizeItems();
                return true;


@@ 184,16 184,16 @@ namespace gui
                setFocusItem(inputBoxLabel);
                descriptionLabel->setFont(style::window::font::mediumbold);
                if (tickImage->visible) {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                    navBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                }
                else {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_check"));
                    navBarTemporaryMode(utils::translate("app_phonebook_check"));
                }
            }
            else {
                setFocusItem(nullptr);
                descriptionLabel->setFont(style::window::font::medium);
                bottomBarRestoreFromTemporaryMode();
                navBarRestoreFromTemporaryMode();
            }
            return true;
        };


@@ 202,10 202,10 @@ namespace gui
            if (event.isShortRelease(gui::KeyCode::KEY_LF)) {
                tickImage->setVisible(!tickImage->visible);
                if (tickImage->visible) {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                    navBarTemporaryMode(utils::translate("app_phonebook_uncheck"));
                }
                else {
                    bottomBarTemporaryMode(utils::translate("app_phonebook_check"));
                    navBarTemporaryMode(utils::translate("app_phonebook_check"));
                }
                hBox->resizeItems();
                return true;

M module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.hpp => module-apps/application-phonebook/widgets/InputBoxWithLabelAndIconWidget.hpp +4 -4
@@ 21,8 21,8 @@ namespace gui

      public:
        InputBoxWithLabelAndIconWidget(phonebookInternals::ListItemName listItemName,
                                       std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                                       std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                                       std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                                       std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);
        ~InputBoxWithLabelAndIconWidget() override = default;
        gui::HBox *hBox              = nullptr;
        gui::Label *inputBoxLabel    = nullptr;


@@ 31,8 31,8 @@ namespace gui
        gui::Image *tickImage        = nullptr;

      private:
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;

        void applyItemNameSpecificSettings();


M module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.cpp => module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.cpp +4 -4
@@ 13,8 13,8 @@
namespace gui
{
    InputLinesWithLabelIWidget::InputLinesWithLabelIWidget(phonebookInternals::ListItemName listItemName,
                                                           std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                                                           std::function<void()> bottomBarRestoreFromTemporaryMode,
                                                           std::function<void(const UTF8 &)> navBarTemporaryMode,
                                                           std::function<void()> navBarRestoreFromTemporaryMode,
                                                           std::function<void()> selectSpecialCharacter,
                                                           std::function<void()> contentChanged,
                                                           unsigned int lines)


@@ 52,8 52,8 @@ namespace gui
        inputText->setFont(style::window::font::medium);
        inputText->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        inputText->setPenFocusWidth(style::window::default_border_focus_w);
        inputText->setPenWidth(style::window::default_border_no_focus_w);

M module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.hpp => module-apps/application-phonebook/widgets/InputLinesWithLabelIWidget.hpp +5 -5
@@ 19,11 19,11 @@ namespace gui

      public:
        InputLinesWithLabelIWidget(phonebookInternals::ListItemName listItemName,
                                   std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                                   std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr,
                                   std::function<void()> selectSpecialCharacter                 = nullptr,
                                   std::function<void()> contentChanged                         = nullptr,
                                   unsigned int lines                                           = 1);
                                   std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                                   std::function<void()> navBarRestoreFromTemporaryMode      = nullptr,
                                   std::function<void()> selectSpecialCharacter              = nullptr,
                                   std::function<void()> contentChanged                      = nullptr,
                                   unsigned int lines                                        = 1);

        ~InputLinesWithLabelIWidget() override = default;
        VBox *vBox               = nullptr;

M module-apps/application-phonebook/windows/PhonebookContactDetails.cpp => module-apps/application-phonebook/windows/PhonebookContactDetails.cpp +2 -2
@@ 26,8 26,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        contactFlagsWidget = new ContactFlagsWidget(this);


M module-apps/application-phonebook/windows/PhonebookIceContacts.cpp => module-apps/application-phonebook/windows/PhonebookIceContacts.cpp +4 -4
@@ 37,10 37,10 @@ namespace gui

        setFocusItem(contactsListIce);

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::call));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::call));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
    }

    void PhonebookIceContacts::destroyInterface()

M module-apps/application-phonebook/windows/PhonebookMainWindow.cpp => module-apps/application-phonebook/windows/PhonebookMainWindow.cpp +12 -12
@@ 36,9 36,9 @@ namespace gui
        header->navigationIndicatorAdd(new gui::header::AddElementAction(), gui::header::BoxSelection::Left);
        header->navigationIndicatorAdd(new gui::header::SearchAction(), gui::header::BoxSelection::Right);

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::call));
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::call));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        contactsList = new gui::PhonebookListView(this,
                                                  phonebookStyle::mainWindow::contactsList::x,


@@ 67,8 67,8 @@ namespace gui
        auto app  = application;
        inputMode = std::make_unique<InputMode>(
            std::list<InputMode::Mode>{InputMode::ABC, InputMode::abc},
            [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
            [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
            [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
            [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
            [app]() { app->getCurrentWindow()->selectSpecialCharacter(); });
    }



@@ 99,9 99,9 @@ namespace gui
                    std::make_unique<app::manager::SwitchBackRequest>(application->GetName(), std::move(data)));
            };

            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::add));
            bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::add));
            navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

            header->navigationIndicatorRemove(gui::header::BoxSelection::Left);
            header->navigationIndicatorRemove(gui::header::BoxSelection::Right);


@@ 176,8 176,8 @@ namespace gui

    void PhonebookMainWindow::onEmptyList()
    {
        bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
        navBar->setActive(gui::nav_bar::Side::Left, false);
        navBar->setActive(gui::nav_bar::Side::Center, false);
        emptyListIcon->setVisible(true);
        header->navigationIndicatorRemove(gui::header::BoxSelection::Right);
        application->refreshWindow(RefreshModes::GUI_REFRESH_DEEP);


@@ 186,8 186,8 @@ namespace gui
    void PhonebookMainWindow::onListFilled()
    {
        if (!isSearchRequested()) {
            bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
            bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
            navBar->setActive(gui::nav_bar::Side::Left, true);
            navBar->setActive(gui::nav_bar::Side::Center, true);
            header->navigationIndicatorAdd(new gui::header::SearchAction(), gui::header::BoxSelection::Right);
        }


M module-apps/application-phonebook/windows/PhonebookNewContact.cpp => module-apps/application-phonebook/windows/PhonebookNewContact.cpp +3 -3
@@ 29,8 29,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_phonebook_contact_title"));



@@ 110,7 110,7 @@ namespace gui

    void PhonebookNewContact::setSaveButtonVisible(bool visible)
    {
        bottomBar->setActive(BottomBar::Side::CENTER, visible);
        navBar->setActive(nav_bar::Side::Center, visible);
    }

    auto PhonebookNewContact::onInput(const InputEvent &inputEvent) -> bool

M module-apps/application-phonebook/windows/PhonebookSearch.cpp => module-apps/application-phonebook/windows/PhonebookSearch.cpp +7 -7
@@ 22,16 22,16 @@ namespace gui
        inputField = inputBox(this, utils::translate("common_search_uc"), "search");
        inputField->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &Text) { application->getCurrentWindow()->bottomBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &Text) { application->getCurrentWindow()->navBarTemporaryMode(Text); },
            [=]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
            [=]() { application->getCurrentWindow()->selectSpecialCharacter(); }));

        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::search));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::search));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setFocusItem(inputField);
    }

M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp => module-apps/application-phonebook/windows/PhonebookSearchResults.cpp +9 -9
@@ 36,9 36,9 @@ namespace gui
                                                      searchResultsModel);
        setFocusItem(searchResultList);

        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

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


@@ 74,14 74,14 @@ namespace gui
        searchResultList->setProvider(searchResultsModel);

        if (searchResultsModel->messagesSelectCallback) {
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setText(BottomBar::Side::LEFT, "");
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setText(nav_bar::Side::Left, "");
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        }
        else {
            bottomBar->setActive(BottomBar::Side::LEFT, true);
            bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::call));
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open));
            navBar->setActive(nav_bar::Side::Left, true);
            navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::call));
            navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::open));
        }

        return true;

M module-apps/application-settings/models/apps/SoundsModel.cpp => module-apps/application-settings/models/apps/SoundsModel.cpp +15 -15
@@ 139,21 139,21 @@ void SoundsModel::applyItems(const std::vector<std::filesystem::path> &sounds,
                else if (event.isShortRelease(gui::KeyCode::KEY_LF)) {
                    if (!soundsPlayer->previouslyPlayed(fileRelativePath) ||
                        soundsPlayer->isInState(AbstractSoundsPlayer::State::Stopped)) {
                        app->getCurrentWindow()->bottomBarTemporaryMode(
                            utils::translate(style::strings::common::pause), gui::BottomBar::Side::LEFT, false);
                        app->getCurrentWindow()->navBarTemporaryMode(
                            utils::translate(style::strings::common::pause), gui::nav_bar::Side::Left, false);
                        return soundsPlayer->play(fileRelativePath, [=]() {
                            app->getCurrentWindow()->bottomBarTemporaryMode(
                                utils::translate(style::strings::common::play), gui::BottomBar::Side::LEFT, false);
                            app->getCurrentWindow()->navBarTemporaryMode(
                                utils::translate(style::strings::common::play), gui::nav_bar::Side::Left, false);
                        });
                    }
                    else if (soundsPlayer->isInState(AbstractSoundsPlayer::State::Playing)) {
                        app->getCurrentWindow()->bottomBarTemporaryMode(
                            utils::translate(style::strings::common::play), gui::BottomBar::Side::LEFT, false);
                        app->getCurrentWindow()->navBarTemporaryMode(
                            utils::translate(style::strings::common::play), gui::nav_bar::Side::Left, false);
                        return soundsPlayer->pause();
                    }
                    else if (soundsPlayer->isInState(AbstractSoundsPlayer::State::Paused)) {
                        app->getCurrentWindow()->bottomBarTemporaryMode(
                            utils::translate(style::strings::common::pause), gui::BottomBar::Side::LEFT, false);
                        app->getCurrentWindow()->navBarTemporaryMode(
                            utils::translate(style::strings::common::pause), gui::nav_bar::Side::Left, false);
                        return soundsPlayer->resume();
                    }
                }


@@ 163,26 163,26 @@ void SoundsModel::applyItems(const std::vector<std::filesystem::path> &sounds,

            item->focusChangedCallback = [=](gui::Item &item) {
                if (!item.focus) {
                    app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode();
                    app->getCurrentWindow()->navBarRestoreFromTemporaryMode();
                    return true;
                }

                auto fileRelativePath = sound.lexically_relative(purefs::dir::getCurrentOSPath());
                if (!soundsPlayer->previouslyPlayed(fileRelativePath)) {
                    app->getCurrentWindow()->bottomBarTemporaryMode(
                        utils::translate(style::strings::common::play), gui::BottomBar::Side::LEFT, false);
                    app->getCurrentWindow()->navBarTemporaryMode(
                        utils::translate(style::strings::common::play), gui::nav_bar::Side::Left, false);
                    return true;
                }

                if (soundsPlayer->isInState(AbstractSoundsPlayer::State::Playing)) {
                    app->getCurrentWindow()->bottomBarTemporaryMode(
                        utils::translate(style::strings::common::pause), gui::BottomBar::Side::LEFT, false);
                    app->getCurrentWindow()->navBarTemporaryMode(
                        utils::translate(style::strings::common::pause), gui::nav_bar::Side::Left, false);
                    return true;
                }

                else {
                    app->getCurrentWindow()->bottomBarTemporaryMode(
                        utils::translate(style::strings::common::play), gui::BottomBar::Side::LEFT, false);
                    app->getCurrentWindow()->navBarTemporaryMode(
                        utils::translate(style::strings::common::play), gui::nav_bar::Side::Left, false);
                    return true;
                }


M module-apps/application-settings/models/display-keypad/CategoriesModel.cpp => module-apps/application-settings/models/display-keypad/CategoriesModel.cpp +2 -2
@@ 84,9 84,9 @@ namespace Quotes
                task->execute(app, this);
            },
            [app = app](const UTF8 &text) {
                app->getCurrentWindow()->bottomBarTemporaryMode(text, gui::BottomBar::Side::CENTER, false);
                app->getCurrentWindow()->navBarTemporaryMode(text, gui::nav_bar::Side::Center, false);
            },
            [app = app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); });
            [app = app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); });

        return item;
    }

M module-apps/application-settings/models/display-keypad/QuotesModel.cpp => module-apps/application-settings/models/display-keypad/QuotesModel.cpp +2 -2
@@ 86,9 86,9 @@ namespace Quotes
                task->execute(app, this);
            },
            [app = app](const UTF8 &text) {
                app->getCurrentWindow()->bottomBarTemporaryMode(text, gui::BottomBar::Side::CENTER, false);
                app->getCurrentWindow()->navBarTemporaryMode(text, gui::nav_bar::Side::Center, false);
            },
            [app = app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); });
            [app = app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); });

        item->inputCallback = [app = app, item](gui::Item &, const gui::InputEvent &event) {
            if (event.isShortRelease(gui::KeyCode::KEY_LF)) {

M module-apps/application-settings/models/network/NewApnModel.cpp => module-apps/application-settings/models/network/NewApnModel.cpp +15 -15
@@ 39,45 39,45 @@ void NewApnModel::createData()

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::Name,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); },
        [this](const std::string &text) { this->apnNameChanged(text); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::APN,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::Username,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::Password,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::AuthType,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::ApnType,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    internalData.emplace_back(new gui::ApnInputWidget(
        settingsInternals::ListItemName::ApnProtocol,
        [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
        [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text); },
        [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
        [app]() { app->getCurrentWindow()->selectSpecialCharacter(); }));

    for (auto item : internalData) {


@@ 118,5 118,5 @@ void NewApnModel::apnNameChanged(const std::string &newName)
{
    LOG_DEBUG("New APN name: %s", newName.c_str());
    const bool showSaveButton = !newName.empty();
    application->getCurrentWindow()->setBottomBarActive(gui::BottomBar::Side::CENTER, showSaveButton);
    application->getCurrentWindow()->setNavBarActive(gui::nav_bar::Side::Center, showSaveButton);
}

M module-apps/application-settings/models/network/SimContactsImportModel.cpp => module-apps/application-settings/models/network/SimContactsImportModel.cpp +2 -2
@@ 54,8 54,8 @@ void SimContactsImportModel::createData(const std::vector<ContactRecord> &import
    for (const auto &record : importedRecords) {
        internalData.push_back(new gui::SimContactImportSelectWidget(
            record.primaryName + " " + record.alternativeName,
            [app](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); }));
            [app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
            [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));
    }

    for (auto item : internalData) {

M module-apps/application-settings/models/system/DateAndTimeModel.cpp => module-apps/application-settings/models/system/DateAndTimeModel.cpp +2 -2
@@ 65,8 65,8 @@ void DateAndTimeModel::createData()
    timeItem = new gui::SettingsTimeItem(
        utils::translate("app_settings_title_time"),
        gui::TimeWidget::Type::Start,
        [&](const UTF8 &text) { app->getCurrentWindow()->bottomBarTemporaryMode(text, false); },
        [&]() { app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); });
        [&](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
        [&]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); });

    timeItem->setConnectionToDateItem(dateItem);


M module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp => module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp +6 -6
@@ 11,18 11,18 @@ namespace gui
                                                 std::uint8_t value,
                                                 std::uint8_t maxValue,
                                                 std::function<bool(uint8_t)> updateCallback,
                                                 std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                                                 std::function<void()> bottomBarRestoreFromTemporaryMode,
                                                 std::function<void(const UTF8 &text)> navBarTemporaryMode,
                                                 std::function<void()> navBarRestoreFromTemporaryMode,
                                                 bool indent)
        : updateCallback(std::move(updateCallback)), bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode)), maxValue(maxValue),
          value(value), text(text), indent(indent)
        : updateCallback(std::move(updateCallback)), navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode)), maxValue(maxValue), value(value),
          text(text), indent(indent)
    {}

    auto SpinBoxOptionSettings::build() const -> ListItem *
    {
        auto spinBox = new SpinBox(
            nullptr, text, updateCallback, maxValue, value, bottomBarTemporaryMode, bottomBarRestoreFromTemporaryMode);
            nullptr, text, updateCallback, maxValue, value, navBarTemporaryMode, navBarRestoreFromTemporaryMode);

        auto optionItem = new gui::ListItem();
        optionItem->setMinimumSize(style::window::default_body_width, style::window::label::big_h);

M module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp => module-apps/application-settings/widgets/SpinBoxOptionSettings.hpp +4 -4
@@ 14,16 14,16 @@ namespace gui
                              uint8_t value,
                              uint8_t maxValue,
                              std::function<bool(uint8_t)> updateCallback,
                              std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                              std::function<void()> bottomBarRestoreFromTemporaryMode,
                              std::function<void(const UTF8 &text)> navBarTemporaryMode,
                              std::function<void()> navBarRestoreFromTemporaryMode,
                              bool indent = false);

        [[nodiscard]] auto build() const -> ListItem * override;

      private:
        std::function<bool(uint8_t)> updateCallback;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;
        std::uint8_t maxValue;
        std::uint8_t value;
        UTF8 text;

M module-apps/application-settings/widgets/display-keypad/CategoryWidget.cpp => module-apps/application-settings/widgets/display-keypad/CategoryWidget.cpp +7 -7
@@ 32,11 32,11 @@ namespace gui

    CategoryWidget::CategoryWidget(const Quotes::CategoryRecord &categoryRecord,
                                   std::function<void(bool)> enableCategoryCallback,
                                   std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                                   std::function<void()> bottomBarRestoreFromTemporaryMode)
                                   std::function<void(const UTF8 &)> navBarTemporaryMode,
                                   std::function<void()> navBarRestoreFromTemporaryMode)
        : category(categoryRecord), enableCategory(std::move(enableCategoryCallback)),
          bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
          navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        setMinimumSize(style::quotes::widget::w, style::quotes::widget::h);



@@ 82,12 82,12 @@ namespace gui
                setFocusItem(inputBoxLabel);
                auto bottorBarText =
                    category.enabled ? utils::translate("common_uncheck") : utils::translate("common_check");
                this->bottomBarTemporaryMode(bottorBarText);
                this->navBarTemporaryMode(bottorBarText);
            }
            else {
                descriptionLabel->setFont(style::window::font::medium);
                setFocusItem(nullptr);
                this->bottomBarRestoreFromTemporaryMode();
                this->navBarRestoreFromTemporaryMode();
            }
            return true;
        };


@@ 98,7 98,7 @@ namespace gui
            tickImage->setVisible(category.enabled);
            auto bottorBarText =
                category.enabled ? utils::translate("common_uncheck") : utils::translate("common_check");
            this->bottomBarTemporaryMode(bottorBarText);
            this->navBarTemporaryMode(bottorBarText);
            hBox->resizeItems();
            return true;
        };

M module-apps/application-settings/widgets/display-keypad/CategoryWidget.hpp => module-apps/application-settings/widgets/display-keypad/CategoryWidget.hpp +4 -4
@@ 17,8 17,8 @@ namespace gui
      public:
        CategoryWidget(const Quotes::CategoryRecord &categoryRecord,
                       std::function<void(bool)> enableCategory,
                       std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                       std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                       std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                       std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);

      private:
        gui::HBox *hBox              = nullptr;


@@ 28,8 28,8 @@ namespace gui

        Quotes::CategoryRecord category;
        std::function<void(bool)> enableCategory                     = nullptr;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode    = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode         = nullptr;
    };

} /* namespace gui */

M module-apps/application-settings/widgets/display-keypad/QuoteWidget.cpp => module-apps/application-settings/widgets/display-keypad/QuoteWidget.cpp +7 -7
@@ 32,11 32,11 @@ namespace gui

    QuoteWidget::QuoteWidget(const Quotes::QuoteRecord &quoteRecord,
                             std::function<void(bool)> enableQuoteCallback,
                             std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                             std::function<void()> bottomBarRestoreFromTemporaryMode)
                             std::function<void(const UTF8 &)> navBarTemporaryMode,
                             std::function<void()> navBarRestoreFromTemporaryMode)
        : quote(quoteRecord), enableQuote(std::move(enableQuoteCallback)),
          bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
          navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {

        setMinimumSize(style::quotes::widget::w, style::quotes::widget::h);


@@ 69,12 69,12 @@ namespace gui
                descriptionLabel->setFont(style::window::font::mediumbold);
                auto bottorBarText =
                    quote.enabled ? utils::translate("common_uncheck") : utils::translate("common_check");
                this->bottomBarTemporaryMode(bottorBarText);
                this->navBarTemporaryMode(bottorBarText);
            }
            else {
                descriptionLabel->setFont(style::window::font::medium);
                setFocusItem(nullptr);
                this->bottomBarRestoreFromTemporaryMode();
                this->navBarRestoreFromTemporaryMode();
            }
            return true;
        };


@@ 84,7 84,7 @@ namespace gui
            enableQuote(quote.enabled);
            tickImage->showImage(quote.enabled);
            auto bottorBarText = quote.enabled ? utils::translate("common_uncheck") : utils::translate("common_check");
            this->bottomBarTemporaryMode(bottorBarText);
            this->navBarTemporaryMode(bottorBarText);
            hBox->resizeItems();
            return true;
        };

M module-apps/application-settings/widgets/display-keypad/QuoteWidget.hpp => module-apps/application-settings/widgets/display-keypad/QuoteWidget.hpp +4 -4
@@ 16,8 16,8 @@ namespace gui
      public:
        QuoteWidget(const Quotes::QuoteRecord &quoteRecord,
                    std::function<void(bool)> enableQuoteCallback,
                    std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                    std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                    std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                    std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);

        [[nodiscard]] auto getQuoteData() const -> Quotes::QuoteRecord
        {


@@ 31,8 31,8 @@ namespace gui

        Quotes::QuoteRecord quote;
        std::function<void(bool)> enableQuote                        = nullptr;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode    = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode         = nullptr;
    };

} /* namespace gui */

M module-apps/application-settings/widgets/network/ApnInputWidget.cpp => module-apps/application-settings/widgets/network/ApnInputWidget.cpp +4 -4
@@ 10,8 10,8 @@
namespace gui
{
    ApnInputWidget::ApnInputWidget(settingsInternals::ListItemName listItemName,
                                   std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                                   std::function<void()> bottomBarRestoreFromTemporaryMode,
                                   std::function<void(const UTF8 &)> navBarTemporaryMode,
                                   std::function<void()> navBarRestoreFromTemporaryMode,
                                   std::function<void()> selectSpecialCharacter,
                                   std::function<void(const std::string &text)> contentChanged,
                                   unsigned int lines)


@@ 46,8 46,8 @@ namespace gui
        inputText->setFont(style::window::font::medium);
        inputText->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        inputText->setPenFocusWidth(style::window::default_border_focus_w);
        inputText->setPenWidth(style::window::default_border_no_focus_w);

M module-apps/application-settings/widgets/network/ApnInputWidget.hpp => module-apps/application-settings/widgets/network/ApnInputWidget.hpp +5 -5
@@ 17,11 17,11 @@ namespace gui

      public:
        ApnInputWidget(settingsInternals::ListItemName listItemName,
                       std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                       std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr,
                       std::function<void()> selectSpecialCharacter                 = nullptr,
                       std::function<void(const std::string &text)> contentChanged  = nullptr,
                       unsigned int lines                                           = 1);
                       std::function<void(const UTF8 &text)> navBarTemporaryMode   = nullptr,
                       std::function<void()> navBarRestoreFromTemporaryMode        = nullptr,
                       std::function<void()> selectSpecialCharacter                = nullptr,
                       std::function<void(const std::string &text)> contentChanged = nullptr,
                       unsigned int lines                                          = 1);

      private:
        VBox *vBox                                                    = nullptr;

M module-apps/application-settings/widgets/network/SimContactImportSelectWidget.cpp => module-apps/application-settings/widgets/network/SimContactImportSelectWidget.cpp +4 -11
@@ 7,22 7,15 @@ namespace gui
{
    SimContactImportSelectWidget::SimContactImportSelectWidget(
        const std::string &contactName,
        const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
        const std::function<void()> &bottomBarRestoreFromTemporaryMode)
        const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
        const std::function<void()> &navBarRestoreFromTemporaryMode)
    {
        setEdges(RectangleEdge::None);
        setMinimumSize(style::window::default_body_width, style::window::label::big_h);
        setMargins(gui::Margins(style::widgets::leftMargin, style::margins::big, 0, 0));

        checkBoxWithLabel = new gui::CheckBoxWithLabel(this,
                                                       0,
                                                       0,
                                                       0,
                                                       0,
                                                       contactName,
                                                       bottomBarTemporaryMode,
                                                       bottomBarRestoreFromTemporaryMode,
                                                       BottomBar::Side::LEFT);
        checkBoxWithLabel = new gui::CheckBoxWithLabel(
            this, 0, 0, 0, 0, contactName, navBarTemporaryMode, navBarRestoreFromTemporaryMode, nav_bar::Side::Left);

        inputCallback = [&]([[maybe_unused]] Item &item, const InputEvent &event) {
            return checkBoxWithLabel->onInput(event);

M module-apps/application-settings/widgets/network/SimContactImportSelectWidget.hpp => module-apps/application-settings/widgets/network/SimContactImportSelectWidget.hpp +2 -2
@@ 15,8 15,8 @@ namespace gui

      public:
        SimContactImportSelectWidget(const std::string &contactName,
                                     const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode = nullptr,
                                     const std::function<void()> &bottomBarRestoreFromTemporaryMode      = nullptr);
                                     const std::function<void(const UTF8 &text)> &navBarTemporaryMode = nullptr,
                                     const std::function<void()> &navBarRestoreFromTemporaryMode      = nullptr);
        bool isChecked();
    };


M module-apps/application-settings/widgets/system/SettingsTimeItem.cpp => module-apps/application-settings/widgets/system/SettingsTimeItem.cpp +3 -3
@@ 13,8 13,8 @@ namespace gui
{
    SettingsTimeItem::SettingsTimeItem(const std::string &description,
                                       TimeWidget::Type type,
                                       const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
                                       const std::function<void()> &bottomBarRestoreFromTemporaryMode)
                                       const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
                                       const std::function<void()> &navBarRestoreFromTemporaryMode)
    {
        setMinimumSize(style::window::default_body_width, date_and_time::height);
        setEdges(RectangleEdge::None);


@@ 23,7 23,7 @@ namespace gui
        vBox = new VBox(this, 0, 0, 0, 0);
        vBox->setEdges(RectangleEdge::None);

        timeWidget = new TimeWidget(vBox, description, type, bottomBarTemporaryMode, bottomBarRestoreFromTemporaryMode);
        timeWidget = new TimeWidget(vBox, description, type, navBarTemporaryMode, navBarRestoreFromTemporaryMode);

        onLoadCallback = [&](std::shared_ptr<utils::time::FromTillDate> fromTillDate) {
            timeWidget->loadData(std::chrono::hours(TimePointToHour24H(fromTillDate->from)),

M module-apps/application-settings/widgets/system/SettingsTimeItem.hpp => module-apps/application-settings/widgets/system/SettingsTimeItem.hpp +2 -2
@@ 14,8 14,8 @@ namespace gui
      public:
        SettingsTimeItem(const std::string &description,
                         TimeWidget::Type type,
                         const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
                         const std::function<void()> &bottomBarRestoreFromTemporaryMode);
                         const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
                         const std::function<void()> &navBarRestoreFromTemporaryMode);

        void setConnectionToSecondItem(SettingsTimeItem *item);
        void setConnectionToDateItem(SettingsDateItem *item);

M module-apps/application-settings/windows/OptionsWidgetMaker.cpp => module-apps/application-settings/windows/OptionsWidgetMaker.cpp +2 -4
@@ 21,12 21,10 @@ namespace gui
            },
            [=](Item &item) {
                if (item.focus) {
                    mWindow->setBottomBarText(utils::translate(style::strings::common::Switch),
                                              BottomBar::Side::CENTER);
                    mWindow->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                else {
                    mWindow->setBottomBarText(utils::translate(style::strings::common::select),
                                              BottomBar::Side::CENTER);
                    mWindow->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },

M module-apps/application-settings/windows/advanced/ColorTestWindow.cpp => module-apps/application-settings/windows/advanced/ColorTestWindow.cpp +6 -6
@@ 35,12 35,12 @@ namespace gui

        colorListView->rebuildList();

        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate("app_settings_toolbar_reset"));
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setText(nav_bar::Side::Left, utils::translate("app_settings_toolbar_reset"));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        applyInputCallback();


M module-apps/application-settings/windows/advanced/EinkModeWindow.cpp => module-apps/application-settings/windows/advanced/EinkModeWindow.cpp +4 -4
@@ 15,10 15,10 @@ namespace gui
    EinkModeWindow::EinkModeWindow(app::ApplicationCommon *app) : AppWindow(app, window::name::eink_mode)
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(window::name::eink_mode);
        auto label               = new Label(this, 100, 200, 300, 50, "Change mode on click");

M module-apps/application-settings/windows/advanced/InformationWindow.cpp => module-apps/application-settings/windows/advanced/InformationWindow.cpp +2 -2
@@ 19,8 19,8 @@ namespace gui
    void InformationWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(gui::window::name::information);


M module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.cpp => module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.cpp +4 -4
@@ 14,10 14,10 @@ namespace gui
        : AppWindow(app, window::name::status_bar_img_type)
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(window::name::status_bar_img_type);


M module-apps/application-settings/windows/advanced/UITestWindow.cpp => module-apps/application-settings/windows/advanced/UITestWindow.cpp +6 -6
@@ 16,10 16,10 @@ namespace gui
        AppWindow::buildInterface();
        buildInterface();
        // prebuild
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        setTitle("UI TEST");
        text = new gui::Text(this,
                             style::window::default_left_margin,


@@ 55,8 55,8 @@ namespace gui
        text->addText(TextBlock("special chars too", Font(27).raw(), TextBlock::End::None));
        text->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        text->setPenFocusWidth(0);
        setFocusItem(text);

M module-apps/application-settings/windows/apps/AlarmClockWindow.cpp => module-apps/application-settings/windows/apps/AlarmClockWindow.cpp +2 -2
@@ 40,9 40,9 @@ namespace gui
                    return true;
                },
                [&](const UTF8 &text) {
                    application->getCurrentWindow()->bottomBarTemporaryMode(text, BottomBar::Side::CENTER, false);
                    application->getCurrentWindow()->navBarTemporaryMode(text, nav_bar::Side::Center, false);
                },
                [&]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
                [&]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
                true));
        }


M module-apps/application-settings/windows/apps/PhoneWindow.cpp => module-apps/application-settings/windows/apps/PhoneWindow.cpp +2 -2
@@ 37,9 37,9 @@ namespace gui
                    return true;
                },
                [&](const UTF8 &text) {
                    application->getCurrentWindow()->bottomBarTemporaryMode(text, BottomBar::Side::CENTER, false);
                    application->getCurrentWindow()->navBarTemporaryMode(text, nav_bar::Side::Center, false);
                },
                [&]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); },
                [&]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); },
                true));
        }
#endif // DEVELOPER_SETTINGS_OPTIONS

M module-apps/application-settings/windows/apps/SoundSelectWindow.cpp => module-apps/application-settings/windows/apps/SoundSelectWindow.cpp +2 -2
@@ 28,8 28,8 @@ namespace gui
    void SoundSelectWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        mSoundsList = new gui::ListView(this,
                                        style::window::default_left_margin,

M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp => module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp +1 -1
@@ 50,7 50,7 @@ namespace gui
                gui::option::SettingRightItem::Bt));
        }

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::add));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::add));

        return optionsList;
    }

M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp => module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp +6 -6
@@ 68,8 68,8 @@ namespace gui
            return true;
        }
        if (inputEvent.is(KeyCode::KEY_LF)) {
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setActive(nav_bar::Side::Center, false);
            auto selectedDevice = bluetoothSettingsModel->getSelectedDevice();
            if (selectedDevice.has_value()) {
                bluetoothSettingsModel->requestDeviceUnpair(selectedDevice.value().get());


@@ 82,7 82,7 @@ namespace gui

    auto AllDevicesWindow::buildOptionsList() -> std::list<Option>
    {
        bottomBar->setActive(BottomBar::Side::CENTER, !bluetoothSettingsModel->getDevices().empty());
        navBar->setActive(nav_bar::Side::Center, !bluetoothSettingsModel->getDevices().empty());
        std::list<gui::Option> optionsList;

        for (const auto &device : bluetoothSettingsModel->getDevices()) {


@@ 95,10 95,10 @@ namespace gui
                [=](gui::Item & /*item*/) { return handleDeviceAction(device); },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(textOnCenter, BottomBar::Side::CENTER);
                        this->setNavBarText(textOnCenter, nav_bar::Side::Center);
                        if (device.deviceState != DeviceState::Pairing) {
                            this->setBottomBarText(utils::translate("common_forget"), BottomBar::Side::LEFT);
                            this->bottomBar->setActive(BottomBar::Side::LEFT, true);
                            this->setNavBarText(utils::translate("common_forget"), nav_bar::Side::Left);
                            this->navBar->setActive(nav_bar::Side::Left, true);
                        }
                        bluetoothSettingsModel->setSelectedDevice(device);
                    }

M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp +4 -4
@@ 30,10 30,10 @@ namespace gui

        setTitle(utils::translate("app_settings_bt"));

        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::confirm));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::confirm));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        image = new Image(this, passkey_style::image::x, passkey_style::image::y, 0, 0, "bluetooth_W_G");


M module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp +5 -7
@@ 45,7 45,7 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                return true;
            },


@@ 61,8 61,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 77,8 76,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 93,8 91,8 @@ namespace gui
                    },
                    [=](gui::Item &item) {
                        if (item.focus) {
                            this->setBottomBarText(utils::translate(style::strings::common::select),
                                                   BottomBar::Side::CENTER);
                            this->setNavBarText(utils::translate(style::strings::common::select),
                                                nav_bar::Side::Center);
                        }
                        return true;
                    },

M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp => module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp +5 -5
@@ 25,12 25,12 @@ namespace gui
        setTitle(utils::translate("app_settings_bluetooth_phone_name"));

        inputField = inputBox(this, utils::translate("app_settings_bluetooth_phone_name"));
        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setFocusItem(inputField);
    }

M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp +1 -2
@@ 33,8 33,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp +3 -4
@@ 65,8 65,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 114,9 113,9 @@ namespace gui
            std::ceil(screen_light_control::ManualModeParameters::MAX_BRIGHTNESS / brightnessStep),
            setBrightness,
            [&](const UTF8 &text) {
                application->getCurrentWindow()->bottomBarTemporaryMode(text, BottomBar::Side::CENTER, false);
                application->getCurrentWindow()->navBarTemporaryMode(text, nav_bar::Side::Center, false);
            },
            [&]() { application->getCurrentWindow()->bottomBarRestoreFromTemporaryMode(); });
            [&]() { application->getCurrentWindow()->navBarRestoreFromTemporaryMode(); });

        return spinner;
    }

M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp +3 -6
@@ 27,8 27,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 48,8 47,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 68,8 66,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp +1 -2
@@ 38,8 38,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp +1 -2
@@ 70,8 70,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp => module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp +2 -2
@@ 21,8 21,8 @@ namespace gui

        setTitle(utils::translate("app_settings_display_wallpaper_quotes_categories"));

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::check));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::check));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        list = new gui::ListView(this,
                                 style::quotes::categories::list::X,

M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp +6 -6
@@ 39,8 39,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        auto vBox = new VBox(this,
                             style::window::default_left_margin,


@@ 76,8 76,8 @@ namespace gui
        authorText->setFont(::style::window::font::medium);
        authorText->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        authorText->setTextLimitType(gui::TextLimitType::MaxSignsCount, maxAuthorCharactersCount);



@@ 105,8 105,8 @@ namespace gui
        quoteText->setFont(::style::window::font::medium);
        quoteText->setInputMode(new InputMode(
            {InputMode::ABC, InputMode::abc, InputMode::digit},
            [=](const UTF8 &text) { bottomBarTemporaryMode(text); },
            [=]() { bottomBarRestoreFromTemporaryMode(); },
            [=](const UTF8 &text) { navBarTemporaryMode(text); },
            [=]() { navBarRestoreFromTemporaryMode(); },
            [=]() { selectSpecialCharacter(); }));
        quoteText->setTextLimitType(gui::TextLimitType::MaxSignsCount, maxQuoteCharactersCount);
        quoteText->setTextChangedCallback([this](Item &, const UTF8 &text) { setQuoteCharactersCount(text.length()); });

M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp +3 -3
@@ 35,9 35,9 @@ namespace gui
        setTitle(utils::translate("app_settings_display_wallpaper_quotes"));
        header->navigationIndicatorAdd(new gui::header::AddElementAction(), gui::header::BoxSelection::Left);

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::check));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::check));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));

        list = new gui::ListView(this,
                                 style::quotes::list::X,

M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp +2 -2
@@ 32,7 32,7 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },


@@ 58,7 58,7 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },

M module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp +2 -4
@@ 27,8 27,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::Switch),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },


@@ 49,8 48,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp => module-apps/application-settings/windows/network/ApnSettingsWindow.cpp +5 -5
@@ 33,7 33,7 @@ namespace gui
                                 utils::translate("app_settings_apn_settings_no_apns"));
        emptyListIcon->setVisible(false);

        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::options));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::options));

        activeApn        = std::make_shared<packet_data::APN::Config>();
        apnSettingsModel = std::make_shared<ApnSettingsModel>(application);


@@ 64,8 64,8 @@ namespace gui
    void ApnSettingsWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        clearOptions();
        bottomBar->setActive(gui::BottomBar::Side::LEFT, false);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, false);
        navBar->setActive(gui::nav_bar::Side::Left, false);
        navBar->setActive(gui::nav_bar::Side::Center, false);
        emptyListIcon->setVisible(false);

        if (apns.empty()) {


@@ 78,8 78,8 @@ namespace gui
            apnSettingsModel->requestAPNList();
        }

        bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        navBar->setActive(gui::nav_bar::Side::Left, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
    }

    auto ApnSettingsWindow::onInput(const InputEvent &inputEvent) -> bool

M module-apps/application-settings/windows/network/NetworkWindow.cpp => module-apps/application-settings/windows/network/NetworkWindow.cpp +1 -1
@@ 88,7 88,7 @@ namespace gui
            gui::option::SettingRightItem::ArrowWhite,
            false));

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));

        return optList;
    }

M module-apps/application-settings/windows/network/NewApnWindow.cpp => module-apps/application-settings/windows/network/NewApnWindow.cpp +3 -3
@@ 26,8 26,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::save));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        setTitle(utils::translate("app_settings_new_edit_apn"));



@@ 88,7 88,7 @@ namespace gui

    void NewApnWindow::setSaveButtonVisible(bool visible)
    {
        bottomBar->setActive(BottomBar::Side::CENTER, visible);
        navBar->setActive(nav_bar::Side::Center, visible);
    }

    auto NewApnWindow::onInput(const InputEvent &inputEvent) -> bool

M module-apps/application-settings/windows/network/SimCardsWindow.cpp => module-apps/application-settings/windows/network/SimCardsWindow.cpp +3 -3
@@ 57,10 57,10 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                else {
                    this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },


@@ 92,7 92,7 @@ namespace gui
            nullptr,
            gui::option::SettingRightItem::ArrowWhite));

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));

        return optList;
    }

M module-apps/application-settings/windows/network/SimContactsImportWindow.cpp => module-apps/application-settings/windows/network/SimContactsImportWindow.cpp +21 -21
@@ 24,8 24,8 @@ namespace gui

        setTitle(utils::translate("app_settings_network_import_contacts"));

        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::import));
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::import));

        list = new ListView(this,
                            style::window::default_left_margin,


@@ 56,9 56,9 @@ namespace gui
        emptyListIcon->text->setRichText(
            utils::translate("app_settings_network_import_contacts_from_sim_card_reading"));
        emptyListIcon->image->set("update_icon_W_G");
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::LEFT, false);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Left, false);

        presenter->requestSimContacts();
    }


@@ 72,15 72,15 @@ namespace gui

    bool SimContactsImportWindow::onInput(const InputEvent &inputEvent)
    {
        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_LF) && !bottomBar->isActive(BottomBar::Side::LEFT)) {
        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_LF) && !navBar->isActive(nav_bar::Side::Left)) {
            return false;
        }

        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER) && !bottomBar->isActive(BottomBar::Side::CENTER)) {
        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER) && !navBar->isActive(nav_bar::Side::Center)) {
            return false;
        }

        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_RF) && !bottomBar->isActive(BottomBar::Side::RIGHT)) {
        if (inputEvent.isKeyRelease(gui::KeyCode::KEY_RF) && !navBar->isActive(nav_bar::Side::Right)) {
            return false;
        }



@@ 100,11 100,11 @@ namespace gui

    void SimContactsImportWindow::contactsReady() noexcept
    {
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        navBar->setActive(nav_bar::Side::Center, true);
        list->rebuildList();

        if (list->isEmpty()) {
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            navBar->setActive(nav_bar::Side::Center, false);
            emptyListIcon->text->setRichText(
                utils::translate("app_settings_network_import_contacts_from_sim_card_no_contacts"));
            emptyListIcon->image->set("info_icon_W_G");


@@ 127,9 127,9 @@ namespace gui
            utils::translate("app_settings_network_import_contacts_from_sim_card_duplicates"),
            {{"$DUPLICATES", std::to_string(duplicatesCount)}});
        emptyListIcon->image->set("info_icon_W_G");
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::show));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::show));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::skip));

        onLFInputCallback = [&]() {
            displayProgressInfo();


@@ 140,11 140,11 @@ namespace gui

    void SimContactsImportWindow::displayDuplicates() noexcept
    {
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::replace));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::replace));
        list->rebuildList();

        setTitle(utils::translate("app_settings_network_import_contacts_duplicates"));
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Right, true);

        onLFInputCallback    = nullptr;
        onEnterInputCallback = [&]() {


@@ 161,9 161,9 @@ namespace gui
        emptyListIcon->text->setRichText(
            utils::translate("app_settings_network_import_contacts_from_sim_card_success"));
        emptyListIcon->image->set("success_icon_W_G");
        bottomBar->setActive(BottomBar::Side::RIGHT, false);
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::ok));
        bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::contacts));
        navBar->setActive(nav_bar::Side::Right, false);
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(::style::strings::common::ok));
        navBar->setText(gui::nav_bar::Side::Left, utils::translate(::style::strings::common::contacts));

        onLFInputCallback = [&]() {
            app::manager::Controller::sendAction(application, app::manager::actions::ShowContacts);


@@ 178,8 178,8 @@ namespace gui
        emptyListIcon->text->setRichText(
            utils::translate("app_settings_network_import_contacts_from_sim_card_reading"));
        emptyListIcon->image->set("update_icon_W_G");
        bottomBar->setActive(BottomBar::Side::RIGHT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::LEFT, false);
        navBar->setActive(nav_bar::Side::Right, false);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Left, false);
    }
} // namespace gui

M module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp => module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp +2 -2
@@ 42,10 42,10 @@ namespace gui
            },
            [=](Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                else {
                    this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },

M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp +2 -2
@@ 50,8 50,8 @@ namespace gui
                                                                       : option::SettingRightItem::Disabled));
        }

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        return optList;
    }

M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp => module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp +2 -2
@@ 67,8 67,8 @@ namespace gui
            (dndSettings->getCallsFromFavourite()) ? gui::option::SettingRightItem::On
                                                   : gui::option::SettingRightItem::Off));

        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::Switch));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::Switch));
        return optList;
    }
} // namespace gui

M module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp => module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp +2 -2
@@ 69,8 69,8 @@ namespace gui
                gui::option::SettingRightItem::ArrowWhite));
        }

        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::Switch));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::Switch));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        return optList;
    }

M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp +4 -4
@@ 39,7 39,7 @@ namespace gui
            [=](gui::Item &item) { return true; },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->clearBottomBarText(BottomBar::Side::CENTER);
                    this->clearNavBarText(nav_bar::Side::Center);
                }
                return true;
            },


@@ 53,7 53,7 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::adjust), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::adjust), nav_bar::Side::Center);
                }
                return true;
            },


@@ 68,14 68,14 @@ namespace gui
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::adjust), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::adjust), nav_bar::Side::Center);
                }
                return true;
            },
            this,
            gui::option::SettingRightItem::ArrowWhite));

        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        return optList;
    }

M module-apps/application-settings/windows/security/AutolockWindow.cpp => module-apps/application-settings/windows/security/AutolockWindow.cpp +1 -2
@@ 45,8 45,7 @@ namespace gui
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setBottomBarText(utils::translate(style::strings::common::select),
                                               BottomBar::Side::CENTER);
                        this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                    }
                    return true;
                },

M module-apps/application-settings/windows/security/SecurityMainWindow.cpp => module-apps/application-settings/windows/security/SecurityMainWindow.cpp +2 -2
@@ 45,10 45,10 @@ namespace gui
            },
            [=](Item &item) {
                if (item.focus) {
                    this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                else {
                    this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
                    this->setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
                }
                return true;
            },

M module-apps/application-settings/windows/system/CertificationWindow.cpp => module-apps/application-settings/windows/system/CertificationWindow.cpp +1 -1
@@ 22,7 22,7 @@ namespace gui

        setTitle(utils::translate("app_settings_certification"));

        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));

        auto body = new VBox(this,
                             style::window::default_left_margin,

M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp => module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp +4 -4
@@ 22,10 22,10 @@ namespace gui
        AppWindow::buildInterface();
        setTitle(utils::translate("app_settings_date_and_time"));

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::save));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setActive(gui::nav_bar::Side::Center, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));
        navBar->setText(gui::nav_bar::Side::Center, utils::translate(style::strings::common::save));

        list = new gui::ListView(this,
                                 style::window::date_and_time::listView_x,

M module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp +4 -4
@@ 38,7 38,7 @@ namespace gui
            optionList.emplace_back(std::make_unique<option::OptionSettings>(
                text,
                activatedCallback,
                [=](Item &item) { return bottomBarCallback(item); },
                [=](Item &item) { return navBarCallback(item); },
                nullptr,
                rightItem,
                false,


@@ 101,13 101,13 @@ namespace gui
        return optionList;
    }

    bool DateAndTimeMainWindow::bottomBarCallback(Item &item)
    bool DateAndTimeMainWindow::navBarCallback(Item &item)
    {
        if (item.focus) {
            setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
            setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
        }
        else {
            setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
            setNavBarText(utils::translate(style::strings::common::select), nav_bar::Side::Center);
        }
        return true;
    }

M module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace gui

      protected:
        auto buildOptionsList() -> std::list<Option> override;
        virtual bool bottomBarCallback(Item &item);
        virtual bool navBarCallback(Item &item);

        bool automaticDateAndTimeIsOn = false;


M module-apps/application-settings/windows/system/SARInfoWindow.cpp => module-apps/application-settings/windows/system/SARInfoWindow.cpp +2 -2
@@ 35,8 35,8 @@ namespace gui
        sarInfoText->setEditMode(gui::EditMode::Scroll);
        sarInfoText->setCursorStartPosition(gui::CursorStartPosition::DocumentBegin);

        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        setFocusItem(sarInfoText);
    }

M module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp => module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp +2 -2
@@ 25,8 25,8 @@ namespace gui
        AppWindow::buildInterface();

        setTitle(utils::translate("app_settings_about_your_pure"));
        bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
        navBar->setActive(gui::nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(::style::strings::common::back));

        list = new ListView(this,
                            style::window::default_left_margin,

M module-apps/application-special-input/windows/SpecialInputMainWindow.cpp => module-apps/application-special-input/windows/SpecialInputMainWindow.cpp +5 -5
@@ 32,9 32,9 @@ void SpecialInputMainWindow::buildInterface()
{
    AppWindow::buildInterface();

    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
    bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::emoji));
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
    navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::emoji));

    charList = new gui::ListView(this,
                                 specialInputStyle::specialInputListView::x,


@@ 74,13 74,13 @@ void SpecialInputMainWindow::switchPage()
    if (actualWindow == specialInputStyle::CharactersType::Emoji) {
        model->createData(specialInputStyle::CharactersType::SpecialCharacters);
        actualWindow = specialInputStyle::CharactersType::SpecialCharacters;
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::emoji));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::emoji));
        setTitle(utils::translate("app_special_input_window"));
    }
    else if (actualWindow == specialInputStyle::CharactersType::SpecialCharacters) {
        model->createData(specialInputStyle::CharactersType::Emoji);
        actualWindow = specialInputStyle::CharactersType::Emoji;
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::special_chars));
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::special_chars));
        setTitle(utils::translate("app_emoji_input_window"));
    }
}

M module-apps/apps-common/locks/widgets/PhoneLockBox.cpp => module-apps/apps-common/locks/widgets/PhoneLockBox.cpp +8 -8
@@ 19,7 19,7 @@ namespace gui
            LockWindow->setTitleBar(false, false);
            textForInputRequired = "phone_lock_unlock";
            textForInvalidInput  = "phone_lock_unlock_invalid";
            leftBottomBarState   = false;
            leftNavBarState      = false;
            break;
        case locks::PhoneLockInputTypeAction::Enable:
        case locks::PhoneLockInputTypeAction::Disable:


@@ 32,7 32,7 @@ namespace gui
            textForInvalidInput    = "phone_lock_invalid";
            textForProvideNewInput = "phone_lock_enter_new";
            textForConfirmNewInput = "phone_lock_confirm_new";
            leftBottomBarState     = false;
            leftNavBarState        = false;
            break;
        case locks::PhoneLockInputTypeAction::Set:
            LockWindow->setTitleBar(true, true);


@@ 42,7 42,7 @@ namespace gui
            textForInvalidInput    = "phone_lock_invalid_retry";
            textForProvideNewInput = "phone_lock_set";
            textForConfirmNewInput = "phone_lock_confirm";
            leftBottomBarState     = true;
            leftNavBarState        = true;
            break;
        default:
            break;


@@ 55,8 55,8 @@ namespace gui
                            LockInputWindow::TextType::Primary,
                            {{LockWindow->getToken(LockInputWindow::Token::Time), formattedTime}});
        LockWindow->setImage("error_W_G");
        LockWindow->setBottomBarWidgetsActive(false, true, false);
        LockWindow->setBottomBarText(utils::translate(style::strings::common::ok), BottomBar::Side::CENTER);
        LockWindow->setNavBarWidgetsActive(false, true, false);
        LockWindow->setNavBarText(utils::translate(style::strings::common::ok), nav_bar::Side::Center);
    }

    void PhoneLockBox::setVisibleStateError(unsigned int errorCode)


@@ 83,7 83,7 @@ namespace gui
        }

        LockWindow->setImage("unlock_icon_W_G");
        LockWindow->setBottomBarWidgetsActive(leftBottomBarState, false, true);
        LockWindow->setNavBarWidgetsActive(leftNavBarState, false, true);
    }

    void PhoneLockBox::setVisibleStateInputInvalid(InputErrorType type, unsigned int value)


@@ 104,7 104,7 @@ namespace gui
            break;
        }
        LockWindow->setImage("info_icon_W_G");
        LockWindow->setBottomBarWidgetsActive(false, true, false);
        LockWindow->setBottomBarText(utils::translate(style::strings::common::ok), BottomBar::Side::CENTER);
        LockWindow->setNavBarWidgetsActive(false, true, false);
        LockWindow->setNavBarText(utils::translate(style::strings::common::ok), nav_bar::Side::Center);
    }
} // namespace gui

M module-apps/apps-common/locks/widgets/PhoneLockBox.hpp => module-apps/apps-common/locks/widgets/PhoneLockBox.hpp +1 -1
@@ 33,6 33,6 @@ namespace gui
        std::string textForInvalidInput;
        std::string textForProvideNewInput;
        std::string textForConfirmNewInput;
        bool leftBottomBarState = false;
        bool leftNavBarState = false;
    };
} // namespace gui

M module-apps/apps-common/locks/widgets/SimLockBox.cpp => module-apps/apps-common/locks/widgets/SimLockBox.cpp +4 -4
@@ 64,7 64,7 @@ namespace gui
        }

        LockWindow->setImage("sim_card_W_G");
        LockWindow->setBottomBarWidgetsActive(false, false, true);
        LockWindow->setNavBarWidgetsActive(false, false, true);
    }

    void SimLockBox::setVisibleStateInputInvalid(InputErrorType type, unsigned int value)


@@ 87,14 87,14 @@ namespace gui
            break;
        }
        LockWindow->setImage("info_icon_W_G");
        LockWindow->setBottomBarWidgetsActive(false, true, true);
        LockWindow->setNavBarWidgetsActive(false, true, true);
    }

    void SimLockBox::setVisibleStateBlocked(const std::string &formattedTime)
    {
        LockWindow->setText("sim_puk_blocked", LockInputWindow::TextType::Primary);
        LockWindow->setImage("sim_card_W_G");
        LockWindow->setBottomBarWidgetsActive(false, false, true);
        LockWindow->setNavBarWidgetsActive(false, false, true);
    }

    void SimLockBox::setVisibleStateError(unsigned int errorCode)


@@ 103,6 103,6 @@ namespace gui
                            LockInputWindow::TextType::Primary,
                            {{LockWindow->getToken(LockInputWindow::Token::CmeCode), static_cast<int>(errorCode)}});
        LockWindow->setImage("info_icon_W_G");
        LockWindow->setBottomBarWidgetsActive(false, false, true);
        LockWindow->setNavBarWidgetsActive(false, false, true);
    }
} // namespace gui

M module-apps/apps-common/locks/windows/LockInputWindow.cpp => module-apps/apps-common/locks/windows/LockInputWindow.cpp +10 -10
@@ 22,7 22,7 @@ namespace gui
        buildInfoTexts();
        buildPinBody();
        buildIceBox();
        buildBottomBar();
        buildNavBar();

        body->resizeItems();
    }


@@ 63,12 63,12 @@ namespace gui
        secondaryText->setAlignment(gui::Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Top));
    }

    void LockInputWindow::buildBottomBar()
    void LockInputWindow::buildNavBar()
    {
        bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::skip));
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::confirm));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        setBottomBarWidgetsActive(false, false, false);
        navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::skip));
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::confirm));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        setNavBarWidgetsActive(false, false, false);
    }

    void LockInputWindow::buildIceBox()


@@ 130,11 130,11 @@ namespace gui
        infoImage->showImage(true);
    }

    void LockInputWindow::setBottomBarWidgetsActive(bool left, bool center, bool right)
    void LockInputWindow::setNavBarWidgetsActive(bool left, bool center, bool right)
    {
        bottomBar->setActive(BottomBar::Side::LEFT, left);
        bottomBar->setActive(BottomBar::Side::CENTER, center);
        bottomBar->setActive(BottomBar::Side::RIGHT, right);
        navBar->setActive(nav_bar::Side::Left, left);
        navBar->setActive(nav_bar::Side::Center, center);
        navBar->setActive(nav_bar::Side::Right, right);
    }

    void LockInputWindow::setText(const std::string &value, TextType type, text::RichTextParser::TokenMap tokens)

M module-apps/apps-common/locks/windows/LockInputWindow.hpp => module-apps/apps-common/locks/windows/LockInputWindow.hpp +2 -2
@@ 42,7 42,7 @@ namespace gui
                     text::RichTextParser::TokenMap tokens = text::RichTextParser::TokenMap{});
        void setTitleBar(bool titleVisible, bool iceVisible);
        void setImage(const UTF8 &imageName);
        void setBottomBarWidgetsActive(bool left, bool center, bool right);
        void setNavBarWidgetsActive(bool left, bool center, bool right);

        [[nodiscard]] auto getToken(Token token) const -> std::string;
        status_bar::Configuration configureStatusBar(status_bar::Configuration appConfiguration) override;


@@ 74,7 74,7 @@ namespace gui
        void buildImage();
        void buildInfoTexts();
        void buildPinBody();
        void buildBottomBar();
        void buildNavBar();
        void buildIceBox();
    };
} // namespace gui

M module-apps/apps-common/options/type/OptionWithActiveIcons.cpp => module-apps/apps-common/options/type/OptionWithActiveIcons.cpp +1 -1
@@ 63,7 63,7 @@ auto OptionWithActiveIcons::build() const -> ListItem *
        }
        else {
            item.setFocusItem(nullptr);
            app->getCurrentWindow()->bottomBarRestoreFromTemporaryMode();
            app->getCurrentWindow()->navBarRestoreFromTemporaryMode();
        }
        return true;
    };

M module-apps/apps-common/popups/AlarmPopup.cpp => module-apps/apps-common/popups/AlarmPopup.cpp +6 -6
@@ 61,8 61,8 @@ namespace gui

    void AlarmPopup::addWindowElements()
    {
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::stop));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::stop));

        addAlarmLabels();
        if (getPresenter()->isSnoozeAble()) {


@@ 163,15 163,15 @@ namespace gui
            snoozeLabel->setMaximumWidth(style::window::default_body_width);
            snoozeLabel->setMinimumHeightToFitText();

            bottomBar->setActive(BottomBar::Side::LEFT, true);
            bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::skip));
            navBar->setActive(nav_bar::Side::Left, true);
            navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::skip));
        }
    }

    void AlarmPopup::showSnoozeButton()
    {
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));

        addSnoozeLabel();


M module-apps/apps-common/popups/HomeModesWindow.cpp => module-apps/apps-common/popups/HomeModesWindow.cpp +1 -1
@@ 20,7 20,7 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setVisible(false);
        navBar->setVisible(false);
        statusBar->setVisible(false);

        modesBox = new ModesBox(this, 0, style::window::modes::top_offset);

M module-apps/apps-common/popups/PowerOffWindow.cpp => module-apps/apps-common/popups/PowerOffWindow.cpp +2 -2
@@ 29,8 29,8 @@ namespace gui
        auto msg       = std::make_unique<DialogMetadataMessage>(std::move(metadata));
        DialogYesNo::onBeforeShow(mode, msg.get());

        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::RIGHT, false);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Right, false);
    }

} /* namespace gui */

M module-apps/apps-common/popups/VolumeWindow.cpp => module-apps/apps-common/popups/VolumeWindow.cpp +1 -1
@@ 41,7 41,7 @@ namespace gui
    {
        WindowWithTimer::buildInterface();

        bottomBar->setVisible(false);
        navBar->setVisible(false);
        statusBar->setVisible(false);

        addVolumeText();

M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp +4 -4
@@ 75,7 75,7 @@ namespace gui
        if (!inputEvent.isShortRelease()) {
            return AppWindow::onInput(inputEvent);
        }
        else if (inputEvent.is(KeyCode::KEY_RF) && bottomBar->isActive(BottomBar::Side::RIGHT)) {
        else if (inputEvent.is(KeyCode::KEY_RF) && navBar->isActive(nav_bar::Side::Right)) {
            if (isInInputState()) {
                lock->clearAttempt();
            }


@@ 89,7 89,7 @@ namespace gui
            if (isInInputState()) {
                lock->popChar();
                lockBox->popChar(lock->getCharCount());
                bottomBar->setActive(BottomBar::Side::CENTER, lock->canVerify());
                navBar->setActive(nav_bar::Side::Center, lock->canVerify());
                return true;
            }
        }


@@ 109,7 109,7 @@ namespace gui
                return true;
            }
        }
        else if (inputEvent.is(KeyCode::KEY_ENTER) && bottomBar->isActive(BottomBar::Side::CENTER)) {
        else if (inputEvent.is(KeyCode::KEY_ENTER) && navBar->isActive(nav_bar::Side::Center)) {
            if (lock->isState(locks::Lock::LockState::Blocked)) {
                application->switchWindow(popup::window::phone_lock_window);
            }


@@ 120,7 120,7 @@ namespace gui
            }
            return true;
        }
        else if (inputEvent.is(KeyCode::KEY_LF) && bottomBar->isActive(BottomBar::Side::LEFT)) {
        else if (inputEvent.is(KeyCode::KEY_LF) && navBar->isActive(nav_bar::Side::Left)) {
            application->getPhoneLockSubject().skipSetPhoneLock();
            lock->consumeState();
            lock->clearAttempt();

M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp +12 -12
@@ 24,15 24,15 @@ void PhoneLockedInfoWindow::onBeforeShow([[maybe_unused]] ShowMode mode, SwitchD
                                                                               : PhoneLockedInfoData::Stage::Idle;

    if (mStage == PhoneLockedInfoData::Stage::Waiting) {
        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Right, true);
        infoIcon->text->setRichText(utils::translate("app_desktop_press_to_complete_unlock"));
    }
    else {
        bottomBar->setActive(BottomBar::Side::LEFT, true);
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        navBar->setActive(nav_bar::Side::Left, true);
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        infoIcon->text->setRichText(utils::translate("app_desktop_press_to_unlock"));
    }



@@ 54,7 54,7 @@ bool PhoneLockedInfoWindow::onInput(const InputEvent &inputEvent)
    }

    // Left key = SOS call, it should work all the time
    else if (inputEvent.isShortRelease(KeyCode::KEY_LF) && bottomBar->isActive(BottomBar::Side::LEFT)) {
    else if (inputEvent.isShortRelease(KeyCode::KEY_LF) && navBar->isActive(nav_bar::Side::Left)) {
        app::manager::Controller::sendAction(application,
                                             app::manager::actions::EmergencyDial,
                                             std::make_unique<SwitchData>(),


@@ 72,7 72,7 @@ bool PhoneLockedInfoWindow::onInput(const InputEvent &inputEvent)
    // Enter key = start unlocking if we are in STARTING stage
    else if (inputEvent.isShortRelease(KeyCode::KEY_ENTER) && mStage == PhoneLockedInfoData::Stage::Idle) {
        mStage = PhoneLockedInfoData::Stage::Waiting;
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        navBar->setActive(nav_bar::Side::Center, false);
        infoIcon->text->setRichText(utils::translate("app_desktop_press_to_complete_unlock"));
        resetTimer();
        return true;


@@ 81,7 81,7 @@ bool PhoneLockedInfoWindow::onInput(const InputEvent &inputEvent)
    // Any other key - reset timers and go to STARTING stage
    else if (inputEvent.isShortRelease() && mStage == PhoneLockedInfoData::Stage::Waiting) {
        mStage = PhoneLockedInfoData::Stage::Idle;
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        navBar->setActive(nav_bar::Side::Center, true);
        infoIcon->text->setRichText(utils::translate("app_desktop_press_to_unlock"));
        resetTimer();
        return true;


@@ 108,9 108,9 @@ void PhoneLockedInfoWindow::buildInterface()
{
    WindowWithTimer::buildInterface();

    bottomBar->setText(BottomBar::Side::LEFT, utils::translate("app_desktop_emergency"));
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate("app_desktop_unlock"));
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("common_back"));
    navBar->setText(nav_bar::Side::Left, utils::translate("app_desktop_emergency"));
    navBar->setText(nav_bar::Side::Center, utils::translate("app_desktop_unlock"));
    navBar->setText(nav_bar::Side::Right, utils::translate("common_back"));

    infoIcon = new gui::Icon(this,
                             style::window::default_left_margin,

M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp +11 -11
@@ 57,9 57,9 @@ namespace gui
        }
        else if (!notificationsModel->isPhoneTimeLock()) {
            app::manager::Controller::requestNotifications(application);
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            bottomBar->setActive(BottomBar::Side::RIGHT, false);
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setActive(nav_bar::Side::Center, false);
            navBar->setActive(nav_bar::Side::Right, false);
            return;
        }



@@ 69,14 69,14 @@ namespace gui
                refreshedOnPhoneLockTimeLock = true;
            }

            bottomBar->setText(BottomBar::Side::LEFT, utils::translate("app_desktop_emergency"));
            bottomBar->setActive(BottomBar::Side::CENTER, false);
            bottomBar->setActive(BottomBar::Side::RIGHT, false);
            navBar->setText(nav_bar::Side::Left, utils::translate("app_desktop_emergency"));
            navBar->setActive(nav_bar::Side::Center, false);
            navBar->setActive(nav_bar::Side::Right, false);
        }
        else {
            bottomBar->setActive(BottomBar::Side::LEFT, false);
            bottomBar->setText(BottomBar::Side::CENTER, utils::translate("app_desktop_unlock"));
            bottomBar->setActive(BottomBar::Side::RIGHT, false);
            navBar->setActive(nav_bar::Side::Left, false);
            navBar->setText(nav_bar::Side::Center, utils::translate("app_desktop_unlock"));
            navBar->setActive(nav_bar::Side::Right, false);
        }
    }



@@ 99,14 99,14 @@ namespace gui
        if (inputEvent.isLongRelease()) {
            return processLongReleaseEvent(inputEvent);
        }
        else if (inputEvent.isShortRelease() && bottomBar->isActive(BottomBar::Side::CENTER)) {
        else if (inputEvent.isShortRelease() && navBar->isActive(nav_bar::Side::Center)) {
            const auto requiredStage = (inputEvent.is(KeyCode::KEY_ENTER)) ? PhoneLockedInfoData::Stage::Waiting
                                                                           : PhoneLockedInfoData::Stage::Idle;
            application->switchWindow(gui::popup::window::phone_lock_info_window,
                                      std::make_unique<PhoneLockedInfoData>(requiredStage));
            return true;
        }
        else if (inputEvent.isShortRelease(KeyCode::KEY_LF) && bottomBar->isActive(BottomBar::Side::LEFT)) {
        else if (inputEvent.isShortRelease(KeyCode::KEY_LF) && navBar->isActive(nav_bar::Side::Left)) {
            app::manager::Controller::sendAction(application,
                                                 app::manager::actions::EmergencyDial,
                                                 std::make_unique<SwitchData>(),

M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp => module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp +4 -4
@@ 80,7 80,7 @@ namespace gui
        if (!inputEvent.isShortRelease()) {
            return AppWindow::onInput(inputEvent);
        }
        else if (inputEvent.is(KeyCode::KEY_RF) && bottomBar->isActive(BottomBar::Side::RIGHT)) {
        else if (inputEvent.is(KeyCode::KEY_RF) && navBar->isActive(nav_bar::Side::Right)) {
            if (isInInputState()) {
                lock->clearAttempt();
            }


@@ 94,7 94,7 @@ namespace gui
            if (isInInputState()) {
                lock->popChar();
                lockBox->popChar(lock->getCharCount());
                bottomBar->setActive(BottomBar::Side::CENTER, lock->canVerify());
                navBar->setActive(nav_bar::Side::Center, lock->canVerify());
                return true;
            }
        }


@@ 103,11 103,11 @@ namespace gui
                lockBox->putChar(lock->getCharCount());
                lock->putNextChar(inputEvent.numericValue());

                bottomBar->setActive(BottomBar::Side::CENTER, lock->canVerify());
                navBar->setActive(nav_bar::Side::Center, lock->canVerify());
                return true;
            }
        }
        else if (inputEvent.is(KeyCode::KEY_ENTER) && bottomBar->isActive(BottomBar::Side::CENTER)) {
        else if (inputEvent.is(KeyCode::KEY_ENTER) && navBar->isActive(nav_bar::Side::Center)) {
            if (isInInputState()) {
                application->getSimLockSubject().verifyInput(lock->getInput());
            }

M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp => module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp +1 -1
@@ 34,7 34,7 @@ void SimNotReadyWindow::buildInterface()

    setTitle(utils::translate("app_settings_net"));

    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate("common_back"));
    navBar->setText(nav_bar::Side::Right, utils::translate("common_back"));

    infoIcon = new gui::Icon(this,
                             style::window::default_left_margin,

M module-apps/apps-common/widgets/ActiveIconFactory.cpp => module-apps/apps-common/widgets/ActiveIconFactory.cpp +3 -4
@@ 19,16 19,15 @@ ActiveIconFactory::ActiveIconFactory(app::ApplicationCommon *app) : app{app}

auto ActiveIconFactory::makeCustomIcon(const UTF8 &image,
                                       std::function<bool(Item &)> onActivated,
                                       std::string bottomBarActivatedName) -> ImageBox *
                                       std::string navBarActivatedName) -> ImageBox *
{
    auto icon = new ImageBox(nullptr, 0, 0, style::widgets::iconsSize, style::widgets::iconsSize, new Image(image));
    icon->activeItem           = onActivated.operator bool();
    icon->activatedCallback    = std::move(onActivated);
    icon->focusChangedCallback = [icon, application = app, name = std::move(bottomBarActivatedName)](Item &item) {
    icon->focusChangedCallback = [icon, application = app, name = std::move(navBarActivatedName)](Item &item) {
        if (icon->focus) {
            icon->setEdges(RectangleEdge::Bottom | RectangleEdge::Top);
            application->getCurrentWindow()->bottomBarTemporaryMode(
                utils::translate(name), BottomBar::Side::CENTER, false);
            application->getCurrentWindow()->navBarTemporaryMode(utils::translate(name), nav_bar::Side::Center, false);
        }
        else {
            icon->setEdges(RectangleEdge::None);

M module-apps/apps-common/widgets/ActiveIconFactory.hpp => module-apps/apps-common/widgets/ActiveIconFactory.hpp +1 -1
@@ 18,7 18,7 @@ namespace gui

        [[nodiscard]] auto makeCustomIcon(const UTF8 &image,
                                          std::function<bool(Item &)> onActivated,
                                          std::string bottomBarActivatedName) -> ImageBox *;
                                          std::string navBarActivatedName) -> ImageBox *;
        [[nodiscard]] auto makeSMSIcon(const utils::PhoneNumber::View &number) -> ImageBox *;
        [[nodiscard]] auto makeCallIcon(const utils::PhoneNumber::View &number) -> ImageBox *;
        [[nodiscard]] auto makeAddContactIcon(const std::shared_ptr<ContactRecord> &contact) -> ImageBox *;

M module-apps/apps-common/widgets/SpinBox.cpp => module-apps/apps-common/widgets/SpinBox.cpp +8 -8
@@ 17,11 17,11 @@ namespace gui
                     UpdateCallback updateCallback,
                     uint8_t maxValue,
                     uint8_t startValue,
                     std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                     std::function<void()> bottomBarRestoreFromTemporaryMode)
                     std::function<void(const UTF8 &text)> navBarTemporaryMode,
                     std::function<void()> navBarRestoreFromTemporaryMode)
        : HBox(parent, style::window::default_left_margin), updateBarCallback(std::move(updateCallback)),
          bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
          navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        setMinimumSize(style::window::default_body_width, style::window::label::big_h);
        setPenWidth(style::window::default_border_no_focus_w);


@@ 39,13 39,13 @@ namespace gui
            resizeItems();

            if (item.focus) {
                if (this->bottomBarTemporaryMode) {
                    this->bottomBarTemporaryMode("");
                if (this->navBarTemporaryMode) {
                    this->navBarTemporaryMode("");
                }
            }
            else {
                if (this->bottomBarRestoreFromTemporaryMode) {
                    this->bottomBarRestoreFromTemporaryMode();
                if (this->navBarRestoreFromTemporaryMode) {
                    this->navBarRestoreFromTemporaryMode();
                }
            }
            return true;

M module-apps/apps-common/widgets/SpinBox.hpp => module-apps/apps-common/widgets/SpinBox.hpp +4 -4
@@ 19,8 19,8 @@ namespace gui
                UpdateCallback updateCallback,
                std::uint8_t maxValue,
                std::uint8_t startValue,
                std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);

      private:
        auto addArrow(Item *parent, const std::string &arrowName, Alignment::Horizontal aligment, bool visible)


@@ 33,7 33,7 @@ namespace gui
        Image *leftArrow;
        Image *rightArrow;
        UpdateCallback updateBarCallback;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;
    };
} // namespace gui

M module-apps/apps-common/widgets/TimeWidget.cpp => module-apps/apps-common/widgets/TimeWidget.cpp +6 -6
@@ 17,11 17,11 @@ namespace gui
    TimeWidget::TimeWidget(Item *parent,
                           const std::string &description,
                           Type type,
                           std::function<void(const UTF8 &text)> bottomBarTemporaryMode,
                           std::function<void()> bottomBarRestoreFromTemporaryMode)
                           std::function<void(const UTF8 &text)> navBarTemporaryMode,
                           std::function<void()> navBarRestoreFromTemporaryMode)
        : VBox(parent), mode24H{!stm::api::isTimeFormat12h()}, type{type},
          bottomBarTemporaryMode(std::move(bottomBarTemporaryMode)),
          bottomBarRestoreFromTemporaryMode(std::move(bottomBarRestoreFromTemporaryMode))
          navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode))
    {
        setMinimumSize(style::window::default_body_width, date_and_time::height);
        setEdges(RectangleEdge::None);


@@ 187,10 187,10 @@ namespace gui
        };
        mode12hInput->focusChangedCallback = [&](Item &item) {
            if (item.focus) {
                bottomBarTemporaryMode(utils::translate("common_switch"));
                navBarTemporaryMode(utils::translate("common_switch"));
            }
            else {
                bottomBarRestoreFromTemporaryMode();
                navBarRestoreFromTemporaryMode();
            }
            return true;
        };

M module-apps/apps-common/widgets/TimeWidget.hpp => module-apps/apps-common/widgets/TimeWidget.hpp +4 -4
@@ 29,8 29,8 @@ namespace gui
        TimeWidget(Item *parent,
                   const std::string &description,
                   Type type,
                   std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                   std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);
                   std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr,
                   std::function<void()> navBarRestoreFromTemporaryMode      = nullptr);
        void loadData(const std::chrono::hours &hoursFrom,
                      const std::chrono::minutes &minutesFrom,
                      const std::chrono::hours &hoursTill,


@@ 54,8 54,8 @@ namespace gui
        DateWidget *dateItem    = nullptr;

        Type type;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;

        void applyInputCallbacks();
        void prepareForTimeMode();

M module-apps/apps-common/windows/AppWindow.cpp => module-apps/apps-common/windows/AppWindow.cpp +30 -30
@@ 25,10 25,10 @@ namespace gui
    {
        erase(statusBar);
        erase(header);
        erase(bottomBar);
        erase(navBar);
        statusBar = nullptr;
        header    = nullptr;
        bottomBar = nullptr;
        navBar    = nullptr;
    }

    void AppWindow::rebuild()


@@ 51,10 51,10 @@ namespace gui
                                         style::header::width,
                                         style::header::height);

        bottomBar = new gui::BottomBar(this, 0, style::window_height - 51, style::window_width, 50);
        bottomBar->setActive(BottomBar::Side::LEFT, false);
        bottomBar->setActive(BottomBar::Side::CENTER, false);
        bottomBar->setActive(BottomBar::Side::RIGHT, false);
        navBar = new gui::nav_bar::NavBar(this, 0, style::window_height - 51, style::window_width, 50);
        navBar->setActive(nav_bar::Side::Left, false);
        navBar->setActive(nav_bar::Side::Center, false);
        navBar->setActive(nav_bar::Side::Right, false);
    }

    status_bar::Configuration AppWindow::configureStatusBar(status_bar::Configuration appConfiguration)


@@ 211,57 211,57 @@ namespace gui
        return false;
    }

    void AppWindow::bottomBarTemporaryMode(const UTF8 &text, bool emptyOthers)
    void AppWindow::navBarTemporaryMode(const UTF8 &text, bool emptyOthers)
    {
        bottomBarTemporaryMode(text, BottomBar::Side::LEFT, emptyOthers);
        navBarTemporaryMode(text, nav_bar::Side::Left, emptyOthers);
    }

    void AppWindow::bottomBarTemporaryMode(const UTF8 &text, BottomBar::Side side, bool emptyOthers)
    void AppWindow::navBarTemporaryMode(const UTF8 &text, nav_bar::Side side, bool emptyOthers)
    {
        if (bottomBar == nullptr) {
        if (navBar == nullptr) {
            return;
        }

        bottomBar->store();
        navBar->store();

        if (emptyOthers) {
            bottomBar->setText(BottomBar::Side::LEFT, "");
            bottomBar->setText(BottomBar::Side::CENTER, "");
            bottomBar->setText(BottomBar::Side::RIGHT, "");
            navBar->setText(nav_bar::Side::Left, "");
            navBar->setText(nav_bar::Side::Center, "");
            navBar->setText(nav_bar::Side::Right, "");
        }

        switch (side) {
        case BottomBar::Side::LEFT:
            bottomBar->setText(BottomBar::Side::LEFT, text);
        case nav_bar::Side::Left:
            navBar->setText(nav_bar::Side::Left, text);
            break;
        case BottomBar::Side::CENTER:
            bottomBar->setText(BottomBar::Side::CENTER, text);
        case nav_bar::Side::Center:
            navBar->setText(nav_bar::Side::Center, text);
            break;
        case BottomBar::Side::RIGHT:
            bottomBar->setText(BottomBar::Side::RIGHT, text);
        case nav_bar::Side::Right:
            navBar->setText(nav_bar::Side::Right, text);
            break;
        }
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);
    }

    void AppWindow::bottomBarRestoreFromTemporaryMode()
    void AppWindow::navBarRestoreFromTemporaryMode()
    {
        if (bottomBar == nullptr) {
        if (navBar == nullptr) {
            return;
        }

        bottomBar->restore();
        navBar->restore();
        application->refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);
    }

    void AppWindow::setBottomBarText(const UTF8 &text, BottomBar::Side side)
    void AppWindow::setNavBarText(const UTF8 &text, nav_bar::Side side)
    {
        bottomBar->setText(side, text);
        navBar->setText(side, text);
    }

    void AppWindow::clearBottomBarText(BottomBar::Side side)
    void AppWindow::clearNavBarText(nav_bar::Side side)
    {
        bottomBar->setText(side, "");
        navBar->setText(side, "");
    }

    bool AppWindow::selectSpecialCharacter()


@@ 279,12 279,12 @@ namespace gui
        return {0,
                header->offset_h(),
                this->getWidth(),
                this->getHeight() - this->header->offset_h() - bottomBar->getHeight()};
                this->getHeight() - this->header->offset_h() - navBar->getHeight()};
    }

    void AppWindow::setBottomBarActive(BottomBar::Side side, bool value)
    void AppWindow::setNavBarActive(nav_bar::Side side, bool value)
    {
        bottomBar->setActive(side, value);
        navBar->setActive(side, value);
    }

    void AppWindow::accept(GuiVisitor &visitor)

M module-apps/apps-common/windows/AppWindow.hpp => module-apps/apps-common/windows/AppWindow.hpp +11 -10
@@ 5,7 5,7 @@

#include <gui/widgets/StatusBar.hpp>
#include <gui/widgets/header/Header.hpp>
#include <gui/widgets/BottomBar.hpp>
#include <gui/widgets/NavBar.hpp>
#include <gui/widgets/Window.hpp>
#include <Service/Service.hpp>
#include <Service/Message.hpp>


@@ 43,7 43,7 @@ namespace gui
        /**
         * Information bar for the buttons on the bottom of the page.
         */
        gui::BottomBar *bottomBar = nullptr;
        gui::nav_bar::NavBar *navBar = nullptr;
        /**
         * Pointer to the application object that owns the window.
         */


@@ 106,15 106,16 @@ namespace gui
        [[nodiscard]] UTF8 getTitle();

        /// Setting bottom bar temporary text
        /// @param text - bottomBar text
        /// @param overwriteOthers - set or not other bottomBar texts to "" (default true)
        void bottomBarTemporaryMode(const UTF8 &text, bool emptyOthers = true);
        void bottomBarTemporaryMode(const UTF8 &text, BottomBar::Side side, bool emptyOthers = true);
        void bottomBarRestoreFromTemporaryMode();
        void setBottomBarText(const UTF8 &text, BottomBar::Side side);
        void clearBottomBarText(BottomBar::Side side);
        /// @param text - navBar text
        /// @param overwriteOthers - set or not other navBar texts to "" (default true)
        void navBarTemporaryMode(const UTF8 &text, bool emptyOthers = true);
        void navBarTemporaryMode(const UTF8 &text, nav_bar::Side side, bool emptyOthers = true);
        void navBarRestoreFromTemporaryMode();
        void setNavBarText(const UTF8 &text, nav_bar::Side side);
        void setNavBarActive(nav_bar::Side side, bool value);
        void clearNavBarText(nav_bar::Side side);

        bool selectSpecialCharacter();
        void setBottomBarActive(BottomBar::Side side, bool value);

        /// get BoundingBox size of Window "body" area
        /// @note it would be much better to just have "body item" instead

M module-apps/apps-common/windows/Dialog.cpp => module-apps/apps-common/windows/Dialog.cpp +7 -7
@@ 12,7 12,7 @@ using namespace gui;
Dialog::Dialog(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
{
    AppWindow::buildInterface();
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
    navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
    setTitle("");

    icon = new Icon(this,


@@ 39,8 39,8 @@ void Dialog::onBeforeShow(ShowMode mode, SwitchData *data)

DialogConfirm::DialogConfirm(app::ApplicationCommon *app, const std::string &name) : Dialog(app, name)
{
    bottomBar->setActive(BottomBar::Side::RIGHT, false);
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));
    navBar->setActive(nav_bar::Side::Right, false);
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::ok));
    setFocusItem(icon);
    icon->inputCallback = [=](Item &, const InputEvent &inputEvent) -> bool {
        if (inputEvent.isShortRelease(gui::KeyCode::KEY_RF)) {


@@ 75,7 75,7 @@ DialogYesNo::DialogYesNo(app::ApplicationCommon *app, const std::string &name) :
    no  = createYesNoOption(hBox, gui::dialog::Option::NO);
    yes = createYesNoOption(hBox, gui::dialog::Option::YES);

    bottomBar->setText(BottomBar::Side::CENTER, utils::translate("common_confirm"));
    navBar->setText(nav_bar::Side::Center, utils::translate("common_confirm"));
}

Label *DialogYesNo::createYesNoOption(Item *parent, const gui::dialog::Option &optionName)


@@ 145,8 145,8 @@ void DialogYesNoIconTxt::onBeforeShow(ShowMode mode, SwitchData *data)

DialogRetry::DialogRetry(app::ApplicationCommon *app, const std::string &name) : Dialog(app, name)
{
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::retry));
    setFocusItem(bottomBar);
    navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::retry));
    setFocusItem(navBar);
}

void DialogRetry::onBeforeShow(ShowMode mode, SwitchData *data)


@@ 154,6 154,6 @@ void DialogRetry::onBeforeShow(ShowMode mode, SwitchData *data)
    if (auto metadata = dynamic_cast<DialogMetadataMessage *>(data); metadata != nullptr) {
        Dialog::onBeforeShow(mode, metadata);
        auto foo                     = metadata->get().action;
        bottomBar->activatedCallback = [foo](Item &) -> bool { return foo(); };
        navBar->activatedCallback    = [foo](Item &) -> bool { return foo(); };
    }
}

M module-apps/apps-common/windows/OptionWindow.cpp => module-apps/apps-common/windows/OptionWindow.cpp +4 -4
@@ 30,10 30,10 @@ namespace gui
    void OptionWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::CENTER, true);
        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Center, true);
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        setTitle(windowTitle.empty() ? utils::translate("common_options_title") : windowTitle);

        optionsList = new gui::ListView(this,

M module-gui/WINDOW.md => module-gui/WINDOW.md +1 -1
@@ 18,4 18,4 @@ and activeable.
 sms list manipulations, alarm clock settings. Objects in Body are focusable and activeable. 
* `NavBar` - Bottom part of window displaying input action descriptions assigned to main keyboard keys (Left Function key, 
Enter Key, Right Function Key). In example: accepting prompt, going to previous window, selecting object. Objects in 
NavBar are not focusable and activeable. Currently, that part is named BottomBar in Code. 
\ No newline at end of file
NavBar are not focusable and activeable.
\ No newline at end of file

M module-gui/gui/dom/Item2JsonSerializingVisitor.cpp => module-gui/gui/dom/Item2JsonSerializingVisitor.cpp +3 -3
@@ 7,7 7,7 @@
#include "Label.hpp"
#include "Text.hpp"
#include "Window.hpp"
#include "BottomBar.hpp"
#include "NavBar.hpp"
#include "StatusBar.hpp"
#include "ListItem.hpp"



@@ 78,10 78,10 @@ void Item2JsonSerializingVisitor::visit(gui::Window &item)
    visit(static_cast<gui::Item &>(item));
}

void Item2JsonSerializingVisitor::visit(gui::BottomBar &item)
void Item2JsonSerializingVisitor::visit(gui::nav_bar::NavBar &item)
{
    if (itemName.empty()) {
        itemName = magic_enum::enum_name(visitor::Names::BottomBar);
        itemName = magic_enum::enum_name(visitor::Names::NavBar);
    }
    visit(static_cast<gui::Item &>(item));
}

M module-gui/gui/dom/Item2JsonSerializingVisitor.hpp => module-gui/gui/dom/Item2JsonSerializingVisitor.hpp +1 -1
@@ 28,7 28,7 @@ namespace gui
        void visit(gui::Text &item) override;
        void visit(gui::Window &item) override;
        void visit(gui::Label &item) override;
        void visit(gui::BottomBar &item) override;
        void visit(gui::nav_bar::NavBar &item) override;
        void visit(gui::status_bar::StatusBar &item) override;
        void visit(gui::ListItem &item) override;


M module-gui/gui/dom/ItemDataNames.hpp => module-gui/gui/dom/ItemDataNames.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui::visitor
        Label,
        Text,
        StatusBar,
        BottomBar,
        NavBar,
        Window,
        Children,
        ListItem

M module-gui/gui/widgets/CMakeLists.txt => module-gui/gui/widgets/CMakeLists.txt +2 -2
@@ 3,7 3,7 @@ target_sources( ${PROJECT_NAME}
    PRIVATE
        "${CMAKE_CURRENT_LIST_DIR}/Alignment.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/Arc.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/BottomBar.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/NavBar.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/CheckBox.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/Circle.cpp"
        "${CMAKE_CURRENT_LIST_DIR}/Icon.cpp"


@@ 66,7 66,7 @@ target_sources( ${PROJECT_NAME}
    PUBLIC
        "${CMAKE_CURRENT_LIST_DIR}/Alignment.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/Arc.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/BottomBar.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/NavBar.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/Circle.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/Image.hpp"
        "${CMAKE_CURRENT_LIST_DIR}/ImageBox.hpp"

M module-gui/gui/widgets/CheckBox.cpp => module-gui/gui/widgets/CheckBox.cpp +17 -17
@@ 14,11 14,11 @@ namespace gui
                       const uint32_t &y,
                       const uint32_t &w,
                       const uint32_t &h,
                       const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
                       const std::function<void()> &bottomBarRestoreFromTemporaryMode,
                       BottomBar::Side bottomBarSide)
        : HBox(parent, x, y, w, h), bottomBarTemporaryMode(bottomBarTemporaryMode),
          bottomBarRestoreFromTemporaryMode(bottomBarRestoreFromTemporaryMode), bottomBarSide(bottomBarSide)
                       const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
                       const std::function<void()> &navBarRestoreFromTemporaryMode,
                       nav_bar::Side navBarSide)
        : HBox(parent, x, y, w, h), navBarTemporaryMode(navBarTemporaryMode),
          navBarRestoreFromTemporaryMode(navBarRestoreFromTemporaryMode), navBarSide(navBarSide)

    {
        setEdges(RectangleEdge::Bottom);


@@ 35,20 35,20 @@ namespace gui
        focusChangedCallback = [&](Item &item) {
            if (focus) {
                if (isChecked()) {
                    if (bottomBarTemporaryMode) {
                        bottomBarTemporaryMode(utils::translate("common_uncheck"));
                    if (navBarTemporaryMode) {
                        navBarTemporaryMode(utils::translate("common_uncheck"));
                    }
                }
                else {
                    if (bottomBarTemporaryMode) {
                        bottomBarTemporaryMode(utils::translate("common_check"));
                    if (navBarTemporaryMode) {
                        navBarTemporaryMode(utils::translate("common_check"));
                    }
                }
            }
            else {
                setFocusItem(nullptr);
                if (bottomBarRestoreFromTemporaryMode) {
                    bottomBarRestoreFromTemporaryMode();
                if (navBarRestoreFromTemporaryMode) {
                    navBarRestoreFromTemporaryMode();
                }
            }
            return true;


@@ 58,17 58,17 @@ namespace gui
            if (!event.isShortRelease()) {
                return false;
            }
            if ((bottomBarSide == BottomBar::Side::LEFT && event.is(gui::KeyCode::KEY_LF)) ||
                (bottomBarSide == BottomBar::Side::CENTER && event.is(gui::KeyCode::KEY_ENTER))) {
            if ((navBarSide == nav_bar::Side::Left && event.is(gui::KeyCode::KEY_LF)) ||
                (navBarSide == nav_bar::Side::Center && event.is(gui::KeyCode::KEY_ENTER))) {
                setCheck(!isChecked());
                if (isChecked()) {
                    if (bottomBarTemporaryMode) {
                        bottomBarTemporaryMode(utils::translate("common_uncheck"));
                    if (navBarTemporaryMode) {
                        navBarTemporaryMode(utils::translate("common_uncheck"));
                    }
                }
                else {
                    if (bottomBarTemporaryMode) {
                        bottomBarTemporaryMode(utils::translate("common_check"));
                    if (navBarTemporaryMode) {
                        navBarTemporaryMode(utils::translate("common_check"));
                    }
                }
                return true;

M module-gui/gui/widgets/CheckBox.hpp => module-gui/gui/widgets/CheckBox.hpp +7 -7
@@ 5,7 5,7 @@

#include "BoxLayout.hpp"
#include "Image.hpp"
#include "BottomBar.hpp"
#include "NavBar.hpp"

namespace gui
{


@@ 13,9 13,9 @@ namespace gui
    {
        bool checkState                                              = false;
        Image *image                                                 = nullptr;
        std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr;
        std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr;
        BottomBar::Side bottomBarSide                                = BottomBar::Side::LEFT;
        std::function<void(const UTF8 &text)> navBarTemporaryMode    = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode         = nullptr;
        nav_bar::Side navBarSide                                     = nav_bar::Side::Left;

        void applyCallbacks();



@@ 25,9 25,9 @@ namespace gui
                 const uint32_t &y,
                 const uint32_t &w,
                 const uint32_t &h,
                 const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode = nullptr,
                 const std::function<void()> &bottomBarRestoreFromTemporaryMode      = nullptr,
                 BottomBar::Side bottomBarSide                                       = BottomBar::Side::LEFT);
                 const std::function<void(const UTF8 &text)> &navBarTemporaryMode = nullptr,
                 const std::function<void()> &navBarRestoreFromTemporaryMode      = nullptr,
                 nav_bar::Side navBarSide                                         = nav_bar::Side::Left);

        void setCheck(bool state);
        bool isChecked();

M module-gui/gui/widgets/CheckBoxWithLabel.cpp => module-gui/gui/widgets/CheckBoxWithLabel.cpp +4 -5
@@ 11,15 11,14 @@ namespace gui
                                         uint32_t w,
                                         uint32_t h,
                                         const UTF8 &description,
                                         const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode,
                                         const std::function<void()> &bottomBarRestoreFromTemporaryMode,
                                         gui::BottomBar::Side textSide)
                                         const std::function<void(const UTF8 &text)> &navBarTemporaryMode,
                                         const std::function<void()> &navBarRestoreFromTemporaryMode,
                                         gui::nav_bar::Side textSide)
        : HBox{parent, x, y, w, h}
    {
        setEdges(gui::RectangleEdge::None);

        check =
            new gui::CheckBox(this, 0, 0, 0, 0, bottomBarTemporaryMode, bottomBarRestoreFromTemporaryMode, textSide);
        check = new gui::CheckBox(this, 0, 0, 0, 0, navBarTemporaryMode, navBarRestoreFromTemporaryMode, textSide);
        check->setAlignment(gui::Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Center));
        check->setMinimumSize(60, style::window::label::big_h);
        setChecked(true);

M module-gui/gui/widgets/CheckBoxWithLabel.hpp => module-gui/gui/widgets/CheckBoxWithLabel.hpp +4 -4
@@ 5,7 5,7 @@

#include "CheckBox.hpp"
#include "Label.hpp"
#include "BottomBar.hpp"
#include "NavBar.hpp"

namespace gui
{


@@ 22,9 22,9 @@ namespace gui
                          uint32_t w,
                          uint32_t h,
                          const UTF8 &description,
                          const std::function<void(const UTF8 &text)> &bottomBarTemporaryMode = nullptr,
                          const std::function<void()> &bottomBarRestoreFromTemporaryMode      = nullptr,
                          BottomBar::Side bottomBarSide                                       = BottomBar::Side::LEFT);
                          const std::function<void(const UTF8 &text)> &navBarTemporaryMode = nullptr,
                          const std::function<void()> &navBarRestoreFromTemporaryMode      = nullptr,
                          nav_bar::Side navBarSide                                         = nav_bar::Side::Left);

        void setChecked(bool state);
        auto isChecked() const -> bool;

R module-gui/gui/widgets/BottomBar.cpp => module-gui/gui/widgets/NavBar.cpp +44 -51
@@ 1,29 1,22 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

/*
 * BottomBar.cpp
 *
 *  Created on: 13 mar 2019
 *      Author: robert
 */
#include "BottomBar.hpp"
#include "NavBar.hpp"
#include "Label.hpp"
#include "Margins.hpp"
#include "utf8/UTF8.hpp"
#include <Style.hpp>
#include <log/log.hpp>

namespace gui
namespace gui::nav_bar
{

    BottomBar::BottomBar()
    NavBar::NavBar()
    {

        Padding margins{style::window::bottomBar::leftMargin, 0, style::window::bottomBar::rightMargin, 0};
        left   = prepareLabel(Side::LEFT);
        center = prepareLabel(Side::CENTER);
        right  = prepareLabel(Side::RIGHT);
        Padding margins{style::window::navBar::leftMargin, 0, style::window::navBar::rightMargin, 0};
        left   = prepareLabel(Side::Left);
        center = prepareLabel(Side::Center);
        right  = prepareLabel(Side::Right);

        left->setPadding(margins);
        center->setPadding(margins);


@@ 36,15 29,15 @@ namespace gui
        setFillColor(ColorFullWhite);
        setBorderColor(ColorNoColor);
        setFilled(true);
        setSize(style::window::bottomBar::w, style::window::bottomBar::h);
        setSize(style::window::navBar::w, style::window::navBar::h);
    }
    BottomBar::BottomBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h) : Rect{parent, x, y, w, h}
    NavBar::NavBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h) : Rect{parent, x, y, w, h}
    {

        Padding margins{style::window::bottomBar::leftMargin, 0, style::window::bottomBar::rightMargin, 0};
        left   = prepareLabel(Side::LEFT);
        center = prepareLabel(Side::CENTER);
        right  = prepareLabel(Side::RIGHT);
        Padding margins{style::window::navBar::leftMargin, 0, style::window::navBar::rightMargin, 0};
        left   = prepareLabel(Side::Left);
        center = prepareLabel(Side::Center);
        right  = prepareLabel(Side::Right);

        left->setPadding(margins);
        center->setPadding(margins);


@@ 57,26 50,26 @@ namespace gui
        setFillColor(ColorFullWhite);
        setBorderColor(ColorNoColor);
        setFilled(true);
        setSize(style::window::bottomBar::w, style::window::bottomBar::h);
        setSize(style::window::navBar::w, style::window::navBar::h);
        updateDrawArea();
    }
    BottomBar::~BottomBar()
    NavBar::~NavBar()
    {}

    gui::Label *BottomBar::prepareLabel(BottomBar::Side side)
    gui::Label *NavBar::prepareLabel(nav_bar::Side side)
    {
        Label *label = new Label(this, 0, 0, 0, 0);
        label->setBorderColor(Color{15, 15});
        switch (side) {
        case Side::LEFT:
        case Side::Left:
            label->setAlignment(gui::Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center));
            label->setFont(style::footer::font::medium);
            break;
        case Side::CENTER:
        case Side::Center:
            label->setAlignment(gui::Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Center));
            label->setFont(style::footer::font::bold);
            break;
        case Side::RIGHT:
        case Side::Right:
            label->setAlignment(gui::Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
            label->setFont(style::footer::font::medium);
            break;


@@ 87,41 80,41 @@ namespace gui
        return label;
    }

    Label *BottomBar::getSide(BottomBar::Side side)
    Label *NavBar::getSide(nav_bar::Side side)
    {
        switch (side) {
        case Side::LEFT:
        case Side::Left:
            return left;
        case Side::CENTER:
        case Side::Center:
            return center;
        case Side::RIGHT:
        case Side::Right:
            return right;
        };
        return nullptr;
    }

    void BottomBar::setActive(BottomBar::Side side, bool active)
    void NavBar::setActive(nav_bar::Side side, bool active)
    {
        getSide(side)->setVisible(active);
    }

    bool BottomBar::isActive(BottomBar::Side side)
    bool NavBar::isActive(nav_bar::Side side)
    {
        return getSide(side)->visible;
    }

    void BottomBar::setText(BottomBar::Side side, const UTF8 &str, bool active)
    void NavBar::setText(nav_bar::Side side, const UTF8 &str, bool active)
    {
        getSide(side)->setText(str);
        setActive(side, active);
    }

    UTF8 BottomBar::getText(BottomBar::Side side)
    UTF8 NavBar::getText(nav_bar::Side side)
    {
        return getSide(side)->getText();
    }

    bool BottomBar::onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim)
    bool NavBar::onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim)
    {
        Rect::onDimensionChanged(oldDim, newDim);
        left->setSize(newDim.w, newDim.h);


@@ 130,14 123,14 @@ namespace gui
        return true;
    }

    void BottomBar::store()
    void NavBar::store()
    {
        store(Side::LEFT);
        store(Side::CENTER);
        store(Side::RIGHT);
        store(Side::Left);
        store(Side::Center);
        store(Side::Right);
    }

    void BottomBar::store(Side side)
    void NavBar::store(Side side)
    {
        auto &el = cache.get(side);
        if (!el.stored) {


@@ 147,14 140,14 @@ namespace gui
        }
    }

    void BottomBar::restore()
    void NavBar::restore()
    {
        restore(Side::LEFT);
        restore(Side::CENTER);
        restore(Side::RIGHT);
        restore(Side::Left);
        restore(Side::Center);
        restore(Side::Right);
    }

    void BottomBar::restore(BottomBar::Side side)
    void NavBar::restore(nav_bar::Side side)
    {
        auto &el = cache.get(side);
        if (el.stored) {


@@ 163,24 156,24 @@ namespace gui
        }
    }

    void BottomBar::setFont(Side side, const UTF8 &fontName)
    void NavBar::setFont(Side side, const UTF8 &fontName)
    {
        switch (side) {
        case Side::LEFT:
        case Side::Left:
            left->setFont(fontName);
            break;
        case Side::CENTER:
        case Side::Center:
            center->setFont(fontName);
            break;
        case Side::RIGHT:
        case Side::Right:
            right->setFont(fontName);
            break;
        }
    }

    void BottomBar::accept(GuiVisitor &visitor)
    void NavBar::accept(GuiVisitor &visitor)
    {
        visitor.visit(*this);
    }

} /* namespace gui */
} // namespace gui::nav_bar

R module-gui/gui/widgets/BottomBar.hpp => module-gui/gui/widgets/NavBar.hpp +26 -37
@@ 1,22 1,20 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

/*
 * BottomBar.hpp
 *
 *  Created on: 13 mar 2019
 *      Author: robert
 */
#pragma once

#ifndef MIDDLEWARES_GUI_WIDGETS_BOTTOMBAR_HPP_
#define MIDDLEWARES_GUI_WIDGETS_BOTTOMBAR_HPP_
#include <ThreeBox.hpp>
#include <Label.hpp>
#include <utf8/UTF8.hpp>

#include "Rect.hpp"
#include "Label.hpp"
#include "utf8/UTF8.hpp"

namespace gui
namespace gui::nav_bar
{
    enum class Side
    {
        Left,
        Center,
        Right
    };

    /// Footer for most design windows
    ///


@@ 25,16 23,8 @@ namespace gui
    /// left is left action key, center describes center (enter) key, and right right action key
    /// depending on screen selected elements will be visible
    /// @note when in Text widget it will show input mode if enabled in [ left ] area
    class BottomBar : public Rect
    class NavBar : public Rect
    {
      public:
        enum class Side
        {
            LEFT = 0x01,
            CENTER,
            RIGHT
        };

      protected:
        struct Cache
        {


@@ 50,11 40,11 @@ namespace gui
            auto get(Side side) -> auto &
            {
                switch (side) {
                case Side::LEFT:
                case Side::Left:
                    return left;
                case Side::RIGHT:
                case Side::Right:
                    return right;
                case Side::CENTER:
                case Side::Center:
                    return center;
                }
                return left;


@@ 64,17 54,18 @@ namespace gui
        Label *left   = nullptr;
        Label *center = nullptr;
        Label *right  = nullptr;
        gui::Label *prepareLabel(BottomBar::Side side);
        Label *getSide(BottomBar::Side side);
        gui::Label *prepareLabel(nav_bar::Side side);
        Label *getSide(nav_bar::Side side);

      public:
        BottomBar();
        BottomBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        virtual ~BottomBar();
        NavBar();
        NavBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        virtual ~NavBar();

        void setActive(BottomBar::Side side, bool active);
        bool isActive(BottomBar::Side side);
        void setText(BottomBar::Side side, const UTF8 &str, bool active = true);
        UTF8 getText(BottomBar::Side side);
        void setActive(nav_bar::Side side, bool active);
        bool isActive(nav_bar::Side side);
        void setText(nav_bar::Side side, const UTF8 &str, bool active = true);
        UTF8 getText(nav_bar::Side side);

        void store();
        void store(Side side);


@@ 87,6 78,4 @@ namespace gui
        void accept(GuiVisitor &visitor) override;
    };

} /* namespace gui */

#endif /* MIDDLEWARES_GUI_WIDGETS_BOTTOMBAR_HPP_ */
} // namespace gui::nav_bar

M module-gui/gui/widgets/Style.hpp => module-gui/gui/widgets/Style.hpp +2 -2
@@ 103,14 103,14 @@ namespace style
        /// minimal label decoration for Option
        void decorateOption(gui::Label *el);

        namespace bottomBar
        namespace navBar
        {
            inline constexpr auto leftMargin  = 30U;
            inline constexpr auto rightMargin = 30U;

            inline constexpr auto h = 54U;
            inline constexpr auto w = window_width;
        } // namespace bottomBar
        } // namespace navBar

        namespace progressBar
        {

M module-gui/gui/widgets/Window.hpp => module-gui/gui/widgets/Window.hpp +4 -2
@@ 14,8 14,10 @@ namespace gui
    ///
    /// It consists of:
    /// 1. StatusBar
    /// 2. BottomBar
    /// 3. Body defined per window between StatusBar and BottomBar
    /// 2. Header
    /// 3. Body
    /// 4. NavBar
    /// More in WINDOW.md
    ///
    /// All window switches are done based on Window::name and SwitchData
    /// All windows are statically build at start of application, and removed on application end

M module-gui/gui/widgets/visitor/GuiVisitor.hpp => module-gui/gui/widgets/visitor/GuiVisitor.hpp +6 -2
@@ 10,7 10,6 @@ namespace gui
    class Text;
    class Window;
    class Label;
    class BottomBar;
    class ListItem;

    namespace status_bar


@@ 18,6 17,11 @@ namespace gui
        class StatusBar;
    }

    namespace nav_bar
    {
        class NavBar;
    }

    /// The general purpose abstract interface for enabling Double-Dispatch behavior throughout `gui::Item`'s
    /// inheritance hierarchy.
    class GuiVisitor


@@ 28,7 32,7 @@ namespace gui
        virtual void visit(gui::Text &item)                  = 0;
        virtual void visit(gui::Window &item)                = 0;
        virtual void visit(gui::Label &item)                 = 0;
        virtual void visit(gui::BottomBar &item)             = 0;
        virtual void visit(gui::nav_bar::NavBar &item)       = 0;
        virtual void visit(gui::status_bar::StatusBar &item) = 0;
        virtual void visit(gui::ListItem &item)              = 0;
        virtual ~GuiVisitor()                                = default;

M module-gui/test/test-google/test-gui-visitor-call.cpp => module-gui/test/test-google/test-gui-visitor-call.cpp +2 -2
@@ 10,7 10,7 @@
#include "Rect.hpp"
#include "Label.hpp"
#include "Window.hpp"
#include "BottomBar.hpp"
#include "NavBar.hpp"
#include "StatusBar.hpp"
#include "ListItem.hpp"



@@ 25,7 25,7 @@ class VisitorMock : public gui::GuiVisitor
    MOCK_METHOD1(visit, void(gui::Text &item));
    MOCK_METHOD1(visit, void(gui::Window &item));
    MOCK_METHOD1(visit, void(gui::Label &item));
    MOCK_METHOD1(visit, void(gui::BottomBar &item));
    MOCK_METHOD1(visit, void(gui::nav_bar::NavBar &item));
    MOCK_METHOD1(visit, void(gui::status_bar::StatusBar &item));
    MOCK_METHOD1(visit, void(gui::ListItem &item));
};

M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmSetWindow.cpp => products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmSetWindow.cpp +1 -1
@@ 30,7 30,7 @@ namespace gui
    {
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon = new Icon(this, 0, 0, style::window_width, style::window_height, {}, {});
        icon->text->setFont(style::window::font::verybiglight);

M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp => products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp +1 -1
@@ 33,7 33,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(true);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height);


M products/BellHybrid/apps/application-bell-background-sounds/windows/BGSoundsVolumeWindow.cpp => products/BellHybrid/apps/application-bell-background-sounds/windows/BGSoundsVolumeWindow.cpp +1 -1
@@ 23,7 23,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height, true);


M products/BellHybrid/apps/application-bell-bedtime/windows/BellBedtimeWindow.cpp => products/BellHybrid/apps/application-bell-bedtime/windows/BellBedtimeWindow.cpp +1 -1
@@ 35,7 35,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(true);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        listView = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-main/windows/BellBatteryShutdownWindow.cpp => products/BellHybrid/apps/application-bell-main/windows/BellBatteryShutdownWindow.cpp +1 -1
@@ 20,7 20,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        auto icon =
            new Icon(this, 0, 0, style::window_width, style::window_height, "bell_battery_status_empty_W_M", {});

M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp => products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp +1 -1
@@ 87,7 87,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height, false);


M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp => products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp +2 -2
@@ 21,8 21,8 @@ namespace gui
    {
        AppWindow::buildInterface();

        bottomBar->setActive(BottomBar::Side::RIGHT, true);
        bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setActive(nav_bar::Side::Right, true);
        navBar->setText(gui::nav_bar::Side::Right, utils::translate(style::strings::common::back));

        auto vBox = new gui::VBox(this,
                                  style::window::default_left_margin,

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp +1 -1
@@ 29,7 29,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        sidelistview = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp +1 -1
@@ 24,6 24,6 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);
    }
} /* namespace gui */

M products/BellHybrid/apps/application-bell-settings/windows/advanced/AboutYourBellWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/AboutYourBellWindow.cpp +1 -1
@@ 24,7 24,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        list = new ListView(this,
                            style::window::default_left_margin,

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsFrontlightWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsFrontlightWindow.cpp +1 -1
@@ 31,7 31,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        listView = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsLanguageWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsLanguageWindow.cpp +1 -1
@@ 22,7 22,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height, true);


M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp +1 -1
@@ 39,7 39,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        presenter->createData();


M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp +1 -1
@@ 28,7 28,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        listView = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp +1 -1
@@ 33,7 33,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        sidelistview = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsPrewakeUpWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsPrewakeUpWindow.cpp +1 -1
@@ 32,7 32,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        sidelistview = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/application-bell-settings/windows/bedtime_settings/BellSettingsBedtimeToneSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/bedtime_settings/BellSettingsBedtimeToneSettingsWindow.cpp +1 -1
@@ 32,7 32,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        sidelistview = new SideListView(
            this, 0U, 0U, this->getWidth(), this->getHeight(), presenter->getPagesProvider(), PageBarType::None);

M products/BellHybrid/apps/common/src/options/BellOptionWindow.cpp => products/BellHybrid/apps/common/src/options/BellOptionWindow.cpp +1 -1
@@ 27,7 27,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        optionsList = new gui::ListViewWithArrows(this, 0, 0, style::window_width, style::window_height, optionsModel);
        optionsList->applySizeRestrictions(style::bell_options_list::w,

M products/BellHybrid/apps/common/src/options/BellShortOptionWindow.cpp => products/BellHybrid/apps/common/src/options/BellShortOptionWindow.cpp +1 -1
@@ 27,7 27,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height, false);


M products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp => products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp +1 -1
@@ 45,7 45,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon = new Icon(this, 0, y_position, style::window_width, style::window_height, "big_alarm_W_G", {});
        icon->text->setFont(style::window::font::verybiglight);

M products/BellHybrid/apps/common/src/popups/AlarmDeactivatedWindow.cpp => products/BellHybrid/apps/common/src/popups/AlarmDeactivatedWindow.cpp +1 -1
@@ 47,7 47,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon = new Icon(this,
                        0,

M products/BellHybrid/apps/common/src/popups/BedtimeNotificationWindow.cpp => products/BellHybrid/apps/common/src/popups/BedtimeNotificationWindow.cpp +2 -2
@@ 26,7 26,7 @@ namespace gui
    void BedtimeNotificationWindow::buildInterface()
    {
        AppWindow::buildInterface();
        bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));
        navBar->setText(nav_bar::Side::Right, utils::translate(style::strings::common::back));
        setTitle("");

        icon = new Icon(this,


@@ 48,7 48,7 @@ namespace gui
        icon->resizeItems();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setActive(BottomBar::Side::RIGHT, false);
        navBar->setActive(nav_bar::Side::Right, false);
    }

    void BedtimeNotificationWindow::returnToPreviousWindow()

M products/BellHybrid/apps/common/src/popups/BellRebootWindow.cpp => products/BellHybrid/apps/common/src/popups/BellRebootWindow.cpp +1 -1
@@ 28,7 28,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon = new Icon(this,
                        0,

M products/BellHybrid/apps/common/src/windows/BellFactoryReset.cpp => products/BellHybrid/apps/common/src/windows/BellFactoryReset.cpp +1 -1
@@ 27,7 27,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        if (icon == nullptr) {
            icon = new Icon(this, 0, 0, style::window_width, style::window_height, "circle_success_big", {});

M products/BellHybrid/apps/common/src/windows/BellFinishedCallbackWindow.cpp => products/BellHybrid/apps/common/src/windows/BellFinishedCallbackWindow.cpp +1 -1
@@ 29,7 29,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon = new Icon(this, 0, 0, style::window_width, style::window_height, {}, {});
        icon->setAlignment(Alignment(Alignment::Horizontal::Center, Alignment::Vertical::Center));

M products/BellHybrid/apps/common/src/windows/BellFinishedWindow.cpp => products/BellHybrid/apps/common/src/windows/BellFinishedWindow.cpp +1 -1
@@ 26,7 26,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);
        if (icon == nullptr) {
            icon = new Icon(this, 0, 0, style::window_width, style::window_height, {}, {});
            icon->setAlignment(Alignment(Alignment::Horizontal::Center, Alignment::Vertical::Center));

M products/BellHybrid/apps/common/src/windows/BellTurnOffWindow.cpp => products/BellHybrid/apps/common/src/windows/BellTurnOffWindow.cpp +1 -1
@@ 29,7 29,7 @@ namespace gui

        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        icon =
            new Icon(this, 0, 0, style::window_width, style::window_height, {}, utils::translate("app_bell_goodbye"));

M products/BellHybrid/apps/common/src/windows/BellWelcomeWindow.cpp => products/BellHybrid/apps/common/src/windows/BellWelcomeWindow.cpp +1 -1
@@ 22,7 22,7 @@ namespace gui
        AppWindow::buildInterface();
        statusBar->setVisible(false);
        header->setTitleVisibility(false);
        bottomBar->setVisible(false);
        navBar->setVisible(false);

        body = new BellBaseLayout(this, 0, 0, style::window_width, style::window_height, false);