From 1bcc27dfe7a73845d2f23614ed5690c2da85a2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ta=C5=84ski?= Date: Thu, 6 May 2021 10:51:29 +0200 Subject: [PATCH] [EGD-6638] SOS call windows flow fixed On going back, it returns to the correct window. --- module-apps/Application.cpp | 7 +++++++ module-apps/Application.hpp | 3 +++ module-apps/application-call/ApplicationCall.hpp | 4 ++-- module-apps/application-call/windows/CallWindow.cpp | 1 + .../application-phonebook/models/PhonebookModel.cpp | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/module-apps/Application.cpp b/module-apps/Application.cpp index c1bb10f425d9dff6e8eb57f356e920251dd26b71..b7119b03781b40dfe9ef3e8e016d78cc5447ac3c 100644 --- a/module-apps/Application.cpp +++ b/module-apps/Application.cpp @@ -268,6 +268,13 @@ namespace app } } + void Application::popCurrentWindow() + { + if (!windowsStack.stack.empty()) { + windowsStack.stack.pop_back(); + } + } + void Application::refreshWindow(gui::RefreshModes mode) { if (not windowsStack.isEmpty()) { diff --git a/module-apps/Application.hpp b/module-apps/Application.hpp index bdb887c8a30b77fcc9b800a4c94faca40916ddf1..8589fd69fc5aa7590b0b5cdbaf69d4ce96763048 100644 --- a/module-apps/Application.hpp +++ b/module-apps/Application.hpp @@ -236,6 +236,9 @@ namespace app ///@param ignoredWindowsNumber: defines how many windows will be skipped while going back on stack void returnToPreviousWindow(const uint32_t times = 1); + /// Pops the current window from the windows stack + void popCurrentWindow(); + /// Method refreshing active window void refreshWindow(gui::RefreshModes mode); diff --git a/module-apps/application-call/ApplicationCall.hpp b/module-apps/application-call/ApplicationCall.hpp index 2a622f403d59634a756533263a94c354b3ccbe01..858244722a231a416c88bcc9d9549bc1ff2f190d 100644 --- a/module-apps/application-call/ApplicationCall.hpp +++ b/module-apps/application-call/ApplicationCall.hpp @@ -21,8 +21,8 @@ namespace app namespace window { - inline constexpr auto name_call = gui::name::window::main_window; - inline constexpr auto name_enterNumber = "EnterNumberWindow"; + inline constexpr auto name_enterNumber = gui::name::window::main_window; + inline constexpr auto name_call = "CallWindow"; inline constexpr auto name_emergencyCall = "EmergencyCallWindow"; inline constexpr auto name_duplicatedContact = "DuplicatedContactWindow"; inline constexpr auto name_dialogConfirm = "DialogConfirm"; diff --git a/module-apps/application-call/windows/CallWindow.cpp b/module-apps/application-call/windows/CallWindow.cpp index d3a552fe38798d60f3ec480e8be6b29f8c2ea96f..6743c86385106fecc65d6924733eb28399666d3b 100644 --- a/module-apps/application-call/windows/CallWindow.cpp +++ b/module-apps/application-call/windows/CallWindow.cpp @@ -412,6 +412,7 @@ namespace gui LOG_DEBUG("Delayed exit timer callback"); setState(State::IDLE); app::manager::Controller::switchBack(application); + application->popCurrentWindow(); return true; }; delayedExitTimer = diff --git a/module-apps/application-phonebook/models/PhonebookModel.cpp b/module-apps/application-phonebook/models/PhonebookModel.cpp index 7babcc044c4e4d1997e1e32587fe63f98151d577..b7d841311d2b84eeb698eb53f4192b88cc2dd70e 100644 --- a/module-apps/application-phonebook/models/PhonebookModel.cpp +++ b/module-apps/application-phonebook/models/PhonebookModel.cpp @@ -148,7 +148,7 @@ auto PhonebookModel::getItem(gui::Order order) -> gui::ListItem * if (item->contact && !item->contact->numbers.empty()) { const auto phoneNumber = item->contact->numbers.front().number; return app::manager::Controller::sendAction(application, - app::manager::actions::Dial, + app::manager::actions::Call, std::make_unique(phoneNumber), app::manager::OnSwitchBehaviour::RunInBackground); }