M module-bsp/board/rt1051/bellpx/hal/battery_charger/BatteryCharger.cpp => module-bsp/board/rt1051/bellpx/hal/battery_charger/BatteryCharger.cpp +0 -4
@@ 19,7 19,6 @@ namespace hal::battery
bsp::fuel_gauge::init(queueBatteryHandle);
bsp::battery_charger::init(queueBatteryHandle);
- Store::Battery::modify().state = Store::Battery::State::Discharging;
Store::Battery::modify().level = static_cast<unsigned int>(bsp::fuel_gauge::getBatteryLevel());
}
@@ 36,9 35,6 @@ namespace hal::battery
{
bsp::battery_charger::getChargeStatus();
- if (notification == bsp::fuel_gauge::FuelGaugeAlert) {
- Store::Battery::modify().levelState = Store::Battery::LevelState::CriticalNotCharging;
- }
if (notification == bsp::fuel_gauge::FuelGaugeUpdate) {
Store::Battery::modify().level = bsp::fuel_gauge::getBatteryLevel();
M module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.cpp => module-services/service-evtmgr/battery-level-check/BatteryLevelCheck.cpp +4 -2
@@ 44,7 44,8 @@ namespace battery_level_check
bool operator()() const
{
return Store::Battery::get().level < batteryLevelCritical &&
- Store::Battery::get().state != Store::Battery::State::Charging;
+ Store::Battery::get().state != Store::Battery::State::Charging &&
+ Store::Battery::get().state != Store::Battery::State::ChargingDone;
}
} isCriticalNotCharging;
struct isCriticalCharging
@@ 52,7 53,8 @@ namespace battery_level_check
bool operator()() const
{
return Store::Battery::get().level < batteryLevelCritical &&
- Store::Battery::get().state == Store::Battery::State::Charging;
+ (Store::Battery::get().state == Store::Battery::State::Charging ||
+ Store::Battery::get().state == Store::Battery::State::ChargingDone);
}
} isCriticalCharging;
struct isShutdown
M products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp => products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp +1 -1
@@ 179,7 179,7 @@ namespace app
data->ignoreCurrentWindowOnStack = true;
}
- if (lowBatteryState->isActive()) {
+ if (lowBatteryState->isActive() && !lowBatteryState->isCharging()) {
blockAllPopups = true;
switchWindow(gui::window::name::bell_battery_shutdown, std::move(data));
}
M products/BellHybrid/services/appmgr/ApplicationManager.cpp => products/BellHybrid/services/appmgr/ApplicationManager.cpp +17 -0
@@ 66,4 66,21 @@ namespace app::manager
connect(typeid(BatteryShutdown), convertibleToActionHandler);
connect(typeid(BedtimeNotification), convertibleToActionHandler);
}
+
+ void ApplicationManager::handleStart(StartAllowedMessage *msg)
+ {
+ switch (msg->getStartupType()) {
+ case StartupType::Regular:
+ [[fallthrough]];
+ case StartupType::LowBatteryCharging:
+ ApplicationManagerCommon::handleStart(msg);
+ break;
+ case StartupType::LowBattery:
+ handleSwitchApplication(
+ std::make_unique<SwitchRequest>(
+ service::name::appmgr, app::applicationBellName, gui::window::name::bell_battery_shutdown, nullptr)
+ .get());
+ break;
+ }
+ }
} // namespace app::manager
M products/BellHybrid/services/appmgr/include/appmgr/ApplicationManager.hpp => products/BellHybrid/services/appmgr/include/appmgr/ApplicationManager.hpp +1 -0
@@ 24,5 24,6 @@ namespace app::manager
auto startApplication(ApplicationHandle &app) -> bool override;
auto resolveHomeApplication() -> std::string override;
auto registerMessageHandlers() -> void override;
+ void handleStart(StartAllowedMessage *msg) override;
};
} // namespace app::manager
M products/BellHybrid/sys/SystemManager.cpp => products/BellHybrid/sys/SystemManager.cpp +7 -0
@@ 51,6 51,13 @@ namespace sys
SystemManagerCommon::batteryShutdownLevelAction();
}
+ void SystemManager::batteryNormalLevelAction()
+ {
+ SystemManagerCommon::batteryNormalLevelAction();
+ auto battNormalMsg = std::make_shared<CriticalBatteryLevelNotification>(false);
+ bus.sendUnicast(std::move(battNormalMsg), service::name::appmgr);
+ }
+
void SystemManager::batteryCriticalLevelAction(bool charging)
{
SystemManagerCommon::batteryCriticalLevelAction(charging);
M products/BellHybrid/sys/include/sys/SystemManager.hpp => products/BellHybrid/sys/include/sys/SystemManager.hpp +2 -0
@@ 21,6 21,8 @@ namespace sys
void batteryShutdownLevelAction() override;
+ void batteryNormalLevelAction() override;
+
void batteryCriticalLevelAction(bool charging) override;
};
} // namespace sys