~aleteoryx/muditaos

1f157e411df916e18c974c2176e3ff7c5e54e7a0 — Bartosz 2 years ago cecfb8a
[MOS-59] Fix weird behaviour of indicators on popups

Fixed phone mode indicators on popups
2 files changed, 14 insertions(+), 7 deletions(-)

M module-apps/apps-common/ApplicationCommon.cpp
M module-gui/gui/widgets/StatusBar.cpp
M module-apps/apps-common/ApplicationCommon.cpp => module-apps/apps-common/ApplicationCommon.cpp +2 -1
@@ 91,7 91,8 @@ namespace app
        popupFilter->attachWindowsStack(windowsStackImpl.get());
        statusBarManager->enableIndicators({gui::status_bar::Indicator::Time,
                                            gui::status_bar::Indicator::Signal,
                                            gui::status_bar::Indicator::NetworkAccessTechnology});
                                            gui::status_bar::Indicator::NetworkAccessTechnology,
                                            gui::status_bar::Indicator::PhoneMode});

        bus.channels.push_back(sys::BusChannel::ServiceCellularNotifications);


M module-gui/gui/widgets/StatusBar.cpp => module-gui/gui/widgets/StatusBar.cpp +12 -6
@@ 1,4 1,4 @@
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <iomanip>


@@ 196,12 196,18 @@ namespace gui::status_bar
            config.disable(Indicator::Time);
        }

        // phone mode and NAT are mutually exclusive.
        if (config.isEnabled(Indicator::NetworkAccessTechnology)) {
            config.disable(Indicator::PhoneMode);
        }

        /*
         * When phone mode indicator is displayed, do not display NAT indicator
         * Phone mode indicator is displayed when DND or Offline mode is selected
         */
        if (config.isEnabled(Indicator::PhoneMode)) {
            if (const auto mode = config.getPhoneMode();
                mode == sys::phone_modes::PhoneMode::DoNotDisturb || mode == sys::phone_modes::PhoneMode::Offline) {
                config.disable(Indicator::NetworkAccessTechnology);
            }
            else {
                config.enable(Indicator::NetworkAccessTechnology);
            }
            phoneMode->setPhoneMode(config.getPhoneMode());
        }