From 0ec9428917ca501d40602311f75b79bfdff0b3fd Mon Sep 17 00:00:00 2001 From: Adam Dobrowolski Date: Tue, 12 Oct 2021 14:37:58 +0200 Subject: [PATCH] [EGD-7773] Popups stack poc Stack plus minimum tests added Updated to master Removed useless or adressed TODOS Constants name applied Renamed searchModel to searchRequestModel Review applied We should remove legacy window names Bell names fixes --- .../ApplicationAlarmClock.cpp | 10 +- .../models/CustomRepeatModel.cpp | 1 + .../models/NewEditAlarmModel.cpp | 1 + .../windows/AlarmClockOptions.cpp | 1 + .../windows/CustomRepeatWindow.hpp | 1 + .../application-calendar/widgets/DayLabel.cpp | 1 + .../application-call/ApplicationCall.cpp | 16 +- .../application-call/ApplicationCall.hpp | 2 +- .../ApplicationCallLog.cpp | 11 +- .../application-clock/ApplicationClock.cpp | 100 ---- .../application-clock/ApplicationClock.hpp | 51 -- .../ApplicationDesktop.cpp | 12 +- .../ApplicationDesktop.hpp | 2 - .../windows/ChargingBatteryWindow.cpp | 2 +- .../ApplicationMessages.cpp | 13 +- .../application-notes/ApplicationNotes.cpp | 10 +- .../windows/NotesOptions.cpp | 1 + .../ApplicationPhonebook.cpp | 40 +- .../ApplicationPhonebook.hpp | 3 + .../models/NewContactModel.cpp | 1 + .../models/SearchRequestModel.hpp | 19 + .../windows/PhonebookMainWindow.cpp | 17 +- .../windows/PhonebookMainWindow.hpp | 7 +- .../models/apps/SoundsModel.cpp | 1 + .../models/display-keypad/CategoriesModel.cpp | 1 + .../models/display-keypad/QuotesModel.cpp | 1 + .../models/network/NewApnModel.cpp | 1 + .../models/network/SimContactsImportModel.cpp | 1 + .../models/system/DateAndTimeModel.cpp | 1 + .../widgets/advanced/ColorTestListItem.cpp | 1 + .../windows/advanced/ColorTestWindow.hpp | 1 + .../bluetooth/BluetoothCheckPasskeyWindow.hpp | 1 + .../windows/bluetooth/PhoneNameWindow.hpp | 1 + .../display-keypad/QuotesAddWindow.cpp | 9 +- .../display-keypad/QuotesOptionsWindow.cpp | 3 +- .../windows/network/NewApnWindow.hpp | 1 + .../system/ChangeDateAndTimeWindow.hpp | 1 + .../ApplicationSpecialInput.cpp | 4 +- module-apps/apps-common/AppStartupReason.hpp | 14 + module-apps/apps-common/AppSwitchReason.hpp | 13 + module-apps/apps-common/ApplicationCommon.cpp | 470 +++++++----------- module-apps/apps-common/ApplicationCommon.hpp | 91 ++-- .../ApplicationCommonPopupBlueprints.cpp | 127 +++++ module-apps/apps-common/CMakeLists.txt | 7 + .../apps-common/PopupBlueprintFactory.cpp | 20 + .../apps-common/PopupBlueprintFactory.hpp | 22 + module-apps/apps-common/WindowsFactory.cpp | 3 +- .../apps-common/WindowsPopupFilter.cpp | 48 ++ .../apps-common/WindowsPopupFilter.hpp | 32 ++ module-apps/apps-common/WindowsPopupQueue.cpp | 24 + module-apps/apps-common/WindowsPopupQueue.hpp | 45 ++ .../apps-common/WindowsPopupRequest.cpp | 28 ++ .../apps-common/WindowsPopupRequest.hpp | 30 ++ module-apps/apps-common/WindowsStack.cpp | 116 +++++ module-apps/apps-common/WindowsStack.hpp | 85 ++-- .../locks/handlers/LockPolicyHandler.cpp | 1 + .../locks/handlers/PhoneLockSubject.cpp | 2 + .../apps-common/messages/AppMessage.hpp | 19 +- .../messages/AppSwitchWindowPopupMessage.hpp | 36 ++ .../options/type/OptionWithActiveIcons.cpp | 1 + module-apps/apps-common/popups/CMakeLists.txt | 1 + .../apps-common/popups/Disposition.hpp | 46 ++ module-apps/apps-common/popups/Popups.cpp | 5 + module-apps/apps-common/popups/Popups.hpp | 1 + .../popups/data/AlarmPopupRequestParams.hpp | 2 +- .../popups/data/PopupRequestParams.hpp | 20 +- .../popups/data/PopupRequestParamsBase.cpp | 29 ++ .../popups/data/PopupRequestParamsBase.hpp | 26 + .../apps-common/widgets/ActiveIconFactory.cpp | 1 + module-apps/apps-common/windows/AppWindow.hpp | 10 +- .../windows/AppWindowConstants.hpp | 9 + module-apps/tests/CMakeLists.txt | 2 + module-apps/tests/windows/CMakeLists.txt | 11 + module-apps/tests/windows/mock/TestWindow.hpp | 13 + .../tests/windows/test-WindowsPopupFilter.cpp | 87 ++++ .../tests/windows/test-WindowsPopupQueue.cpp | 101 ++++ .../tests/windows/test-WindowsStack.cpp | 260 ++++++++++ module-apps/tests/windows/tests-main.cpp | 5 + module-gui/gui/SwitchData.hpp | 8 + module-gui/gui/widgets/Window.hpp | 8 + .../model/ApplicationManagerCommon.cpp | 1 + module-utils/log/Logger.cpp | 6 +- products/BellHybrid/apps/Application.cpp | 27 +- .../ApplicationBellAlarm.cpp | 2 +- .../ApplicationBellBedtime.cpp | 2 +- .../ApplicationBellMain.cpp | 41 +- .../ApplicationBellMain.hpp | 2 +- .../windows/BellBatteryShutdownWindow.hpp | 1 + .../ApplicationBellMeditationTimer.cpp | 2 +- .../ApplicationBellOnBoarding.cpp | 14 +- .../windows/OnBoardingFinalizeWindow.cpp | 5 +- .../windows/OnBoardingFinalizeWindow.hpp | 3 +- .../ApplicationBellSettings.cpp | 2 +- .../common/windows/BellFinishedWindow.hpp | 3 +- .../BellHybrid/apps/include/Application.hpp | 7 +- products/PurePhone/apps/Application.cpp | 96 +++- .../PurePhone/apps/include/Application.hpp | 1 + 97 files changed, 1756 insertions(+), 688 deletions(-) delete mode 100644 module-apps/application-clock/ApplicationClock.cpp delete mode 100644 module-apps/application-clock/ApplicationClock.hpp create mode 100644 module-apps/application-phonebook/models/SearchRequestModel.hpp create mode 100644 module-apps/apps-common/AppStartupReason.hpp create mode 100644 module-apps/apps-common/AppSwitchReason.hpp create mode 100644 module-apps/apps-common/ApplicationCommonPopupBlueprints.cpp create mode 100644 module-apps/apps-common/PopupBlueprintFactory.cpp create mode 100644 module-apps/apps-common/PopupBlueprintFactory.hpp create mode 100644 module-apps/apps-common/WindowsPopupFilter.cpp create mode 100644 module-apps/apps-common/WindowsPopupFilter.hpp create mode 100644 module-apps/apps-common/WindowsPopupQueue.cpp create mode 100644 module-apps/apps-common/WindowsPopupQueue.hpp create mode 100644 module-apps/apps-common/WindowsPopupRequest.cpp create mode 100644 module-apps/apps-common/WindowsPopupRequest.hpp create mode 100644 module-apps/apps-common/WindowsStack.cpp create mode 100644 module-apps/apps-common/messages/AppSwitchWindowPopupMessage.hpp create mode 100644 module-apps/apps-common/popups/Disposition.hpp create mode 100644 module-apps/apps-common/popups/data/PopupRequestParamsBase.cpp create mode 100644 module-apps/apps-common/popups/data/PopupRequestParamsBase.hpp create mode 100644 module-apps/apps-common/windows/AppWindowConstants.hpp create mode 100644 module-apps/tests/windows/CMakeLists.txt create mode 100644 module-apps/tests/windows/mock/TestWindow.hpp create mode 100644 module-apps/tests/windows/test-WindowsPopupFilter.cpp create mode 100644 module-apps/tests/windows/test-WindowsPopupQueue.cpp create mode 100644 module-apps/tests/windows/test-WindowsStack.cpp create mode 100644 module-apps/tests/windows/tests-main.cpp diff --git a/module-apps/application-alarm-clock/ApplicationAlarmClock.cpp b/module-apps/application-alarm-clock/ApplicationAlarmClock.cpp index b878ce3c1..47c232582 100644 --- a/module-apps/application-alarm-clock/ApplicationAlarmClock.cpp +++ b/module-apps/application-alarm-clock/ApplicationAlarmClock.cpp @@ -41,12 +41,10 @@ namespace app auto msg = dynamic_cast(msgl); if (msg != nullptr) { - // window-specific actions - if (msg->interface == db::Interface::Name::AlarmEvents) { - for (auto &[name, window] : windowsStack.windows) { - window->onDatabaseMessage(msg); - } - } + userInterfaceDBNotification(msg, [](sys::Message *m, [[maybe_unused]] const std::string &) { + auto msg = dynamic_cast(m); + return (msg != nullptr) && msg->interface == db::Interface::Name::AlarmEvents; + }); return std::make_shared(); } diff --git a/module-apps/application-alarm-clock/models/CustomRepeatModel.cpp b/module-apps/application-alarm-clock/models/CustomRepeatModel.cpp index 2e0b0ca65..abe32b9dc 100644 --- a/module-apps/application-alarm-clock/models/CustomRepeatModel.cpp +++ b/module-apps/application-alarm-clock/models/CustomRepeatModel.cpp @@ -6,6 +6,7 @@ #include #include #include