~aleteoryx/muditaos

178c28b7bbfe89527339768dad9a2168f93731b7 — Lefucjusz 3 years ago 42ca53a
[MOS-666] Fix disappearing setting bars in German

Fix of the issue that with German language
selected manual volume setting bar and
vibration volume setting bar would
disappear when focused.
M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +1 -0
@@ 417,6 417,7 @@
  "app_settings_vibration": "Vibration",
  "app_settings_sound": "Ton",
  "app_settings_volume": "Lautstärke",
  "app_settings_volume_focused": "Lautst.",
  "app_settings_call_ringtome": "Rufton",
  "app_settings_message_sound": "Nachrichtenton",
  "app_settings_notification_sound": "Benachrichtigungston",

M image/assets/lang/English.json => image/assets/lang/English.json +1 -0
@@ 374,6 374,7 @@
  "app_settings_vibration": "Vibration",
  "app_settings_sound": "Sound",
  "app_settings_volume": "Volume",
  "app_settings_volume_focused": "Volume",
  "app_settings_call_ringtome": "Call ringtone",
  "app_settings_message_sound": "Message sound",
  "app_settings_notification_sound": "Notification sound",

M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +1 -0
@@ 417,6 417,7 @@
  "app_settings_vibration": "Vibración",
  "app_settings_sound": "Sonido",
  "app_settings_volume": "Volumen",
  "app_settings_volume_focused": "Volumen",
  "app_settings_call_ringtome": "Tono de llamada",
  "app_settings_message_sound": "Sonido de mensajes",
  "app_settings_notification_sound": "Sonido de notificaciones",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +1 -0
@@ 384,6 384,7 @@
  "app_settings_vibration": "Vibration",
  "app_settings_sound": "Son",
  "app_settings_volume": "Volume",
  "app_settings_volume_focused": "Volume",
  "app_settings_apps_alarm_clock_manual_volume": "Volume sonore manuel",
  "app_settings_call_ringtome": "Sonnerie d'appel",
  "app_settings_message_sound": "Son de messages",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +1 -0
@@ 428,6 428,7 @@
  "app_settings_vibration": "Wibracje",
  "app_settings_sound": "Dźwięk",
  "app_settings_volume": "Głośność",
  "app_settings_volume_focused": "Głośność",
  "app_settings_call_ringtome": "Dźwięk dzwonka",
  "app_settings_message_sound": "Dźwięk wiadomości",
  "app_settings_notification_sound": "Dźwięk powiadomienia",

M module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp => module-apps/application-settings/widgets/SpinBoxOptionSettings.cpp +13 -6
@@ 1,4 1,4 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "SpinBoxOptionSettings.hpp"


@@ 7,22 7,29 @@

namespace gui
{
    SpinBoxOptionSettings::SpinBoxOptionSettings(UTF8 text,
    SpinBoxOptionSettings::SpinBoxOptionSettings(const UTF8 &text,
                                                 const UTF8 &textFocused,
                                                 std::uint8_t value,
                                                 std::uint8_t maxValue,
                                                 std::function<bool(uint8_t)> updateCallback,
                                                 std::function<bool(std::uint8_t)> updateCallback,
                                                 std::function<void(const UTF8 &text)> navBarTemporaryMode,
                                                 std::function<void()> navBarRestoreFromTemporaryMode,
                                                 bool indent)
        : updateCallback(std::move(updateCallback)), navBarTemporaryMode(std::move(navBarTemporaryMode)),
          navBarRestoreFromTemporaryMode(std::move(navBarRestoreFromTemporaryMode)), maxValue(maxValue), value(value),
          text(text), indent(indent)
          text(text), textFocused(textFocused), indent(indent)
    {}

    auto SpinBoxOptionSettings::build() const -> ListItem *
    {
        auto spinBox = new SpinBox(
            nullptr, text, updateCallback, maxValue, value, navBarTemporaryMode, navBarRestoreFromTemporaryMode);
        auto spinBox = new SpinBox(nullptr,
                                   text,
                                   textFocused,
                                   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 +7 -5
@@ 1,4 1,4 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 10,10 10,11 @@ namespace gui
    class SpinBoxOptionSettings : public option::Base
    {
      public:
        SpinBoxOptionSettings(UTF8 text,
                              uint8_t value,
                              uint8_t maxValue,
                              std::function<bool(uint8_t)> updateCallback,
        SpinBoxOptionSettings(const UTF8 &text,
                              const UTF8 &textFocused,
                              std::uint8_t value,
                              std::uint8_t maxValue,
                              std::function<bool(std::uint8_t)> updateCallback,
                              std::function<void(const UTF8 &text)> navBarTemporaryMode,
                              std::function<void()> navBarRestoreFromTemporaryMode,
                              bool indent = false);


@@ 27,6 28,7 @@ namespace gui
        std::uint8_t maxValue;
        std::uint8_t value;
        UTF8 text;
        UTF8 textFocused;
        bool indent = false;
    };
} // namespace gui

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

#include "AlarmClockWindow.hpp"


@@ 31,10 31,12 @@ namespace gui
                                     [&]() { switchManualVolumeState(); });

        if (mManualVolumeEnabled) {
            constexpr auto maxVolumeLevel = 10;
            optionList.emplace_back(std::make_unique<gui::SpinBoxOptionSettings>(
                utils::translate("app_settings_volume"),
                utils::translate("app_settings_volume_focused"),
                mAudioModel->getVolume(),
                std::ceil(10.0),
                maxVolumeLevel,
                [&](uint8_t value) {
                    setVolume(value);
                    return true;

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

#include "PhoneWindow.hpp"


@@ 28,10 28,12 @@ namespace gui

#if DEVELOPER_SETTINGS_OPTIONS == 1
        if (mVibrationsEnabled) {
            constexpr auto maxVibrationLevel = 10;
            optionList.emplace_back(std::make_unique<gui::SpinBoxOptionSettings>(
                utils::translate("app_settings_volume"),
                utils::translate("app_settings_volume_focused"),
                mAudioModel->getVibrationLevel(),
                10,
                maxVibrationLevel,
                [&](uint8_t value) {
                    mAudioModel->setVibrationLevel(value);
                    return true;

M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp +1 -0
@@ 119,6 119,7 @@ namespace gui

        auto spinner = std::make_unique<gui::SpinBoxOptionSettings>(
            utils::translate("app_settings_display_light_brightness"),
            utils::translate("app_settings_display_light_brightness"),
            std::ceil(brightnessValue / brightnessStep),
            std::ceil(screen_light_control::ManualModeParameters::MAX_BRIGHTNESS / brightnessStep),
            setBrightness,

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

#include "SpinBox.hpp"


@@ 14,9 14,10 @@ namespace gui
{
    SpinBox::SpinBox(Item *parent,
                     const std::string &title,
                     const std::string &titleFocused,
                     UpdateCallback updateCallback,
                     uint8_t maxValue,
                     uint8_t startValue,
                     std::uint8_t maxValue,
                     std::uint8_t startValue,
                     std::function<void(const UTF8 &text)> navBarTemporaryMode,
                     std::function<void()> navBarRestoreFromTemporaryMode)
        : HBox(parent, style::window::default_left_margin), updateBarCallback(std::move(updateCallback)),


@@ 33,25 34,31 @@ namespace gui
        rightArrow = addArrow(this, "arrow_right_20px_W_M", Alignment::Horizontal::Right, false);
        bar        = addBarGraph(this, maxValue, startValue);

        focusChangedCallback = [this](Item &item) {
            leftArrow->setVisible(item.focus);
            rightArrow->setVisible(item.focus);
            resizeItems();

        focusChangedCallback = [=](Item &item) {
            if (item.focus) {
                titleLabel->setMinimumWidthToFitText(titleFocused);
                titleLabel->setText(titleFocused);
                leftArrow->setVisible(true);
                rightArrow->setVisible(true);
                if (this->navBarTemporaryMode) {
                    this->navBarTemporaryMode("");
                }
            }
            else {
                leftArrow->setVisible(false);
                rightArrow->setVisible(false);
                titleLabel->setMinimumWidthToFitText(title);
                titleLabel->setText(title);
                if (this->navBarRestoreFromTemporaryMode) {
                    this->navBarRestoreFromTemporaryMode();
                }
            }

            resizeItems();
            return true;
        };

        inputCallback = [this](gui::Item &item, const gui::InputEvent &event) {
        inputCallback = [this]([[maybe_unused]] gui::Item &item, const gui::InputEvent &event) {
            auto ret = false;
            if (!event.isShortRelease()) {
                return false;


@@ 101,7 108,7 @@ namespace gui
        return title;
    }

    HBarGraph *SpinBox::addBarGraph(Item *parent, uint8_t maxValue, uint8_t startValue)
    HBarGraph *SpinBox::addBarGraph(Item *parent, std::uint8_t maxValue, std::uint8_t startValue)
    {
        auto barGraph = new HBarGraph(parent, 0, 0, maxValue);
        barGraph->setMaximumWidth(style::window::default_body_width);

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

#pragma once


@@ 12,10 12,11 @@ namespace gui
    class SpinBox : public HBox
    {
      public:
        using UpdateCallback = std::function<bool(uint8_t)>;
        using UpdateCallback = std::function<bool(std::uint8_t)>;

        SpinBox(Item *parent,
                const std::string &title,
                const std::string &titleFocused,
                UpdateCallback updateCallback,
                std::uint8_t maxValue,
                std::uint8_t startValue,


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

        HBarGraph *bar;
        Text *titleLabel;
        Image *leftArrow;
        Image *rightArrow;
        HBarGraph *bar    = nullptr;
        Text *titleLabel  = nullptr;
        Image *leftArrow  = nullptr;
        Image *rightArrow = nullptr;
        UpdateCallback updateBarCallback;
        std::function<void(const UTF8 &text)> navBarTemporaryMode = nullptr;
        std::function<void()> navBarRestoreFromTemporaryMode      = nullptr;

M pure_changelog.md => pure_changelog.md +1 -0
@@ 8,6 8,7 @@
* Separated system volume from Bluetooth device volume for A2DP

### Fixed
* Fixed disappearing manual alarm and vibration volume setting in German
* Fixed the accessibility of user files by MTP
* Fixed SIM card pop-ups not showing
* Fixed lost bytes in logs