// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "Controller.hpp" #include "FinishRequest.hpp" #include "GetAllNotificationsRequest.hpp" #include #include #include namespace app::manager { namespace { void setOnSwitchBehaviour(actions::ActionParamsPtr &data, OnSwitchBehaviour onSwitchBehaviour) noexcept { if (data) { data->disableAppClose = (onSwitchBehaviour == OnSwitchBehaviour::RunInBackground); } } } // namespace auto Controller::applicationInitialised(sys::Service *sender, StartupStatus status, StartInBackground startInBackground) -> bool { auto msg = std::make_shared(sender->GetName(), status, startInBackground); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::finish(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(std::move(msg), service::name::appmgr); } auto Controller::sendAction(sys::Service *sender, actions::ActionId actionId, actions::ActionParamsPtr &&data, OnSwitchBehaviour onSwitchBehaviour) -> bool { setOnSwitchBehaviour(data, onSwitchBehaviour); auto msg = std::make_shared(sender->GetName(), actionId, std::move(data)); return sender->bus.sendUnicast(std::move(msg), service::name::appmgr); } auto Controller::switchBack(sys::Service *sender, std::unique_ptr msg) -> bool { std::shared_ptr switchMsg = msg ? std::move(msg) : std::make_shared(sender->GetName()); return sender->bus.sendUnicast(switchMsg, service::name::appmgr); } auto Controller::confirmSwitch(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::closeApplication(sys::Service *sender, const ApplicationName &name) -> bool { auto msg = std::make_shared(sender->GetName(), name); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::confirmClose(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::finalizingClose(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::changeDisplayLanguage(sys::Service *sender, const Language &language) -> bool { auto msg = std::make_shared(sender->GetName(), language); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::changeInputLanguage(sys::Service *sender, const Language &language) -> bool { auto msg = std::make_shared(sender->GetName(), language); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::preventBlockingDevice(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::changePowerSaveMode(sys::Service *sender) -> bool { auto msg = std::make_shared(sender->GetName()); return sender->bus.sendUnicast(msg, service::name::appmgr); } auto Controller::requestNotifications(sys::Service *sender) -> bool { auto msg = std::make_shared(); return sender->bus.sendUnicast(std::move(msg), service::name::appmgr); } } // namespace app::manager