From 1f157e411df916e18c974c2176e3ff7c5e54e7a0 Mon Sep 17 00:00:00 2001 From: Bartosz Date: Tue, 7 Feb 2023 18:48:09 +0100 Subject: [PATCH] [MOS-59] Fix weird behaviour of indicators on popups Fixed phone mode indicators on popups --- module-apps/apps-common/ApplicationCommon.cpp | 3 ++- module-gui/gui/widgets/StatusBar.cpp | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/module-apps/apps-common/ApplicationCommon.cpp b/module-apps/apps-common/ApplicationCommon.cpp index 308fd8ffe97d6ad717f2eb42938256b4c386bdfc..cd5906621327028d57112894183980279380c173 100644 --- a/module-apps/apps-common/ApplicationCommon.cpp +++ b/module-apps/apps-common/ApplicationCommon.cpp @@ -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); diff --git a/module-gui/gui/widgets/StatusBar.cpp b/module-gui/gui/widgets/StatusBar.cpp index 98a459868b9e11f9f99abb3466864d4b5e6f050a..2a93b1877c885153e78d42ad90e5138a5542a428 100644 --- a/module-gui/gui/widgets/StatusBar.cpp +++ b/module-gui/gui/widgets/StatusBar.cpp @@ -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 @@ -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()); }