From fc3b83706b92b08190ddb63dca458fc34c263797 Mon Sep 17 00:00:00 2001 From: Bartosz Cichocki Date: Thu, 26 May 2022 15:34:20 +0200 Subject: [PATCH] [MOS-302] Fix application switching During the incoming call apps apps instead of going to background were closed, thus phone lock context were lost. Now apps are being moved to the background as they supposed to be --- module-services/service-appmgr/CMakeLists.txt | 2 -- .../include/service-appmgr/Controller.hpp | 4 ++-- .../model/ApplicationManagerCommon.hpp | 3 --- .../service-appmgr/model/OnActionPolicy.hpp | 21 ------------------- .../model/ApplicationManagerCommon.cpp | 6 +++--- .../service-appmgr/model/OnActionPolicy.cpp | 15 ------------- 6 files changed, 5 insertions(+), 46 deletions(-) delete mode 100644 module-services/service-appmgr/include/service-appmgr/model/OnActionPolicy.hpp delete mode 100644 module-services/service-appmgr/model/OnActionPolicy.cpp diff --git a/module-services/service-appmgr/CMakeLists.txt b/module-services/service-appmgr/CMakeLists.txt index cf9b447453b4f15a1da24629df1eaf36bea5c09f..0dab5d6f06e8c0d415fd2e254075b7fa5e85fb22 100644 --- a/module-services/service-appmgr/CMakeLists.txt +++ b/module-services/service-appmgr/CMakeLists.txt @@ -29,7 +29,6 @@ target_sources(service-appmgr model/ApplicationManagerCommon.cpp model/ApplicationStack.cpp model/ApplicationsRegistry.cpp - model/OnActionPolicy.cpp PUBLIC include/service-appmgr/Actions.hpp include/service-appmgr/ApplicationManifest.hpp @@ -67,7 +66,6 @@ target_sources(service-appmgr include/service-appmgr/model/ApplicationManagerCommon.hpp include/service-appmgr/model/ApplicationStack.hpp include/service-appmgr/model/ApplicationsRegistry.hpp - include/service-appmgr/model/OnActionPolicy.hpp ) target_link_libraries(service-appmgr diff --git a/module-services/service-appmgr/include/service-appmgr/Controller.hpp b/module-services/service-appmgr/include/service-appmgr/Controller.hpp index fb19e2ddd81d08fef4c32e9e276164e6ca636c05..fff4dd7582e0623b8cea8ddda170718cc08ef5a3 100644 --- a/module-services/service-appmgr/include/service-appmgr/Controller.hpp +++ b/module-services/service-appmgr/include/service-appmgr/Controller.hpp @@ -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 @@ -40,7 +40,7 @@ namespace app::manager static auto sendAction(sys::Service *sender, actions::ActionId actionId, actions::ActionParamsPtr &&data = nullptr, - OnSwitchBehaviour onSwitchBehaviour = OnSwitchBehaviour::Close) -> bool; + OnSwitchBehaviour onSwitchBehaviour = OnSwitchBehaviour::RunInBackground) -> bool; static auto switchBack(sys::Service *sender, std::unique_ptr msg = nullptr) -> bool; static auto confirmSwitch(sys::Service *sender) -> bool; static auto closeApplication(sys::Service *sender, const ApplicationName &name) -> bool; diff --git a/module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp b/module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp index a5862b3818faf1228d913c790f483cc117bf76c3..9897ed35f05cb82eaef50a8fc1e9933c62ad0e51 100644 --- a/module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp +++ b/module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp @@ -7,7 +7,6 @@ #include "ApplicationsRegistry.hpp" #include "ActionsRegistry.hpp" #include "ApplicationStack.hpp" -#include "OnActionPolicy.hpp" #include #include @@ -151,8 +150,6 @@ namespace app::manager void onFinalizingClose(); auto onCloseConfirmed(ApplicationHandle &app) -> bool; - OnActionPolicy actionPolicy; - void displayLanguageChanged(std::string value); void inputLanguageChanged(std::string value); }; diff --git a/module-services/service-appmgr/include/service-appmgr/model/OnActionPolicy.hpp b/module-services/service-appmgr/include/service-appmgr/model/OnActionPolicy.hpp deleted file mode 100644 index e58bce731b8690baa45fd9b7df987d4ca5bbfab2..0000000000000000000000000000000000000000 --- a/module-services/service-appmgr/include/service-appmgr/model/OnActionPolicy.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#pragma once - -#include - -namespace app::manager -{ - enum class Reaction - { - None, - KeepFocusedAppInBackground - }; - - class OnActionPolicy - { - public: - Reaction operator()(actions::Action action) const noexcept; - }; -} // namespace app::manager diff --git a/module-services/service-appmgr/model/ApplicationManagerCommon.cpp b/module-services/service-appmgr/model/ApplicationManagerCommon.cpp index 40d7fc3db49e1f6357fde6e2c3e9b23f67013c15..126f4dc8e725bcb11a82e30087060a63c475b932 100644 --- a/module-services/service-appmgr/model/ApplicationManagerCommon.cpp +++ b/module-services/service-appmgr/model/ApplicationManagerCommon.cpp @@ -561,11 +561,11 @@ namespace app::manager // Inform that target app switch is caused by Action targetApp->startupReason = StartupReason::OnAction; - const auto focusedAppClose = !(actionPolicy(action.actionId) == Reaction::KeepFocusedAppInBackground || - (actionParams && actionParams->disableAppClose)); + const auto closeFocusedApp = !(actionParams && actionParams->disableAppClose); + SwitchRequest switchRequest( service::name::appmgr, targetApp->name(), targetApp->switchWindow, std::move(targetApp->switchData)); - handleSwitchApplication(&switchRequest, focusedAppClose); + handleSwitchApplication(&switchRequest, closeFocusedApp); return ActionProcessStatus::Skipped; } diff --git a/module-services/service-appmgr/model/OnActionPolicy.cpp b/module-services/service-appmgr/model/OnActionPolicy.cpp deleted file mode 100644 index 160bae2fc036dce7216eb73ffff070a6bc804a7d..0000000000000000000000000000000000000000 --- a/module-services/service-appmgr/model/OnActionPolicy.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. -// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md - -#include "OnActionPolicy.hpp" - -namespace app::manager -{ - Reaction OnActionPolicy::operator()(actions::Action action) const noexcept - { - if (action == actions::HandleIncomingCall) { - return Reaction::KeepFocusedAppInBackground; - } - return Reaction::None; - } -} // namespace app::manager