M products/BellHybrid/apps/Application.cpp => products/BellHybrid/apps/Application.cpp +1 -1
@@ 105,7 105,7 @@ namespace app
case ID::ChargingNotification:
windowsFactory.attach(window::charging_notification_window,
[](app::ApplicationCommon *app, const std::string &name) {
- return std::make_unique<gui::ChargingNotificationWindow>(app);
+ return std::make_unique<gui::ChargingInProgressNotificationWindow>(app);
});
break;
case ID::ChargingDoneNotification:
M products/BellHybrid/apps/application-bell-relaxation/presenter/RelaxationTimerSelectPresenter.cpp => products/BellHybrid/apps/application-bell-relaxation/presenter/RelaxationTimerSelectPresenter.cpp +2 -3
@@ 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 "RelaxationTimerSelectPresenter.hpp"
@@ 12,8 12,7 @@ namespace
using namespace std::chrono_literals;
using minutes = std::chrono::minutes;
constexpr auto timerDefaultValue{15min};
- const static std::vector<minutes> valuesRange{
- minutes::zero(), 5min, 10min, 15min, 30min, 45min, 60min, 90min, 8760h};
+ const std::vector<minutes> valuesRange{minutes::zero(), 5min, 10min, 15min, 30min, 45min, 60min, 90min, 8760h};
} // namespace
namespace app::relaxation
M => +14 -3
@@ 24,18 24,29 @@ namespace gui
Icon *icon = nullptr;
bool onInput(const InputEvent &inputEvent) override;
void returnToPreviousWindow();
virtual void returnToPreviousWindow();
void buildInterface() override;
public:
explicit ChargingNotificationWindow(app::ApplicationCommon *app);
void onBeforeShow(ShowMode mode, SwitchData *data) override;
explicit ChargingNotificationWindow(app::ApplicationCommon *app, const std::string &windowName);
};
class ChargingDoneNotificationWindow : public ChargingNotificationWindow
{
protected:
void returnToPreviousWindow() override;
public:
explicit ChargingDoneNotificationWindow(app::ApplicationCommon *app);
void onBeforeShow(ShowMode mode, SwitchData *data) override;
};
class ChargingInProgressNotificationWindow : public ChargingNotificationWindow
{
protected:
void returnToPreviousWindow() override;
public:
explicit ChargingInProgressNotificationWindow(app::ApplicationCommon *app);
void onBeforeShow(ShowMode mode, SwitchData *data) override;
};
} /* namespace gui */
M => +41 -22
@@ 21,9 21,8 @@ namespace
} // namespace
namespace gui
{
ChargingNotificationWindow::ChargingNotificationWindow(app::ApplicationCommon *app)
: WindowWithTimer(app, popup::window::charging_notification_window, chargingNotificationTimeout),
app::AsyncCallbackReceiver{app}, app{app}
ChargingNotificationWindow::ChargingNotificationWindow(app::ApplicationCommon *app, const std::string &windowName)
: WindowWithTimer(app, windowName, chargingNotificationTimeout), app::AsyncCallbackReceiver{app}, app{app}
{
buildInterface();
timerCallback = [this](Item &, sys::Timer &) {
@@ 50,10 49,31 @@ namespace gui
icon->image->setMargins(Margins(0, icon::image_top_margin, 0, icon::image_bottom_margin));
icon->text->setFont(style::window::font::verybiglight);
}
void ChargingNotificationWindow::onBeforeShow(ShowMode mode, [[maybe_unused]] SwitchData *data)
bool ChargingNotificationWindow::onInput(const InputEvent &inputEvent)
{
if (inputEvent.isShortRelease(KeyCode::KEY_ENTER) || inputEvent.isShortRelease(KeyCode::KEY_RF)) {
detachTimerIfExists();
returnToPreviousWindow();
return true;
}
return false;
}
void ChargingNotificationWindow::returnToPreviousWindow()
{
if (application->getPreviousWindow()) {
application->returnToPreviousWindow();
}
}
ChargingDoneNotificationWindow::ChargingDoneNotificationWindow(app::ApplicationCommon *app)
: ChargingNotificationWindow(app, gui::popup::window::charging_done_notification_window)
{}
void ChargingDoneNotificationWindow::onBeforeShow(ShowMode mode, [[maybe_unused]] SwitchData *data)
{
WindowWithTimer::onBeforeShow(mode, data);
icon->text->setRichText(std::to_string(Store::Battery::get().level) + "% " + utils::translate(chargingText));
icon->text->setRichText(utils::translate(chargingDoneText));
icon->image->set(chargingIcon);
icon->resizeItems();
statusBar->setVisible(false);
@@ 61,33 81,23 @@ namespace gui
navBar->setActive(nav_bar::Side::Right, false);
}
void ChargingNotificationWindow::returnToPreviousWindow()
void ChargingDoneNotificationWindow::returnToPreviousWindow()
{
detachTimerIfExists();
app::manager::Controller::sendAction(
application,
app::manager::actions::AbortPopup,
std::make_unique<gui::PopupRequestParams>(gui::popup::ID::ChargingNotification));
application->returnToPreviousWindow();
std::make_unique<gui::PopupRequestParams>(gui::popup::ID::ChargingDoneNotification));
ChargingNotificationWindow::returnToPreviousWindow();
}
bool ChargingNotificationWindow::onInput(const InputEvent &inputEvent)
{
if (inputEvent.isShortRelease(KeyCode::KEY_ENTER) || inputEvent.isShortRelease(KeyCode::KEY_RF)) {
returnToPreviousWindow();
return true;
}
return false;
}
ChargingDoneNotificationWindow::ChargingDoneNotificationWindow(app::ApplicationCommon *app)
: ChargingNotificationWindow(app)
ChargingInProgressNotificationWindow::ChargingInProgressNotificationWindow(app::ApplicationCommon *app)
: ChargingNotificationWindow(app, gui::popup::window::charging_notification_window)
{}
void ChargingDoneNotificationWindow::onBeforeShow(ShowMode mode, [[maybe_unused]] SwitchData *data)
void ChargingInProgressNotificationWindow::onBeforeShow(ShowMode mode, [[maybe_unused]] SwitchData *data)
{
WindowWithTimer::onBeforeShow(mode, data);
icon->text->setRichText(utils::translate(chargingDoneText));
icon->text->setRichText(std::to_string(Store::Battery::get().level) + "% " + utils::translate(chargingText));
icon->image->set(chargingIcon);
icon->resizeItems();
statusBar->setVisible(false);
@@ 95,4 105,13 @@ namespace gui
navBar->setActive(nav_bar::Side::Right, false);
}
void ChargingInProgressNotificationWindow::returnToPreviousWindow()
{
app::manager::Controller::sendAction(
application,
app::manager::actions::AbortPopup,
std::make_unique<gui::PopupRequestParams>(gui::popup::ID::ChargingNotification));
ChargingNotificationWindow::returnToPreviousWindow();
}
} /* namespace gui */