// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md
#include "BatteryBase.hpp"
#include "BoxLayout.hpp"
namespace gui::status_bar
{
BatteryBase::BatteryBase(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h)
: StatusBarWidgetBase(parent, x, y, w, h)
{
setEdges(RectangleEdge::None);
setAlignment(Alignment(Alignment::Horizontal::Right, Alignment::Vertical::Bottom));
}
bool BatteryBase::update(const Store::Battery &batteryContext)
{
switch (batteryContext.state) {
case Store::Battery::State::Discharging:
[[fallthrough]];
case Store::Battery::State::PluggedNotCharging:
showBatteryLevel(batteryContext.level);
break;
case Store::Battery::State::Charging:
showBatteryCharging();
break;
case Store::Battery::State::ChargingDone:
showBatteryChargingDone();
break;
}
return Store::Battery::takeUpdated();
}
} // namespace gui::status_bar