M module-sys/SystemManager/SystemManagerCommon.cpp => module-sys/SystemManager/SystemManagerCommon.cpp +2 -17
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <SystemManager/SystemManagerCommon.hpp>
@@ 154,22 154,7 @@ namespace sys
}
while (state == State::Shutdown) {
- // check if we are discharging - if so -> shutdown
- if (Store::Battery::get().state == Store::Battery::State::Discharging) {
- set(State::ShutdownReady);
- }
- else {
- // await from EvtManager for info that red key was pressed / timeout
- auto msg = mailbox.pop();
- if (!msg) {
- continue;
- }
- if (msg->sender != service::name::evt_manager) {
- LOG_ERROR("Ignored msg from: %s on shutdown", msg->sender.c_str());
- continue;
- }
- msg->Execute(this);
- }
+ handleShutdown();
}
DestroySystemService(service::name::evt_manager, this);
M module-sys/SystemManager/include/SystemManager/SystemManagerCommon.hpp => module-sys/SystemManager/include/SystemManager/SystemManagerCommon.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 132,6 132,7 @@ namespace sys
virtual void batteryNormalLevelAction();
virtual void batteryCriticalLevelAction(bool charging);
virtual void batteryShutdownLevelAction();
+ virtual void handleShutdown() = 0;
private:
MessagePointer DataReceivedHandler(DataMessage *msg, ResponseMessage *resp) override;
M products/BellHybrid/sys/SystemManager.cpp => products/BellHybrid/sys/SystemManager.cpp +6 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <sys/SystemManager.hpp>
@@ 50,4 50,9 @@ namespace sys
bus.sendUnicast(msg, service::name::appmgr);
SystemManagerCommon::batteryShutdownLevelAction();
}
+
+ void SystemManager::handleShutdown()
+ {
+ set(State::ShutdownReady);
+ }
} // namespace sys
M products/BellHybrid/sys/include/sys/SystemManager.hpp => products/BellHybrid/sys/include/sys/SystemManager.hpp +3 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 20,5 20,7 @@ namespace sys
auto handleAlarmActivationStatusChangeRequest(AlarmActivationStatusChangeRequest *request) -> MessagePointer;
void batteryShutdownLevelAction() override;
+
+ void handleShutdown() override;
};
} // namespace sys
M products/PurePhone/sys/SystemManager.cpp => products/PurePhone/sys/SystemManager.cpp +21 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <sys/SystemManager.hpp>
@@ 143,4 143,24 @@ namespace sys
auto msg = std::make_shared<CriticalBatteryLevelNotification>(true, charging);
bus.sendUnicast(std::move(msg), service::name::appmgr);
}
+
+ void SystemManager::handleShutdown()
+ {
+ // check if we are discharging - if so -> shutdown
+ if (Store::Battery::get().state == Store::Battery::State::Discharging) {
+ set(State::ShutdownReady);
+ }
+ else {
+ // await from EvtManager for info that red key was pressed / timeout
+ auto msg = mailbox.pop();
+ if (!msg) {
+ return;
+ }
+ if (msg->sender != service::name::evt_manager) {
+ LOG_ERROR("Ignored msg from: %s on shutdown", msg->sender.c_str());
+ return;
+ }
+ msg->Execute(this);
+ }
+ }
} // namespace sys
M products/PurePhone/sys/include/sys/SystemManager.hpp => products/PurePhone/sys/include/sys/SystemManager.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 32,6 32,7 @@ namespace sys
MessagePointer enableTethering(TetheringEnabledResponse *response);
void batteryNormalLevelAction() override;
void batteryCriticalLevelAction(bool charging) override;
+ void handleShutdown() override;
std::unique_ptr<phone_modes::Subject> phoneModeSubject;
};
M products/PurePhone/test/test-settings/CMakeLists.txt => products/PurePhone/test/test-settings/CMakeLists.txt +1 -0
@@ 7,6 7,7 @@ add_catch2_executable(
LIBS
db
evtmgr
+ sys
module-audio
module-cellular
module-vfs
M products/PurePhone/test/test-settings/test-service-db-settings-api.cpp => products/PurePhone/test/test-settings/test-service-db-settings-api.cpp +3 -4
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <catch2/catch.hpp>
@@ 10,7 10,7 @@
#include <db/ServiceDB.hpp>
#include <evtmgr/EventManager.hpp>
-#include <SystemManager/SystemManagerCommon.hpp>
+#include <sys/SystemManager.hpp>
#include <service-evtmgr/Constants.hpp>
@@ 41,8 41,7 @@ TEST_CASE("SettingsApi")
{
SECTION("variable/profile/mode register/set/get/unregister")
{
- auto manager =
- std::make_shared<sys::SystemManagerCommon>(std::vector<std::unique_ptr<sys::BaseServiceCreator>>{});
+ auto manager = std::make_shared<sys::SystemManager>(std::vector<std::unique_ptr<sys::BaseServiceCreator>>{});
std::shared_ptr<settings::MyService> varWritter;
std::shared_ptr<settings::MyService> varReader;
std::shared_ptr<settings::AppTest> testVar;