From 1bff91d0a18f2bd058f42b15ae0f20da9ae3e3e0 Mon Sep 17 00:00:00 2001 From: Maciej Gibowicz Date: Tue, 20 Feb 2024 18:53:31 +0100 Subject: [PATCH] [BH-1882] Fix display of "Connected" label on home screen The "connected" label did not appear on the home screen if the USB was connected on another screen. --- harmony_changelog.md | 1 + module-apps/apps-common/ApplicationCommon.cpp | 14 +++++--- module-apps/apps-common/ApplicationCommon.hpp | 6 ++-- .../ApplicationBellMain.cpp | 13 +++++-- .../apps/application-bell-main/CMakeLists.txt | 2 ++ .../ApplicationBellMain.hpp | 1 + .../presenters/HomeScreenPresenter.hpp | 11 +++--- .../models/UsbStatusModel.cpp | 17 ++++++++++ .../models/UsbStatusModel.hpp | 34 +++++++++++++++++++ .../presenters/HomeScreenPresenter.cpp | 16 ++++++--- .../windows/BellHomeScreenWindow.cpp | 4 +-- .../windows/BellHomeScreenWindow.hpp | 4 +-- .../layouts/BaseHomeScreenLayoutProvider.hpp | 2 +- .../layouts/HomeScreenLayoutClassic.hpp | 2 +- .../layouts/HomeScreenLayoutVertical.hpp | 4 +-- .../common/widgets/BellConnectionStatus.hpp | 3 +- .../src/layouts/HomeScreenLayoutClassic.cpp | 16 +++------ .../src/layouts/HomeScreenLayoutVertical.cpp | 14 ++------ .../src/widgets/BellConnectionStatus.cpp | 13 ++----- 19 files changed, 116 insertions(+), 61 deletions(-) create mode 100644 products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.cpp create mode 100644 products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.hpp diff --git a/harmony_changelog.md b/harmony_changelog.md index b083fd0bc8ef8190bb8d50b625de50b17873be45..71d1e4eb252942b8c2a4a7906d90aa0c72c106a2 100644 --- a/harmony_changelog.md +++ b/harmony_changelog.md @@ -18,6 +18,7 @@ * Fixed alarm rings when deactivated during snooze * Fixed popup about file deletion showing in Relaxation app even if no file was deleted * Fixed displaying the menu after deep press on main screen +* Fixed display of "Connected" label on home screen ### Added * Added setting onboarding year to build date year diff --git a/module-apps/apps-common/ApplicationCommon.cpp b/module-apps/apps-common/ApplicationCommon.cpp index d22dbb897550f52d51d91180cd043ea2b265e193..4b63647706b2a37be4cdc4635e392877a7973e26 100644 --- a/module-apps/apps-common/ApplicationCommon.cpp +++ b/module-apps/apps-common/ApplicationCommon.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "ApplicationCommon.hpp" @@ -113,9 +113,13 @@ namespace app connect(typeid(cellular::msg::notification::SimStateUpdate), [&](sys::Message *msg) -> sys::MessagePointer { return handleSimStateUpdateMessage(msg); }); connect(typeid(sdesktop::usb::USBConnected), - [&](sys::Message *msg) -> sys::MessagePointer { return handleUSBStatusChange(); }); - connect(typeid(sdesktop::usb::USBDisconnected), - [&](sys::Message *msg) -> sys::MessagePointer { return handleUSBStatusChange(); }); + [&](sys::Message *msg) -> sys::MessagePointer { return handleUsbStatusChange(); }); + connect(typeid(sdesktop::usb::USBDisconnected), [&](sys::Message *msg) -> sys::MessagePointer { + if (onUsbDisconnected != nullptr) { + onUsbDisconnected(); + } + return handleUsbStatusChange(); + }); addActionReceiver(app::manager::actions::PhoneModeChanged, [this](auto &¶ms) { if (params != nullptr) { @@ -452,7 +456,7 @@ namespace app return sys::msgHandled(); } - sys::MessagePointer ApplicationCommon::handleUSBStatusChange() + sys::MessagePointer ApplicationCommon::handleUsbStatusChange() { if ((state == State::ACTIVE_FORGROUND) && getCurrentWindow()->updateBatteryStatus()) { refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST); diff --git a/module-apps/apps-common/ApplicationCommon.hpp b/module-apps/apps-common/ApplicationCommon.hpp index e7997630890a4d4e0dab6b66836c247aa39baca0..78d46aa5c1284ef9e2e3aeaa06aa9fbaaf3257c8 100644 --- a/module-apps/apps-common/ApplicationCommon.hpp +++ b/module-apps/apps-common/ApplicationCommon.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -176,6 +176,8 @@ namespace app using OnActionReceived = std::function; protected: + std::function onUsbDisconnected; + virtual sys::MessagePointer handleKBDKeyEvent(sys::Message *msgl); virtual sys::MessagePointer handleApplicationSwitch(sys::Message *msgl); virtual sys::MessagePointer handleAppClose(sys::Message *msgl); @@ -194,7 +196,7 @@ namespace app sys::MessagePointer handleNetworkAccessTechnologyUpdate(sys::Message *msgl); sys::MessagePointer handleInputEvent(sys::Message *msgl); sys::MessagePointer handleBatteryStatusChange(); - sys::MessagePointer handleUSBStatusChange(); + sys::MessagePointer handleUsbStatusChange(); sys::MessagePointer handleSimStateUpdateMessage(sys::Message *msgl); sys::MessagePointer handleMinuteUpdated(sys::Message *msgl); sys::MessagePointer handleAction(sys::Message *msgl); diff --git a/products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp b/products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp index c009cab95e870c7c01fcb44e71b815e805cfb090..9da2910308f0a60f86b7eaf0e6c1c4d286fdf78f 100644 --- a/products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp +++ b/products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp @@ -3,6 +3,7 @@ #include "include/application-bell-main/ApplicationBellMain.hpp" #include "models/TemperatureModel.hpp" +#include "models/UsbStatusModel.hpp" #include "windows/BellBatteryShutdownWindow.hpp" #include "windows/BellHomeScreenWindow.hpp" @@ -81,11 +82,13 @@ namespace app }); connect(typeid(sdesktop::usb::USBConfigured), [&](sys::Message *msg) -> sys::MessagePointer { + usbStatusModel->setUsbStatus(app::AbstractUsbStatusModel::UsbStatus::Connected); if (getCurrentWindow()->getName() == gui::name::window::main_window) { - homeScreenPresenter->setUSBStatusConnected(); + homeScreenPresenter->updateUsbStatus(); } return sys::msgHandled(); }); + connect(typeid(AlarmDeactivated), [this](sys::Message *request) -> sys::MessagePointer { alarmModel->turnOff(); alarmModel->activateAlarm(false); @@ -95,6 +98,10 @@ namespace app alarmModel->activateAlarm(true); return sys::msgHandled(); }); + + onUsbDisconnected = [this]() { + usbStatusModel->setUsbStatus(app::AbstractUsbStatusModel::UsbStatus::Disconnected); + }; } sys::ReturnCodes ApplicationBellMain::InitHandler() @@ -109,13 +116,15 @@ namespace app temperatureModel = std::make_unique(this); userSessionModel = std::make_unique(this); batteryLevelNotificationModel = std::make_unique(); + usbStatusModel = std::make_unique(); homeScreenPresenter = std::make_shared(this, *alarmModel, *batteryModel, *temperatureModel, *timeModel, *userSessionModel, - *batteryLevelNotificationModel); + *batteryLevelNotificationModel, + *usbStatusModel); createUserInterface(); diff --git a/products/BellHybrid/apps/application-bell-main/CMakeLists.txt b/products/BellHybrid/apps/application-bell-main/CMakeLists.txt index 4dafa30104c3667ecccb16414e699ca7a6361064..67effbec202dedc5abbafa23e2360626727bdff3 100644 --- a/products/BellHybrid/apps/application-bell-main/CMakeLists.txt +++ b/products/BellHybrid/apps/application-bell-main/CMakeLists.txt @@ -10,6 +10,7 @@ target_sources(application-bell-main windows/BellMainMenuWindow.cpp models/TemperatureModel.cpp + models/UsbStatusModel.cpp presenters/HomeScreenPresenter.cpp presenters/StateController.cpp @@ -19,6 +20,7 @@ target_sources(application-bell-main windows/BellMainMenuWindow.hpp models/TemperatureModel.hpp + models/UsbStatusModel.hpp presenters/StateController.hpp diff --git a/products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp b/products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp index 439b64042e8c238aadfb4703bfe92a0ae305bff8..a0f572f3632f754469d64efcf316ef0a645ea01d 100644 --- a/products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp +++ b/products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp @@ -53,6 +53,7 @@ namespace app std::unique_ptr temperatureModel; std::unique_ptr userSessionModel; std::unique_ptr batteryLevelNotificationModel; + std::unique_ptr usbStatusModel; std::shared_ptr homeScreenPresenter; }; diff --git a/products/BellHybrid/apps/application-bell-main/include/application-bell-main/presenters/HomeScreenPresenter.hpp b/products/BellHybrid/apps/application-bell-main/include/application-bell-main/presenters/HomeScreenPresenter.hpp index 0c7281becc16ccee7696f92575c474e1fe78849d..072dc8c119088de536b4bd2f5dd9baf7eacfb69d 100644 --- a/products/BellHybrid/apps/application-bell-main/include/application-bell-main/presenters/HomeScreenPresenter.hpp +++ b/products/BellHybrid/apps/application-bell-main/include/application-bell-main/presenters/HomeScreenPresenter.hpp @@ -27,6 +27,7 @@ namespace app class AbstractBatteryLevelNotificationModel; class ApplicationCommon; class TemperatureModel; + class AbstractUsbStatusModel; class AbstractUserSessionModel; class ProgressTimerWithSnoozeTimer; } // namespace app @@ -67,7 +68,7 @@ namespace app::home_screen virtual void setTemperature(utils::temperature::Temperature newTemp) = 0; virtual void setTextDescription(const UTF8 &desc) = 0; virtual void setBatteryLevelState(const Store::Battery &batteryContext) = 0; - virtual void setUSBStatusConnected() = 0; + virtual void updateUsbStatus(bool isConnected) = 0; /// Various virtual void setLayout(gui::LayoutGenerator layoutGenerator) = 0; @@ -103,7 +104,7 @@ namespace app::home_screen virtual void switchToBatteryStatus() = 0; virtual void switchToLowBatteryWarning() = 0; virtual UTF8 getGreeting() = 0; - virtual void setUSBStatusConnected() = 0; + virtual void updateUsbStatus() = 0; virtual void handleLowBatteryWarning() = 0; virtual bool isLowBatteryWarningNeeded() = 0; virtual void updateBatteryLevelInterval() = 0; @@ -122,7 +123,8 @@ namespace app::home_screen AbstractTemperatureModel &temperatureModel, AbstractTimeModel &timeModel, AbstractUserSessionModel &userSessionModel, - AbstractBatteryLevelNotificationModel &batteryLevelNotificationModel); + AbstractBatteryLevelNotificationModel &batteryLevelNotificationModel, + AbstractUsbStatusModel &usbStatusModel); virtual ~HomeScreenPresenter(); HomeScreenPresenter() = delete; HomeScreenPresenter &operator=(const HomeScreenPresenter &oth) = delete; @@ -150,7 +152,7 @@ namespace app::home_screen std::uint32_t getBatteryLvl() const override; bool isBatteryCharging() const override; bool isAlarmActivatedByLatch() const override; - void setUSBStatusConnected() override; + void updateUsbStatus() override; void incAlarmMinute() override; void decAlarmMinute() override; @@ -175,6 +177,7 @@ namespace app::home_screen AbstractTimeModel &timeModel; AbstractUserSessionModel &userSessionModel; AbstractBatteryLevelNotificationModel &batteryLevelNotificationModel; + AbstractUsbStatusModel &usbStatusModel; std::unique_ptr stateController; std::unique_ptr snoozeTimer; std::unique_ptr rngEngine; diff --git a/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.cpp b/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ba8f79451ee598810efe80730cf28a673b01439a --- /dev/null +++ b/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.cpp @@ -0,0 +1,17 @@ +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#include "UsbStatusModel.hpp" + +namespace app +{ + bool UsbStatusModel::isUsbConnected(const Store::Battery::State &state) const + { + return ((usbConnected == UsbStatus::Connected) && (state == Store::Battery::State::PluggedNotCharging)); + } + + void UsbStatusModel::setUsbStatus(UsbStatus status) + { + usbConnected = status; + } +} // namespace app diff --git a/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.hpp b/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.hpp new file mode 100644 index 0000000000000000000000000000000000000000..48ce63b5872694e25a95e60650751d3aff25231d --- /dev/null +++ b/products/BellHybrid/apps/application-bell-main/models/UsbStatusModel.hpp @@ -0,0 +1,34 @@ +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. +// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md + +#pragma once + +#include + +namespace app +{ + class AbstractUsbStatusModel + { + public: + enum class UsbStatus : bool + { + Disconnected, + Connected + }; + + virtual ~AbstractUsbStatusModel() noexcept = default; + + virtual bool isUsbConnected(const Store::Battery::State &state) const = 0; + virtual void setUsbStatus(UsbStatus status) = 0; + }; + + class UsbStatusModel : public AbstractUsbStatusModel + { + public: + bool isUsbConnected(const Store::Battery::State &state) const override; + void setUsbStatus(UsbStatus status) override; + + private: + UsbStatus usbConnected{UsbStatus::Disconnected}; + }; +} // namespace app diff --git a/products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp b/products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp index d99532ed1ecc9cb0c6f889b667de387e1d38613d..c8634c12ab2d228c093cfd3257b9b646a0efc62a 100644 --- a/products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp +++ b/products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp @@ -4,6 +4,7 @@ #include "application-bell-main/presenters/HomeScreenPresenter.hpp" #include "StateController.hpp" #include "models/TemperatureModel.hpp" +#include "models/UsbStatusModel.hpp" #include #include @@ -78,11 +79,12 @@ namespace app::home_screen AbstractTemperatureModel &temperatureModel, AbstractTimeModel &timeModel, AbstractUserSessionModel &userSessionModel, - AbstractBatteryLevelNotificationModel &batteryLevelNotificationModel) + AbstractBatteryLevelNotificationModel &batteryLevelNotificationModel, + AbstractUsbStatusModel &usbStatusModel) : app{app}, alarmModel{alarmModel}, batteryModel{batteryModel}, temperatureModel{temperatureModel}, timeModel{timeModel}, userSessionModel{userSessionModel}, - batteryLevelNotificationModel{batteryLevelNotificationModel}, rngEngine{std::make_unique( - bsp::trng::getRandomValue())} + batteryLevelNotificationModel{batteryLevelNotificationModel}, + usbStatusModel{usbStatusModel}, rngEngine{std::make_unique(bsp::trng::getRandomValue())} {} gui::RefreshModes HomeScreenPresenter::handleUpdateTimeEvent() @@ -133,6 +135,7 @@ namespace app::home_screen getView()->setAlarmTimeFormat(timeModel.getTimeFormat()); getView()->setSnoozeFormat(timeModel.getTimeFormat()); getView()->setTemperature(temperatureModel.getTemperature()); + updateUsbStatus(); } void HomeScreenPresenter::createData() { @@ -221,6 +224,7 @@ namespace app::home_screen void HomeScreenPresenter::handleBatteryStatus() { stateController->handleBatteryStatus(); + updateUsbStatus(); } void HomeScreenPresenter::setLayout(gui::LayoutGenerator layoutGenerator) @@ -273,9 +277,11 @@ namespace app::home_screen return greetingCollection[dist(*rngEngine)]; }; - void HomeScreenPresenter::setUSBStatusConnected() + void HomeScreenPresenter::updateUsbStatus() { - getView()->setUSBStatusConnected(); + const auto batteryState = batteryModel.getLevelState().state; + const bool isUsbConnected = usbStatusModel.isUsbConnected(batteryState); + getView()->updateUsbStatus(isUsbConnected); } bool HomeScreenPresenter::isLowBatteryWarningNeeded() diff --git a/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp b/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp index 294158187495161ece547865eb3071dfb9059071..6e27acaa81f853a9b16203fda2ccdf2a5d8988e6 100644 --- a/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp +++ b/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp @@ -182,10 +182,10 @@ namespace gui return false; } - void BellHomeScreenWindow::setUSBStatusConnected() + void BellHomeScreenWindow::updateUsbStatus(bool isConnected) { if (currentLayout) { - currentLayout->setUSBStatusConnected(); + currentLayout->updateUsbStatus(isConnected); application->refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST); } } diff --git a/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp b/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp index f0799eb23b90827c9a21e0a7ab4d7977596309ca..4670ec97377d832a564003036321759785788237 100644 --- a/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp +++ b/products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -40,7 +40,7 @@ namespace gui void setAlarmTimeFormat(utils::time::Locale::TimeFormat fmt) override; void setSnoozeFormat(utils::time::Locale::TimeFormat fmt) override; bool updateBatteryStatus() override; - void setUSBStatusConnected() override; + void updateUsbStatus(bool isConnected) override; std::shared_ptr presenter; diff --git a/products/BellHybrid/apps/common/include/common/layouts/BaseHomeScreenLayoutProvider.hpp b/products/BellHybrid/apps/common/include/common/layouts/BaseHomeScreenLayoutProvider.hpp index aeb2567b16c44069952b6e292e36b71c9284a6bb..2afc4b1fdf94dcf6594912d92213fed1816ba286 100644 --- a/products/BellHybrid/apps/common/include/common/layouts/BaseHomeScreenLayoutProvider.hpp +++ b/products/BellHybrid/apps/common/include/common/layouts/BaseHomeScreenLayoutProvider.hpp @@ -50,7 +50,7 @@ namespace gui virtual void setViewState(app::home_screen::ViewState state) = 0; virtual void setTextDescription(const UTF8 &desc) = 0; virtual void setBatteryLevelState(const Store::Battery &batteryContext) = 0; - virtual void setUSBStatusConnected() = 0; + virtual void updateUsbStatus(bool isConnected) = 0; virtual void setTime(std::time_t newTime) = 0; virtual void setAlarmTimeFormat(utils::time::Locale::TimeFormat fmt) = 0; virtual std::time_t getAlarmTime() const = 0; diff --git a/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutClassic.hpp b/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutClassic.hpp index 24f0b3088c6e915cdf144253df01c2bdd6568750..9c8d6ac3e4400ef2179a378db556878487b9e5ed 100644 --- a/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutClassic.hpp +++ b/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutClassic.hpp @@ -66,7 +66,7 @@ namespace gui auto getAlarmTime() const -> std::time_t override; auto setAlarmTime(std::time_t newTime) -> void override; auto setSnoozeTime(std::time_t newTime) -> void override; - auto setUSBStatusConnected() -> void override; + auto updateUsbStatus(bool isConnected) -> void override; auto getSnoozeTimer() -> SnoozeTimer * override; auto getLayout() -> Item * override; diff --git a/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutVertical.hpp b/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutVertical.hpp index f2c211679b159c5fe14cd4f76cc522ec64e9a270..d047f9d7fe351a6fc71b0dc96ebd874a2a89aa9a 100644 --- a/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutVertical.hpp +++ b/products/BellHybrid/apps/common/include/common/layouts/HomeScreenLayoutVertical.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2023, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -44,7 +44,7 @@ namespace gui auto setAlarmTimeFormat(utils::time::Locale::TimeFormat fmt) -> void override; auto getAlarmTime() const -> std::time_t override; auto setAlarmTime(std::time_t newTime) -> void override; - auto setUSBStatusConnected() -> void override; + auto updateUsbStatus(bool isConnected) -> void override; auto getSnoozeTimer() -> SnoozeTimer * override; auto getLayout() -> Item * override; diff --git a/products/BellHybrid/apps/common/include/common/widgets/BellConnectionStatus.hpp b/products/BellHybrid/apps/common/include/common/widgets/BellConnectionStatus.hpp index 492a1eeddeb524b3934ecc94f59cf880b8d6ee7f..bdab5129979c4f1f2befc502d7c4c75e761526e4 100644 --- a/products/BellHybrid/apps/common/include/common/widgets/BellConnectionStatus.hpp +++ b/products/BellHybrid/apps/common/include/common/widgets/BellConnectionStatus.hpp @@ -14,8 +14,7 @@ namespace gui public: BellConnectionStatus(Item *parent); void setFont(const UTF8 &fontName); - void checkIfConnected(const Store::Battery::State &state); - void setConnected(); + void show(bool visibility); private: Text *statusText = nullptr; diff --git a/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutClassic.cpp b/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutClassic.cpp index 9c1fd509fef85d20bc61cbf1dca7f03511e9a768..8b9be56a6590d82e3904434cb0ac584f16898b9d 100644 --- a/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutClassic.cpp +++ b/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutClassic.cpp @@ -299,17 +299,8 @@ namespace gui void HomeScreenLayoutClassic::setBatteryLevelState(const Store::Battery &batteryContext) { battery->update(batteryContext.level, isBatteryCharging(batteryContext.state)); - connectionStatus->checkIfConnected(batteryContext.state); - - if (isBatteryVisibilityAllowed(batteryContext)) { - battery->setVisible(true); - } - else { - battery->setVisible(false); - } + battery->setVisible(isBatteryVisibilityAllowed(batteryContext)); battery->informContentChanged(); - connectionStatus->informContentChanged(); - adjustConnectionStatusPosition(); } void HomeScreenLayoutClassic::setTime(std::time_t newTime) @@ -359,10 +350,11 @@ namespace gui { return this; } - auto HomeScreenLayoutClassic::setUSBStatusConnected() -> void + auto HomeScreenLayoutClassic::updateUsbStatus(bool isConnected) -> void { - connectionStatus->setConnected(); + connectionStatus->show(isConnected); connectionStatus->informContentChanged(); + adjustConnectionStatusPosition(); } auto HomeScreenLayoutClassic::adjustConnectionStatusPosition() -> void diff --git a/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutVertical.cpp b/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutVertical.cpp index 12802aafd03a61db48bc724c8be99bf3411e0430..55bfafa210681e52f4a95931290f74b8c68f23b4 100644 --- a/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutVertical.cpp +++ b/products/BellHybrid/apps/common/src/layouts/HomeScreenLayoutVertical.cpp @@ -162,16 +162,8 @@ namespace gui void HomeScreenLayoutVertical::setBatteryLevelState(const Store::Battery &batteryContext) { battery->update(batteryContext.level, isBatteryCharging(batteryContext.state)); - connectionStatus->checkIfConnected(batteryContext.state); - - if (isBatteryVisibilityAllowed(batteryContext)) { - battery->setVisible(true); - } - else { - battery->setVisible(false); - } + battery->setVisible(isBatteryVisibilityAllowed(batteryContext)); battery->informContentChanged(); - connectionStatus->informContentChanged(); } void HomeScreenLayoutVertical::setTime(std::time_t newTime) @@ -210,9 +202,9 @@ namespace gui { return this; } - auto HomeScreenLayoutVertical::setUSBStatusConnected() -> void + auto HomeScreenLayoutVertical::updateUsbStatus(bool isConnected) -> void { - connectionStatus->setConnected(); + connectionStatus->show(isConnected); connectionStatus->informContentChanged(); } diff --git a/products/BellHybrid/apps/common/src/widgets/BellConnectionStatus.cpp b/products/BellHybrid/apps/common/src/widgets/BellConnectionStatus.cpp index 02de92aec24f1ad5f66b3b41de17406770977c80..8eae937b75d48c6b416dd9acf57d8f0ba7e88d4e 100644 --- a/products/BellHybrid/apps/common/src/widgets/BellConnectionStatus.cpp +++ b/products/BellHybrid/apps/common/src/widgets/BellConnectionStatus.cpp @@ -26,7 +26,7 @@ namespace gui statusText->activeItem = false; statusText->drawUnderline(false); statusText->setText(utils::translate(usb_connected_status)); - statusText->setVisible(true); + statusText->setVisible(false); } void BellConnectionStatus::setFont(const UTF8 &fontName) @@ -34,15 +34,8 @@ namespace gui statusText->setFont(fontName); } - void BellConnectionStatus::checkIfConnected(const Store::Battery::State &state) + void BellConnectionStatus::show(bool visibility) { - if (state != Store::Battery::State::PluggedNotCharging) { - statusText->setVisible(false); - } - } - - void BellConnectionStatus::setConnected() - { - statusText->setVisible(true); + statusText->setVisible(visibility); } } // namespace gui