~aleteoryx/muditaos

58dd02cff1f7e1a25d9c0cbd0c80a76f8cb90ce6 — Mateusz Grzegorzek 4 years ago 05847f0
[BH-861] Cleanup Application split - part I

1. Prepare Pure and Bell specific `Application`
   classes and add them to `app` target:

- `products/BellHybrid/apps/Application.cpp`
- `products/PurePhone/apps/Application.cpp`

2. Update `CMakeLists.txt` files.
3. Move `ApplicationBell` implementation to Bell-specific
   `Application` class and remove `ApplicationBell` files.
4. Change Bell apps parent classes from `ApplicationBell`
  to Bell-specific `Application` class.
5. Rename `Application` to `ApplicationCommon` in the rest of the files.
523 files changed, 1221 insertions(+), 1043 deletions(-)

M module-apps/CMakeLists.txt
M module-apps/application-alarm-clock/ApplicationAlarmClock.cpp
M module-apps/application-alarm-clock/models/AlarmsModel.cpp
M module-apps/application-alarm-clock/models/AlarmsModel.hpp
M module-apps/application-alarm-clock/models/AlarmsRepository.cpp
M module-apps/application-alarm-clock/models/AlarmsRepository.hpp
M module-apps/application-alarm-clock/models/CustomRepeatModel.cpp
M module-apps/application-alarm-clock/models/CustomRepeatModel.hpp
M module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp
M module-apps/application-alarm-clock/models/NewEditAlarmModel.hpp
M module-apps/application-alarm-clock/widgets/AlarmOptionsItem.cpp
M module-apps/application-alarm-clock/widgets/AlarmOptionsItem.hpp
M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp
M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp
M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp
M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.hpp
M module-apps/application-alarm-clock/windows/AlarmClockOptions.cpp
M module-apps/application-alarm-clock/windows/AlarmClockOptions.hpp
M module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp
M module-apps/application-alarm-clock/windows/CustomRepeatWindow.hpp
M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp
M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.hpp
M module-apps/application-antenna/ApplicationAntenna.cpp
M module-apps/application-antenna/include/application-antenna/ApplicationAntenna.hpp
M module-apps/application-antenna/windows/AlgoParamsWindow.cpp
M module-apps/application-antenna/windows/AlgoParamsWindow.hpp
M module-apps/application-antenna/windows/AntennaMainWindow.cpp
M module-apps/application-antenna/windows/AntennaMainWindow.hpp
M module-apps/application-antenna/windows/ScanModesWindow.cpp
M module-apps/application-antenna/windows/ScanModesWindow.hpp
M module-apps/application-calculator/ApplicationCalculator.cpp
M module-apps/application-calculator/CMakeLists.txt
M module-apps/application-calculator/include/application-calculator/ApplicationCalculator.hpp
M module-apps/application-calculator/widgets/MathOperationsBox.hpp
M module-apps/application-calculator/windows/CalculatorMainWindow.cpp
M module-apps/application-calculator/windows/CalculatorMainWindow.hpp
M module-apps/application-calendar/ApplicationCalendar.cpp
M module-apps/application-calendar/CMakeLists.txt
M module-apps/application-calendar/widgets/DayLabel.cpp
M module-apps/application-calendar/widgets/DayLabel.hpp
M module-apps/application-calendar/widgets/MonthBox.cpp
M module-apps/application-calendar/widgets/MonthBox.hpp
M module-apps/application-calendar/windows/CalendarMainWindow.cpp
M module-apps/application-calendar/windows/CalendarMainWindow.hpp
M module-apps/application-call/ApplicationCall.cpp
M module-apps/application-call/CMakeLists.txt
M module-apps/application-call/windows/CallWindow.cpp
M module-apps/application-call/windows/CallWindow.hpp
M module-apps/application-call/windows/EmergencyCallWindow.cpp
M module-apps/application-call/windows/EmergencyCallWindow.hpp
M module-apps/application-call/windows/EnterNumberWindow.cpp
M module-apps/application-call/windows/EnterNumberWindow.hpp
M module-apps/application-call/windows/NumberWindow.cpp
M module-apps/application-call/windows/NumberWindow.hpp
M module-apps/application-calllog/ApplicationCallLog.cpp
M module-apps/application-calllog/CMakeLists.txt
M module-apps/application-calllog/CalllogModel.cpp
M module-apps/application-calllog/CalllogModel.hpp
M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp
M module-apps/application-calllog/windows/CallLogDetailsWindow.hpp
M module-apps/application-calllog/windows/CallLogMainWindow.cpp
M module-apps/application-calllog/windows/CallLogMainWindow.hpp
M module-apps/application-clock/ApplicationClock.cpp
M module-apps/application-clock/windows/ClockMainWindow.cpp
M module-apps/application-clock/windows/ClockMainWindow.hpp
M module-apps/application-desktop/ApplicationDesktop.cpp
M module-apps/application-desktop/CMakeLists.txt
M module-apps/application-desktop/include/application-desktop/DBNotificationsHandler.hpp
M module-apps/application-desktop/models/ActiveNotificationsModel.cpp
M module-apps/application-desktop/widgets/DBNotificationsHandler.cpp
M module-apps/application-desktop/widgets/DesktopInputWidget.cpp
M module-apps/application-desktop/widgets/DesktopInputWidget.hpp
M module-apps/application-desktop/windows/ChargingBatteryWindow.cpp
M module-apps/application-desktop/windows/ChargingBatteryWindow.hpp
M module-apps/application-desktop/windows/DeadBatteryWindow.cpp
M module-apps/application-desktop/windows/DeadBatteryWindow.hpp
M module-apps/application-desktop/windows/DesktopMainWindow.cpp
M module-apps/application-desktop/windows/DesktopMainWindow.hpp
M module-apps/application-desktop/windows/LogoWindow.cpp
M module-apps/application-desktop/windows/LogoWindow.hpp
M module-apps/application-desktop/windows/MenuWindow.cpp
M module-apps/application-desktop/windows/MenuWindow.hpp
M module-apps/application-desktop/windows/MmiInternalMsgWindow.cpp
M module-apps/application-desktop/windows/MmiInternalMsgWindow.hpp
M module-apps/application-desktop/windows/MmiPullWindow.cpp
M module-apps/application-desktop/windows/MmiPullWindow.hpp
M module-apps/application-desktop/windows/MmiPushWindow.cpp
M module-apps/application-desktop/windows/MmiPushWindow.hpp
M module-apps/application-desktop/windows/Reboot.cpp
M module-apps/application-desktop/windows/Reboot.hpp
M module-apps/application-meditation/ApplicationMeditation.cpp
M module-apps/application-meditation/CMakeLists.txt
M module-apps/application-meditation/windows/MeditationOptionsWindows.cpp
M module-apps/application-meditation/windows/MeditationOptionsWindows.hpp
M module-apps/application-meditation/windows/MeditationTimerWindow.cpp
M module-apps/application-meditation/windows/MeditationTimerWindow.hpp
M module-apps/application-meditation/windows/MeditationWindow.cpp
M module-apps/application-meditation/windows/MeditationWindow.hpp
M module-apps/application-messages/ApplicationMessages.cpp
M module-apps/application-messages/CMakeLists.txt
M module-apps/application-messages/models/BaseThreadsRecordModel.cpp
M module-apps/application-messages/models/BaseThreadsRecordModel.hpp
M module-apps/application-messages/models/SMSTemplateModel.cpp
M module-apps/application-messages/models/SMSTemplateModel.hpp
M module-apps/application-messages/models/SMSThreadModel.cpp
M module-apps/application-messages/models/SMSThreadModel.hpp
M module-apps/application-messages/models/ThreadsModel.cpp
M module-apps/application-messages/models/ThreadsModel.hpp
M module-apps/application-messages/models/ThreadsSearchResultsModel.cpp
M module-apps/application-messages/models/ThreadsSearchResultsModel.hpp
M module-apps/application-messages/widgets/SMSInputWidget.cpp
M module-apps/application-messages/widgets/SMSInputWidget.hpp
M module-apps/application-messages/widgets/SMSOutputWidget.cpp
M module-apps/application-messages/widgets/SMSOutputWidget.hpp
M module-apps/application-messages/windows/MessagesMainWindow.cpp
M module-apps/application-messages/windows/MessagesMainWindow.hpp
M module-apps/application-messages/windows/NewMessage.cpp
M module-apps/application-messages/windows/NewMessage.hpp
M module-apps/application-messages/windows/SMSTemplatesWindow.cpp
M module-apps/application-messages/windows/SMSTemplatesWindow.hpp
M module-apps/application-messages/windows/SMSThreadViewWindow.cpp
M module-apps/application-messages/windows/SMSThreadViewWindow.hpp
M module-apps/application-messages/windows/SearchResults.cpp
M module-apps/application-messages/windows/SearchResults.hpp
M module-apps/application-messages/windows/SearchStart.cpp
M module-apps/application-messages/windows/SearchStart.hpp
M module-apps/application-music-player/ApplicationMusicPlayer.cpp
M module-apps/application-music-player/CMakeLists.txt
M module-apps/application-music-player/models/SongsModelInterface.hpp
M module-apps/application-music-player/models/SongsRepository.cpp
M module-apps/application-music-player/models/SongsRepository.hpp
M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp
M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp
M module-apps/application-notes/ApplicationNotes.cpp
M module-apps/application-notes/CMakeLists.txt
M module-apps/application-notes/model/NotesListModel.cpp
M module-apps/application-notes/model/NotesListModel.hpp
M module-apps/application-notes/model/NotesListProvider.hpp
M module-apps/application-notes/model/NotesRepository.cpp
M module-apps/application-notes/model/NotesRepository.hpp
M module-apps/application-notes/model/NotesSearchListModel.hpp
M module-apps/application-notes/windows/NoteCreateWindow.cpp
M module-apps/application-notes/windows/NoteCreateWindow.hpp
M module-apps/application-notes/windows/NoteEditWindow.cpp
M module-apps/application-notes/windows/NoteEditWindow.hpp
M module-apps/application-notes/windows/NoteMainWindow.cpp
M module-apps/application-notes/windows/NoteMainWindow.hpp
M module-apps/application-notes/windows/NotePreviewWindow.cpp
M module-apps/application-notes/windows/NotePreviewWindow.hpp
M module-apps/application-notes/windows/NotesOptions.cpp
M module-apps/application-notes/windows/NotesOptions.hpp
M module-apps/application-notes/windows/SearchEngineWindow.cpp
M module-apps/application-notes/windows/SearchEngineWindow.hpp
M module-apps/application-notes/windows/SearchResultsWindow.cpp
M module-apps/application-notes/windows/SearchResultsWindow.hpp
M module-apps/application-onboarding/ApplicationOnBoarding.cpp
M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp
M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.hpp
M module-apps/application-onboarding/windows/EULALicenseWindow.cpp
M module-apps/application-onboarding/windows/EULALicenseWindow.hpp
M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp
M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.hpp
M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp
M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.hpp
M module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp
M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp
M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp
M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp
M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp
M module-apps/application-onboarding/windows/SkipDialogWindow.cpp
M module-apps/application-onboarding/windows/SkipDialogWindow.hpp
M module-apps/application-onboarding/windows/StartConfigurationWindow.cpp
M module-apps/application-onboarding/windows/StartConfigurationWindow.hpp
M module-apps/application-onboarding/windows/UpdateDialogWindow.cpp
M module-apps/application-onboarding/windows/UpdateDialogWindow.hpp
M module-apps/application-phonebook/ApplicationPhonebook.cpp
M module-apps/application-phonebook/CMakeLists.txt
M module-apps/application-phonebook/models/ContactDetailsModel.cpp
M module-apps/application-phonebook/models/ContactDetailsModel.hpp
M module-apps/application-phonebook/models/NewContactModel.cpp
M module-apps/application-phonebook/models/NewContactModel.hpp
M module-apps/application-phonebook/models/PhonebookModel.cpp
M module-apps/application-phonebook/models/PhonebookModel.hpp
M module-apps/application-phonebook/widgets/InformationWidget.cpp
M module-apps/application-phonebook/widgets/InformationWidget.hpp
M module-apps/application-phonebook/widgets/PhonebookListView.hpp
M module-apps/application-phonebook/windows/PhonebookContactDetails.cpp
M module-apps/application-phonebook/windows/PhonebookContactDetails.hpp
M module-apps/application-phonebook/windows/PhonebookContactOptions.cpp
M module-apps/application-phonebook/windows/PhonebookContactOptions.hpp
M module-apps/application-phonebook/windows/PhonebookIceContacts.cpp
M module-apps/application-phonebook/windows/PhonebookIceContacts.hpp
M module-apps/application-phonebook/windows/PhonebookMainWindow.cpp
M module-apps/application-phonebook/windows/PhonebookMainWindow.hpp
M module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp
M module-apps/application-phonebook/windows/PhonebookNamecardOptions.hpp
M module-apps/application-phonebook/windows/PhonebookNewContact.cpp
M module-apps/application-phonebook/windows/PhonebookNewContact.hpp
M module-apps/application-phonebook/windows/PhonebookSearch.cpp
M module-apps/application-phonebook/windows/PhonebookSearch.hpp
M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp
M module-apps/application-phonebook/windows/PhonebookSearchResults.hpp
M module-apps/application-settings/ApplicationSettings.cpp
M module-apps/application-settings/CMakeLists.txt
M module-apps/application-settings/include/application-settings/ApplicationSettings.hpp
M module-apps/application-settings/models/advanced/ColorTestModel.cpp
M module-apps/application-settings/models/advanced/ColorTestModel.hpp
M module-apps/application-settings/models/apps/AbstractSoundsModel.hpp
M module-apps/application-settings/models/apps/AudioSettingsModel.cpp
M module-apps/application-settings/models/apps/AudioSettingsModel.hpp
M module-apps/application-settings/models/apps/SoundsModel.cpp
M module-apps/application-settings/models/apps/SoundsModel.hpp
M module-apps/application-settings/models/apps/SoundsPlayer.cpp
M module-apps/application-settings/models/apps/SoundsPlayer.hpp
M module-apps/application-settings/models/display-keypad/CategoriesModel.cpp
M module-apps/application-settings/models/display-keypad/CategoriesModel.hpp
M module-apps/application-settings/models/display-keypad/QuotesModel.cpp
M module-apps/application-settings/models/display-keypad/QuotesModel.hpp
M module-apps/application-settings/models/network/ApnSettingsModel.cpp
M module-apps/application-settings/models/network/ApnSettingsModel.hpp
M module-apps/application-settings/models/network/NewApnModel.cpp
M module-apps/application-settings/models/network/NewApnModel.hpp
M module-apps/application-settings/models/network/SimContactsImportModel.cpp
M module-apps/application-settings/models/network/SimContactsImportModel.hpp
M module-apps/application-settings/models/network/SimContactsRepository.cpp
M module-apps/application-settings/models/network/SimContactsRepository.hpp
M module-apps/application-settings/models/system/DateAndTimeModel.cpp
M module-apps/application-settings/models/system/DateAndTimeModel.hpp
M module-apps/application-settings/models/system/TechnicalInformationModel.hpp
M module-apps/application-settings/models/system/TechnicalInformationRepository.cpp
M module-apps/application-settings/models/system/TechnicalInformationRepository.hpp
M module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.cpp
M module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.hpp
M module-apps/application-settings/presenter/system/TechnicalWindowPresenter.cpp
M module-apps/application-settings/presenter/system/TechnicalWindowPresenter.hpp
M module-apps/application-settings/widgets/advanced/ColorTestListItem.cpp
M module-apps/application-settings/widgets/advanced/ColorTestListItem.hpp
M module-apps/application-settings/widgets/advanced/ColorTestListView.cpp
M module-apps/application-settings/widgets/advanced/ColorTestListView.hpp
M module-apps/application-settings/windows/BaseSettingsWindow.cpp
M module-apps/application-settings/windows/BaseSettingsWindow.hpp
M module-apps/application-settings/windows/SettingsMainWindow.cpp
M module-apps/application-settings/windows/SettingsMainWindow.hpp
M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp
M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.hpp
M module-apps/application-settings/windows/advanced/ColorTestWindow.cpp
M module-apps/application-settings/windows/advanced/ColorTestWindow.hpp
M module-apps/application-settings/windows/advanced/EinkModeWindow.cpp
M module-apps/application-settings/windows/advanced/EinkModeWindow.hpp
M module-apps/application-settings/windows/advanced/InformationWindow.cpp
M module-apps/application-settings/windows/advanced/InformationWindow.hpp
M module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.cpp
M module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.hpp
M module-apps/application-settings/windows/advanced/UITestWindow.cpp
M module-apps/application-settings/windows/advanced/UITestWindow.hpp
M module-apps/application-settings/windows/apps/AlarmClockWindow.cpp
M module-apps/application-settings/windows/apps/AlarmClockWindow.hpp
M module-apps/application-settings/windows/apps/AppsWindow.cpp
M module-apps/application-settings/windows/apps/AppsWindow.hpp
M module-apps/application-settings/windows/apps/MessagesWindow.cpp
M module-apps/application-settings/windows/apps/MessagesWindow.hpp
M module-apps/application-settings/windows/apps/PhoneWindow.cpp
M module-apps/application-settings/windows/apps/PhoneWindow.hpp
M module-apps/application-settings/windows/apps/SoundSelectWindow.cpp
M module-apps/application-settings/windows/apps/SoundSelectWindow.hpp
M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp
M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.hpp
M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp
M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.hpp
M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp
M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.hpp
M module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp
M module-apps/application-settings/windows/bluetooth/BluetoothWindow.hpp
M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp
M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.hpp
M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp
M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp
M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp
M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp
M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp
M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp
M module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp
M module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp
M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp
M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp
M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp
M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp
M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.hpp
M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.hpp
M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.hpp
M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp
M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp
M module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp
M module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp
M module-apps/application-settings/windows/network/ApnOptionsWindow.cpp
M module-apps/application-settings/windows/network/ApnOptionsWindow.hpp
M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp
M module-apps/application-settings/windows/network/ApnSettingsWindow.hpp
M module-apps/application-settings/windows/network/NetworkWindow.cpp
M module-apps/application-settings/windows/network/NetworkWindow.hpp
M module-apps/application-settings/windows/network/NewApnWindow.cpp
M module-apps/application-settings/windows/network/NewApnWindow.hpp
M module-apps/application-settings/windows/network/SimCardsWindow.cpp
M module-apps/application-settings/windows/network/SimCardsWindow.hpp
M module-apps/application-settings/windows/network/SimContactsImportWindow.cpp
M module-apps/application-settings/windows/network/SimContactsImportWindow.hpp
M module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp
M module-apps/application-settings/windows/network/SimPINSettingsWindow.hpp
M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp
M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp
M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp
M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.hpp
M module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp
M module-apps/application-settings/windows/phone-modes/OfflineWindow.hpp
M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp
M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.hpp
M module-apps/application-settings/windows/security/AutolockWindow.cpp
M module-apps/application-settings/windows/security/AutolockWindow.hpp
M module-apps/application-settings/windows/security/SecurityMainWindow.cpp
M module-apps/application-settings/windows/security/SecurityMainWindow.hpp
M module-apps/application-settings/windows/system/CertificationWindow.cpp
M module-apps/application-settings/windows/system/CertificationWindow.hpp
M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp
M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.hpp
M module-apps/application-settings/windows/system/ChangeTimeZone.cpp
M module-apps/application-settings/windows/system/ChangeTimeZone.hpp
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp
M module-apps/application-settings/windows/system/LanguagesWindow.cpp
M module-apps/application-settings/windows/system/LanguagesWindow.hpp
M module-apps/application-settings/windows/system/SARInfoWindow.cpp
M module-apps/application-settings/windows/system/SARInfoWindow.hpp
M module-apps/application-settings/windows/system/SystemMainWindow.cpp
M module-apps/application-settings/windows/system/SystemMainWindow.hpp
M module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp
M module-apps/application-settings/windows/system/TechnicalInformationWindow.hpp
M module-apps/application-special-input/ApplicationSpecialInput.cpp
M module-apps/application-special-input/CMakeLists.txt
M module-apps/application-special-input/models/SpecialInputModel.cpp
M module-apps/application-special-input/models/SpecialInputModel.hpp
M module-apps/application-special-input/widgets/SpecialInputTableWidget.cpp
M module-apps/application-special-input/widgets/SpecialInputTableWidget.hpp
M module-apps/application-special-input/windows/SpecialInputMainWindow.cpp
M module-apps/application-special-input/windows/SpecialInputMainWindow.hpp
R module-apps/apps-common/{Application => ApplicationCommon}.cpp
R module-apps/apps-common/{Application => ApplicationCommon}.hpp
M module-apps/apps-common/ApplicationLauncher.hpp
M module-apps/apps-common/AsyncTask.cpp
M module-apps/apps-common/AsyncTask.hpp
M module-apps/apps-common/AudioOperations.cpp
M module-apps/apps-common/AudioOperations.hpp
M module-apps/apps-common/CMakeLists.txt
M module-apps/apps-common/DatabaseModel.hpp
M module-apps/apps-common/GuiTimer.cpp
M module-apps/apps-common/GuiTimer.hpp
M module-apps/apps-common/WindowsFactory.cpp
M module-apps/apps-common/WindowsFactory.hpp
M module-apps/apps-common/WindowsStack.hpp
M module-apps/apps-common/locks/handlers/LockPolicyHandler.cpp
M module-apps/apps-common/locks/handlers/LockPolicyHandler.hpp
M module-apps/apps-common/locks/windows/LockInputWindow.hpp
M module-apps/apps-common/notifications/NotificationsModel.hpp
M module-apps/apps-common/options/OptionsModel.cpp
M module-apps/apps-common/options/OptionsModel.hpp
M module-apps/apps-common/options/type/OptionCall.cpp
M module-apps/apps-common/options/type/OptionCall.hpp
M module-apps/apps-common/options/type/OptionContact.cpp
M module-apps/apps-common/options/type/OptionContact.hpp
M module-apps/apps-common/options/type/OptionSetting.hpp
M module-apps/apps-common/options/type/OptionSimple.hpp
M module-apps/apps-common/options/type/OptionWithActiveIcons.cpp
M module-apps/apps-common/options/type/OptionWithActiveIcons.hpp
M module-apps/apps-common/popups/HomeModesWindow.cpp
M module-apps/apps-common/popups/HomeModesWindow.hpp
M module-apps/apps-common/popups/PowerOffWindow.cpp
M module-apps/apps-common/popups/PowerOffWindow.hpp
M module-apps/apps-common/popups/TetheringConfirmationPopup.cpp
M module-apps/apps-common/popups/TetheringConfirmationPopup.hpp
M module-apps/apps-common/popups/TetheringNotificationPopup.cpp
M module-apps/apps-common/popups/TetheringNotificationPopup.hpp
M module-apps/apps-common/popups/TetheringOffPopup.cpp
M module-apps/apps-common/popups/TetheringOffPopup.hpp
M module-apps/apps-common/popups/TetheringPhoneModePopup.cpp
M module-apps/apps-common/popups/TetheringPhoneModePopup.hpp
M module-apps/apps-common/popups/VolumeWindow.cpp
M module-apps/apps-common/popups/VolumeWindow.hpp
M module-apps/apps-common/popups/WindowWithTimer.cpp
M module-apps/apps-common/popups/WindowWithTimer.hpp
M module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.hpp
M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.hpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.hpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp
M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.hpp
M module-apps/apps-common/popups/lock-popups/SimInfoWindow.cpp
M module-apps/apps-common/popups/lock-popups/SimInfoWindow.hpp
M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp
M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.hpp
M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp
M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.hpp
M module-apps/apps-common/popups/presenter/PowerOffPresenter.cpp
M module-apps/apps-common/popups/presenter/PowerOffPresenter.hpp
M module-apps/apps-common/widgets/ActiveIconFactory.cpp
M module-apps/apps-common/widgets/ActiveIconFactory.hpp
M module-apps/apps-common/widgets/ProgressTimerImpl.cpp
M module-apps/apps-common/widgets/ProgressTimerImpl.hpp
M module-apps/apps-common/widgets/TextWithIconsWidget.cpp
M module-apps/apps-common/widgets/TextWithIconsWidget.hpp
M module-apps/apps-common/windows/AppWindow.cpp
M module-apps/apps-common/windows/AppWindow.hpp
M module-apps/apps-common/windows/BrightnessWindow.cpp
M module-apps/apps-common/windows/BrightnessWindow.hpp
M module-apps/apps-common/windows/Dialog.cpp
M module-apps/apps-common/windows/Dialog.hpp
M module-apps/apps-common/windows/OptionWindow.cpp
M module-apps/apps-common/windows/OptionWindow.hpp
M module-services/service-appmgr/CMakeLists.txt
M module-services/service-appmgr/include/service-appmgr/messages/BaseMessage.hpp
M module-services/service-appmgr/include/service-appmgr/model/ApplicationHandle.hpp
M module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp
M module-services/service-appmgr/model/ApplicationHandle.cpp
M module-services/service-appmgr/model/ApplicationManagerCommon.cpp
M module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.cpp
M module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.hpp
M module-services/service-db/ServiceDBCommon.cpp
M module-services/service-db/agents/quotes/QuotesAgent.cpp
M module-sys/SystemManager/SystemManagerCommon.cpp
M module-sys/SystemManager/SystemManagerCommon.hpp
R products/BellHybrid/apps/{common/src/ApplicationBell => Application}.cpp
M products/BellHybrid/apps/CMakeLists.txt
M products/BellHybrid/apps/application-bell-alarm/ApplicationBellAlarm.cpp
M products/BellHybrid/apps/application-bell-alarm/CMakeLists.txt
M products/BellHybrid/apps/application-bell-alarm/include/application-bell-alarm/ApplicationBellAlarm.hpp
M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp
M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.hpp
M products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp
M products/BellHybrid/apps/application-bell-main/CMakeLists.txt
M products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp
M products/BellHybrid/apps/application-bell-main/models/TemperatureModel.cpp
M products/BellHybrid/apps/application-bell-main/models/TemperatureModel.hpp
M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp
M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp
M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp
M products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.hpp
M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp
M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.hpp
M products/BellHybrid/apps/application-bell-powernap/ApplicationBellPowerNap.cpp
M products/BellHybrid/apps/application-bell-powernap/CMakeLists.txt
M products/BellHybrid/apps/application-bell-powernap/include/application-bell-powernap/ApplicationBellPowerNap.hpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.cpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.hpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.cpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.hpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.cpp
M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.hpp
M products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.cpp
M products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.hpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.cpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.hpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.cpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.hpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.cpp
M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.hpp
M products/BellHybrid/apps/application-bell-settings/ApplicationBellSettings.cpp
M products/BellHybrid/apps/application-bell-settings/CMakeLists.txt
M products/BellHybrid/apps/application-bell-settings/include/application-bell-settings/ApplicationBellSettings.hpp
M products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.cpp
M products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.hpp
M products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.cpp
M products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.hpp
M products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.cpp
M products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.hpp
M products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.cpp
M products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.hpp
M products/BellHybrid/apps/application-bell-settings/models/alarm_settings/SnoozeListItemProvider.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.hpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.hpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp
M products/BellHybrid/apps/common/CMakeLists.txt
M products/BellHybrid/apps/common/include/common/BellFinishedWindow.hpp
M products/BellHybrid/apps/common/include/common/models/AlarmModel.hpp
M products/BellHybrid/apps/common/include/common/models/SnoozeSettingsModel.hpp
M products/BellHybrid/apps/common/include/common/popups/AlarmActivatedWindow.hpp
M products/BellHybrid/apps/common/src/AlarmModel.cpp
M products/BellHybrid/apps/common/src/BellFinishedWindow.cpp
M products/BellHybrid/apps/common/src/SnoozeSettingsModel.cpp
M products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp
R products/BellHybrid/apps/{common/include/common/ApplicationBell => include/Application}.hpp
M products/PurePhone/CMakeLists.txt
A products/PurePhone/apps/Application.cpp
A products/PurePhone/apps/CMakeLists.txt
A products/PurePhone/apps/include/Application.hpp
M products/PurePhone/services/appmgr/ApplicationManager.cpp
M products/PurePhone/test/test-settings/test-service-db-settings-api.cpp
M products/PurePhone/test/test-settings/test-service-db-settings-testapps.hpp
M products/PurePhone/test/test-settings/test-service-db-settings-testservices.hpp
M module-apps/CMakeLists.txt => module-apps/CMakeLists.txt +1 -0
@@ 84,6 84,7 @@ endif()

target_link_libraries(${PROJECT_NAME}
    PRIVATE
        app
        application-messages
        application-settings
        apps-common

M module-apps/application-alarm-clock/ApplicationAlarmClock.cpp => module-apps/application-alarm-clock/ApplicationAlarmClock.cpp +11 -9
@@ 64,33 64,35 @@ namespace app

    void ApplicationAlarmClock::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            auto alarmsRepository = std::make_unique<alarmClock::AlarmsDBRepository>(app);
            auto alarmsProvider   = std::make_shared<alarmClock::AlarmsModel>(app, std::move(alarmsRepository));
            auto presenter        = std::make_unique<alarmClock::AlarmClockMainWindowPresenter>(alarmsProvider);
            return std::make_unique<alarmClock::AlarmClockMainWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(
            style::alarmClock::window::name::newEditAlarm, [](Application *app, const std::string &name) {
            style::alarmClock::window::name::newEditAlarm, [](ApplicationCommon *app, const std::string &name) {
                auto alarmsRepository = std::make_unique<alarmClock::AlarmsDBRepository>(app);
                auto alarmsProvider = std::make_shared<alarmClock::NewEditAlarmModel>(app, std::move(alarmsRepository));
                auto presenter      = std::make_unique<alarmClock::AlarmClockEditWindowPresenter>(alarmsProvider);
                return std::make_unique<alarmClock::NewEditAlarmWindow>(app, std::move(presenter));
            });
        windowsFactory.attach(
            style::alarmClock::window::name::customRepeat, [](Application *app, const std::string &name) {
            style::alarmClock::window::name::customRepeat, [](ApplicationCommon *app, const std::string &name) {
                auto alarmsRepository = std::make_unique<alarmClock::AlarmsDBRepository>(app);
                auto alarmsProvider = std::make_shared<alarmClock::CustomRepeatModel>(app, std::move(alarmsRepository));
                auto presenter      = std::make_unique<alarmClock::CustomRepeatWindowPresenter>(alarmsProvider);
                return std::make_unique<alarmClock::CustomRepeatWindow>(app, std::move(presenter));
            });
        windowsFactory.attach(
            utils::translate("app_alarm_clock_options_title"),
            [](Application *app, const std::string &name) { return std::make_unique<gui::OptionWindow>(app, name); });
        windowsFactory.attach(utils::translate("app_alarm_clock_options_title"),
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::OptionWindow>(app, name);
                              });

        windowsFactory.attach(
            style::alarmClock::window::name::dialogYesNo,
            [](Application *app, const std::string &name) { return std::make_unique<gui::DialogYesNo>(app, name); });
        windowsFactory.attach(style::alarmClock::window::name::dialogYesNo,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::DialogYesNo>(app, name);
                              });

        attachPopups(
            {gui::popup::ID::Volume, gui::popup::ID::Tethering, gui::popup::ID::PhoneModes, gui::popup::ID::PhoneLock});

M module-apps/application-alarm-clock/models/AlarmsModel.cpp => module-apps/application-alarm-clock/models/AlarmsModel.cpp +2 -2
@@ 11,10 11,10 @@

namespace app::alarmClock
{
    AlarmsListItemProvider::AlarmsListItemProvider(Application *app) : DatabaseModel(app)
    AlarmsListItemProvider::AlarmsListItemProvider(ApplicationCommon *app) : DatabaseModel(app)
    {}

    AlarmsModel::AlarmsModel(app::Application *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository)
    AlarmsModel::AlarmsModel(app::ApplicationCommon *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository)
        : AlarmsListItemProvider(app), alarmsRepository{std::move(alarmsRepository)}
    {}


M module-apps/application-alarm-clock/models/AlarmsModel.hpp => module-apps/application-alarm-clock/models/AlarmsModel.hpp +2 -2
@@ 15,13 15,13 @@ namespace app::alarmClock
    class AlarmsListItemProvider : public app::DatabaseModel<AlarmEventRecord>, public gui::ListItemProvider
    {
      public:
        explicit AlarmsListItemProvider(app::Application *app);
        explicit AlarmsListItemProvider(app::ApplicationCommon *app);
    };

    class AlarmsModel : public AlarmsListItemProvider
    {
      public:
        AlarmsModel(app::Application *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository);
        AlarmsModel(app::ApplicationCommon *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository);

        void requestRecords(uint32_t offset, uint32_t limit) override;
        bool updateRecords(std::vector<AlarmEventRecord> records) override;

M module-apps/application-alarm-clock/models/AlarmsRepository.cpp => module-apps/application-alarm-clock/models/AlarmsRepository.cpp +1 -1
@@ 12,7 12,7 @@ namespace app::alarmClock
{
    auto async = app::AsyncRequest::createFromMessage;

    AlarmsDBRepository::AlarmsDBRepository(Application *application)
    AlarmsDBRepository::AlarmsDBRepository(ApplicationCommon *application)
        : AsyncCallbackReceiver{application}, application{application}
    {}


M module-apps/application-alarm-clock/models/AlarmsRepository.hpp => module-apps/application-alarm-clock/models/AlarmsRepository.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include "Application.hpp"
#include <apps-common/ApplicationCommon.hpp>
#include <module-db/Interface/AlarmEventRecord.hpp>

namespace app::alarmClock


@@ 26,7 26,7 @@ namespace app::alarmClock
    class AlarmsDBRepository : public AbstractAlarmsRepository, public AsyncCallbackReceiver
    {
      public:
        explicit AlarmsDBRepository(Application *app);
        explicit AlarmsDBRepository(ApplicationCommon *app);

        void getLimited(std::uint32_t offset, std::uint32_t limit, const OnGetCallback &callback) override;
        // template <class QueryType, class ResultType>


@@ 40,6 40,6 @@ namespace app::alarmClock
        void turnOffAll(const OnResultCallback &callback) override;

      private:
        Application *application;
        ApplicationCommon *application;
    };
} // namespace app::alarmClock

M module-apps/application-alarm-clock/models/CustomRepeatModel.cpp => module-apps/application-alarm-clock/models/CustomRepeatModel.cpp +1 -1
@@ 9,7 9,7 @@
namespace app::alarmClock
{

    CustomRepeatModel::CustomRepeatModel(app::Application *app,
    CustomRepeatModel::CustomRepeatModel(app::ApplicationCommon *app,
                                         std::shared_ptr<AbstractAlarmsRepository> alarmsRepository)
        : application(app), alarmsRepository{std::move(alarmsRepository)}
    {}

M module-apps/application-alarm-clock/models/CustomRepeatModel.hpp => module-apps/application-alarm-clock/models/CustomRepeatModel.hpp +2 -2
@@ 25,12 25,12 @@ namespace app::alarmClock

    class CustomRepeatModel : public CustomRepeatListItemProvider
    {
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        std::shared_ptr<AbstractAlarmsRepository> alarmsRepository;
        void createData(const WeekDaysRepeatData &data);

      public:
        CustomRepeatModel(app::Application *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository);
        CustomRepeatModel(app::ApplicationCommon *app, std::shared_ptr<AbstractAlarmsRepository> alarmsRepository);

        [[nodiscard]] unsigned int getMinimalItemSpaceRequired() const override;
        [[nodiscard]] unsigned int requestRecordsCount() override;

M module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp => module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp +1 -1
@@ 9,7 9,7 @@

namespace app::alarmClock
{
    NewEditAlarmModel::NewEditAlarmModel(app::Application *app,
    NewEditAlarmModel::NewEditAlarmModel(app::ApplicationCommon *app,
                                         std::shared_ptr<AbstractAlarmsRepository> alarmsRepository,
                                         bool mode24H)
        : application(app), alarmsRepository{std::move(alarmsRepository)}, mode24H(mode24H)

M module-apps/application-alarm-clock/models/NewEditAlarmModel.hpp => module-apps/application-alarm-clock/models/NewEditAlarmModel.hpp +2 -2
@@ 26,13 26,13 @@ namespace app::alarmClock

    class NewEditAlarmModel : public AlarmsInternalListItemProvider
    {
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        std::shared_ptr<AbstractAlarmsRepository> alarmsRepository;
        gui::AlarmInternalListItem *repeatOption = nullptr;
        bool mode24H = false;

      public:
        NewEditAlarmModel(app::Application *app,
        NewEditAlarmModel(app::ApplicationCommon *app,
                          std::shared_ptr<AbstractAlarmsRepository> alarmsRepository,
                          bool mode24H = false);


M module-apps/application-alarm-clock/widgets/AlarmOptionsItem.cpp => module-apps/application-alarm-clock/widgets/AlarmOptionsItem.cpp +1 -1
@@ 12,7 12,7 @@
namespace gui
{

    AlarmOptionsItem::AlarmOptionsItem(app::Application *app,
    AlarmOptionsItem::AlarmOptionsItem(app::ApplicationCommon *app,
                                       AlarmOptionItemName itemName,
                                       std::function<void(const UTF8 &)> bottomBarTemporaryMode,
                                       std::function<void()> bottomBarRestoreFromTemporaryMode)

M module-apps/application-alarm-clock/widgets/AlarmOptionsItem.hpp => module-apps/application-alarm-clock/widgets/AlarmOptionsItem.hpp +4 -3
@@ 2,7 2,8 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once
#include "Application.hpp"

#include <apps-common/ApplicationCommon.hpp>
#include "AlarmInternalListItem.hpp"
#include "application-alarm-clock/data/AlarmsData.hpp"
#include <apps-common/AudioOperations.hpp>


@@ 23,7 24,7 @@ namespace gui
            Stop,
            Play
        };
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        gui::VBox *vBox               = nullptr;
        gui::HBox *hBox               = nullptr;
        gui::Label *optionLabel       = nullptr;


@@ 50,7 51,7 @@ namespace gui
        std::vector<tags::fetcher::Tags> getMusicFilesList();

      public:
        AlarmOptionsItem(app::Application *app,
        AlarmOptionsItem(app::ApplicationCommon *app,
                         AlarmOptionItemName itemName,
                         std::function<void(const UTF8 &text)> bottomBarTemporaryMode = nullptr,
                         std::function<void()> bottomBarRestoreFromTemporaryMode      = nullptr);

M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp => module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.cpp +1 -1
@@ 16,7 16,7 @@ namespace gui
        {WeekDayIso::Saturday, style::strings::common::Saturday},
        {WeekDayIso::Sunday, style::strings::common::Sunday}};

    CustomCheckBoxWithLabel::CustomCheckBoxWithLabel(app::Application *app,
    CustomCheckBoxWithLabel::CustomCheckBoxWithLabel(app::ApplicationCommon *app,
                                                     const std::string &description,
                                                     const WeekDaysRepeatData &data)
        : application(app), checkBoxData(data)

M module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp => module-apps/application-alarm-clock/widgets/CustomCheckBoxWithLabel.hpp +5 -3
@@ 5,7 5,7 @@

#include "AlarmInternalListItem.hpp"
#include "application-alarm-clock/data/AlarmsData.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "application-calendar/data/CalendarData.hpp"
#include <BoxLayout.hpp>
#include <CheckBox.hpp>


@@ 15,7 15,7 @@ namespace gui
    class CustomCheckBoxWithLabel : public AlarmInternalListItem
    {
        gui::HBox *hBox               = nullptr;
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        gui::Label *descriptionLabel  = nullptr;
        gui::CheckBox *checkBox       = nullptr;
        WeekDaysRepeatData checkBoxData;


@@ 24,7 24,9 @@ namespace gui
        void applyCallbacks();

      public:
        CustomCheckBoxWithLabel(app::Application *app, const std::string &description, const WeekDaysRepeatData &data);
        CustomCheckBoxWithLabel(app::ApplicationCommon *app,
                                const std::string &description,
                                const WeekDaysRepeatData &data);

        static const std::map<WeekDayIso, std::string> weekDays;
    };

M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp => module-apps/application-alarm-clock/windows/AlarmClockMainWindow.cpp +1 -1
@@ 16,7 16,7 @@ namespace app::alarmClock
{

    AlarmClockMainWindow::AlarmClockMainWindow(
        app::Application *app, std::unique_ptr<AlarmClockMainWindowContract::Presenter> &&windowPresenter)
        app::ApplicationCommon *app, std::unique_ptr<AlarmClockMainWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, gui::name::window::main_window), presenter{std::move(windowPresenter)}
    {
        presenter->attach(this);

M module-apps/application-alarm-clock/windows/AlarmClockMainWindow.hpp => module-apps/application-alarm-clock/windows/AlarmClockMainWindow.hpp +1 -1
@@ 21,7 21,7 @@ namespace app::alarmClock
        void onListFilled();

      public:
        AlarmClockMainWindow(app::Application *app,
        AlarmClockMainWindow(app::ApplicationCommon *app,
                             std::unique_ptr<AlarmClockMainWindowContract::Presenter> &&windowPresenter);
        ~AlarmClockMainWindow() noexcept override;


M module-apps/application-alarm-clock/windows/AlarmClockOptions.cpp => module-apps/application-alarm-clock/windows/AlarmClockOptions.cpp +2 -2
@@ 20,7 20,7 @@ namespace app::alarmClock
        }

        void removeAlarm(const AlarmEventRecord &record,
                         Application *application,
                         ApplicationCommon *application,
                         AbstractAlarmsRepository &alarmsRepository)
        {
            auto metaData = std::make_unique<gui::DialogMetadataMessage>(


@@ 38,7 38,7 @@ namespace app::alarmClock
        }
    } // namespace

    std::list<gui::Option> alarmsListOptions(Application *application,
    std::list<gui::Option> alarmsListOptions(ApplicationCommon *application,
                                             const AlarmEventRecord &record,
                                             AbstractAlarmsRepository &alarmsRepository)
    {

M module-apps/application-alarm-clock/windows/AlarmClockOptions.hpp => module-apps/application-alarm-clock/windows/AlarmClockOptions.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui

namespace app::alarmClock
{
    std::list<gui::Option> alarmsListOptions(Application *application,
    std::list<gui::Option> alarmsListOptions(ApplicationCommon *application,
                                             const AlarmEventRecord &record,
                                             AbstractAlarmsRepository &alarmsRepository);
}

M module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp => module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp +1 -1
@@ 6,7 6,7 @@
namespace app::alarmClock
{

    CustomRepeatWindow::CustomRepeatWindow(app::Application *app,
    CustomRepeatWindow::CustomRepeatWindow(app::ApplicationCommon *app,
                                           std::unique_ptr<CustomRepeatWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, style::alarmClock::window::name::customRepeat), presenter{std::move(windowPresenter)}
    {

M module-apps/application-alarm-clock/windows/CustomRepeatWindow.hpp => module-apps/application-alarm-clock/windows/CustomRepeatWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace app::alarmClock
        WeekDaysRepeatData weekDaysOptData;

      public:
        CustomRepeatWindow(app::Application *app,
        CustomRepeatWindow(app::ApplicationCommon *app,
                           std::unique_ptr<CustomRepeatWindowContract::Presenter> &&windowPresenter);

        void onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) override;

M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp => module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp +1 -1
@@ 9,7 9,7 @@
namespace app::alarmClock
{

    NewEditAlarmWindow::NewEditAlarmWindow(app::Application *app,
    NewEditAlarmWindow::NewEditAlarmWindow(app::ApplicationCommon *app,
                                           std::unique_ptr<AlarmClockEditWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, style::alarmClock::window::name::newEditAlarm), presenter{std::move(windowPresenter)}
    {

M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.hpp => module-apps/application-alarm-clock/windows/NewEditAlarmWindow.hpp +1 -1
@@ 23,7 23,7 @@ namespace app::alarmClock
        std::unique_ptr<AlarmClockEditWindowContract::Presenter> presenter;

      public:
        NewEditAlarmWindow(app::Application *app,
        NewEditAlarmWindow(app::ApplicationCommon *app,
                           std::unique_ptr<AlarmClockEditWindowContract::Presenter> &&windowPresenter);

        bool handleSwitchData(gui::SwitchData *data) override;

M module-apps/application-antenna/ApplicationAntenna.cpp => module-apps/application-antenna/ApplicationAntenna.cpp +3 -3
@@ 151,13 151,13 @@ namespace app
    void ApplicationAntenna::createUserInterface()
    {
        using namespace gui::name::window;
        windowsFactory.attach(main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AntennaMainWindow>(app);
        });
        windowsFactory.attach(scan_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(scan_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ScanModesWindow>(app);
        });
        windowsFactory.attach(algo_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(algo_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AlgoParamsWindow>(app);
        });


M module-apps/application-antenna/include/application-antenna/ApplicationAntenna.hpp => module-apps/application-antenna/include/application-antenna/ApplicationAntenna.hpp +1 -1
@@ 4,7 4,7 @@
#pragma once

#include <windows/AppWindow.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-sys/Timers/TimerHandle.hpp>
#include <service-cellular/CellularServiceAPI.hpp>


M module-apps/application-antenna/windows/AlgoParamsWindow.cpp => module-apps/application-antenna/windows/AlgoParamsWindow.cpp +1 -1
@@ 17,7 17,7 @@ using StringList = std::list<std::string>;
namespace gui
{

    AlgoParamsWindow::AlgoParamsWindow(app::Application *app) : AppWindow(app, gui::name::window::algo_window)
    AlgoParamsWindow::AlgoParamsWindow(app::ApplicationCommon *app) : AppWindow(app, gui::name::window::algo_window)
    {
        buildInterface();
    }

M module-apps/application-antenna/windows/AlgoParamsWindow.hpp => module-apps/application-antenna/windows/AlgoParamsWindow.hpp +2 -2
@@ 4,7 4,7 @@
#pragma once

#include <application-antenna/ApplicationAntenna.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/windows/AppWindow.hpp>
#include <module-gui/gui/widgets/Text.hpp>



@@ 39,7 39,7 @@ namespace gui
        void updateAntennaLabel(bsp::cellular::antenna antenna);

      public:
        AlgoParamsWindow(app::Application *app);
        AlgoParamsWindow(app::ApplicationCommon *app);

        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-antenna/windows/AntennaMainWindow.cpp => module-apps/application-antenna/windows/AntennaMainWindow.cpp +1 -1
@@ 25,7 25,7 @@
namespace gui
{

    AntennaMainWindow::AntennaMainWindow(app::Application *app) : AppWindow(app, gui::name::window::main_window)
    AntennaMainWindow::AntennaMainWindow(app::ApplicationCommon *app) : AppWindow(app, gui::name::window::main_window)
    {
        buildInterface();
    }

M module-apps/application-antenna/windows/AntennaMainWindow.hpp => module-apps/application-antenna/windows/AntennaMainWindow.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/windows/AppWindow.hpp>
#include <module-gui/gui/widgets/Text.hpp>
#include <service-antenna/ServiceAntenna.hpp>


@@ 42,7 42,7 @@ namespace gui
        };

      public:
        AntennaMainWindow(app::Application *app);
        AntennaMainWindow(app::ApplicationCommon *app);

        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-antenna/windows/ScanModesWindow.cpp => module-apps/application-antenna/windows/ScanModesWindow.cpp +1 -1
@@ 15,7 15,7 @@
namespace gui
{

    ScanModesWindow::ScanModesWindow(app::Application *app) : AppWindow(app, gui::name::window::scan_window)
    ScanModesWindow::ScanModesWindow(app::ApplicationCommon *app) : AppWindow(app, gui::name::window::scan_window)
    {
        buildInterface();
    }

M module-apps/application-antenna/windows/ScanModesWindow.hpp => module-apps/application-antenna/windows/ScanModesWindow.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/windows/AppWindow.hpp>
#include <module-gui/gui/widgets/Text.hpp>



@@ 40,7 40,7 @@ namespace gui
        gui::Label *addSpacer(void);

      public:
        ScanModesWindow(app::Application *app);
        ScanModesWindow(app::ApplicationCommon *app);

        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-calculator/ApplicationCalculator.cpp => module-apps/application-calculator/ApplicationCalculator.cpp +1 -1
@@ 34,7 34,7 @@ namespace app

    void ApplicationCalculator::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CalculatorMainWindow>(app, name);
        });


M module-apps/application-calculator/CMakeLists.txt => module-apps/application-calculator/CMakeLists.txt +1 -0
@@ 38,6 38,7 @@ target_link_libraries(application-calculator
    PUBLIC
        apps-common
    PRIVATE
        app
        i18n
        Microsoft.GSL::GSL
        module-gui

M module-apps/application-calculator/include/application-calculator/ApplicationCalculator.hpp => module-apps/application-calculator/include/application-calculator/ApplicationCalculator.hpp +1 -1
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <Application.hpp>

namespace app
{

M module-apps/application-calculator/widgets/MathOperationsBox.hpp => module-apps/application-calculator/widgets/MathOperationsBox.hpp +1 -1
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-gui/gui/widgets/GridLayout.hpp>
#include <module-gui/gui/widgets/Item.hpp>


M module-apps/application-calculator/windows/CalculatorMainWindow.cpp => module-apps/application-calculator/windows/CalculatorMainWindow.cpp +1 -1
@@ 8,7 8,7 @@
namespace gui
{

    CalculatorMainWindow::CalculatorMainWindow(app::Application *app, std::string name) : AppWindow(app, name)
    CalculatorMainWindow::CalculatorMainWindow(app::ApplicationCommon *app, std::string name) : AppWindow(app, name)
    {
        buildInterface();
    }

M module-apps/application-calculator/windows/CalculatorMainWindow.hpp => module-apps/application-calculator/windows/CalculatorMainWindow.hpp +2 -2
@@ 5,7 5,7 @@

#include <data/CalculatorInputProcessor.hpp>
#include <widgets/MathOperationsBox.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/windows/AppWindow.hpp>
#include <module-gui/gui/widgets/Text.hpp>



@@ 20,7 20,7 @@ namespace gui
        void setupInputProcessing();

      public:
        CalculatorMainWindow(app::Application *app, std::string name);
        CalculatorMainWindow(app::ApplicationCommon *app, std::string name);

        ~CalculatorMainWindow() override = default;
        void buildInterface() override;

M module-apps/application-calendar/ApplicationCalendar.cpp => module-apps/application-calendar/ApplicationCalendar.cpp +1 -1
@@ 40,7 40,7 @@ namespace app

    void ApplicationCalendar::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CalendarMainWindow>(app, name);
        });


M module-apps/application-calendar/CMakeLists.txt => module-apps/application-calendar/CMakeLists.txt +1 -0
@@ 49,6 49,7 @@ target_link_libraries(application-calendar
		time-constants

	PRIVATE
		app
		service-appmgr
		service-db
		service-time

M module-apps/application-calendar/widgets/DayLabel.cpp => module-apps/application-calendar/widgets/DayLabel.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    DayLabel::DayLabel(app::Application *app,
    DayLabel::DayLabel(app::ApplicationCommon *app,
                       gui::Item *parent,
                       const uint32_t &cellIndex,
                       const uint32_t &firstWeekOffset,

M module-apps/application-calendar/widgets/DayLabel.hpp => module-apps/application-calendar/widgets/DayLabel.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <gui/widgets/BoxLayout.hpp>

namespace gui


@@ 17,7 17,7 @@ namespace gui
        gui::Image *dotImage  = nullptr;

      public:
        DayLabel(app::Application *app,
        DayLabel(app::ApplicationCommon *app,
                 gui::Item *parent,
                 const uint32_t &cellIndex,
                 const uint32_t &firstWeekOffset,

M module-apps/application-calendar/widgets/MonthBox.cpp => module-apps/application-calendar/widgets/MonthBox.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    MonthBox::MonthBox(app::Application *app,
    MonthBox::MonthBox(app::ApplicationCommon *app,
                       gui::Item *parent,
                       const int &offsetTop,
                       const uint32_t &width,

M module-apps/application-calendar/widgets/MonthBox.hpp => module-apps/application-calendar/widgets/MonthBox.hpp +2 -2
@@ 5,7 5,7 @@

#include <models/MonthModel.hpp>

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <gui/widgets/GridLayout.hpp>

namespace gui


@@ 13,7 13,7 @@ namespace gui
    class MonthBox : public GridLayout
    {
      public:
        MonthBox(app::Application *app,
        MonthBox(app::ApplicationCommon *app,
                 gui::Item *parent,
                 const int &offsetTop,
                 const uint32_t &width,

M module-apps/application-calendar/windows/CalendarMainWindow.cpp => module-apps/application-calendar/windows/CalendarMainWindow.cpp +1 -1
@@ 12,7 12,7 @@
namespace gui
{

    CalendarMainWindow::CalendarMainWindow(app::Application *app, const std::string &name)
    CalendarMainWindow::CalendarMainWindow(app::ApplicationCommon *app, const std::string &name)
        : AppWindow(app, name), app::AsyncCallbackReceiver{app}
    {
        std::chrono::system_clock::time_point tp = std::chrono::system_clock::now();

M module-apps/application-calendar/windows/CalendarMainWindow.hpp => module-apps/application-calendar/windows/CalendarMainWindow.hpp +2 -2
@@ 8,7 8,7 @@
#include <widgets/DayLabel.hpp>
#include <widgets/MonthBox.hpp>

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/windows/AppWindow.hpp>
#include <gui/widgets/GridLayout.hpp>



@@ 42,7 42,7 @@ namespace gui
        std::unique_ptr<MonthModel> monthModel;

      public:
        CalendarMainWindow(app::Application *app, const std::string &name);
        CalendarMainWindow(app::ApplicationCommon *app, const std::string &name);

        void rebuild() override;
        void buildMonth(std::unique_ptr<MonthModel> &model);

M module-apps/application-call/ApplicationCall.cpp => module-apps/application-call/ApplicationCall.cpp +4 -4
@@ 150,16 150,16 @@ namespace app

    void ApplicationCall::createUserInterface()
    {
        windowsFactory.attach(app::window::name_enterNumber, [](Application *app, const std::string newname) {
        windowsFactory.attach(app::window::name_enterNumber, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::EnterNumberWindow>(app, static_cast<ApplicationCall *>(app));
        });
        windowsFactory.attach(app::window::name_call, [](Application *app, const std::string &name) {
        windowsFactory.attach(app::window::name_call, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CallWindow>(app, static_cast<ApplicationCall *>(app));
        });
        windowsFactory.attach(app::window::name_emergencyCall, [](Application *app, const std::string &name) {
        windowsFactory.attach(app::window::name_emergencyCall, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::EmergencyCallWindow>(app, static_cast<ApplicationCall *>(app));
        });
        windowsFactory.attach(app::window::name_dialogConfirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(app::window::name_dialogConfirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, name);
        });
        attachPopups({gui::popup::ID::Volume, gui::popup::ID::Tethering, gui::popup::ID::PhoneModes});

M module-apps/application-call/CMakeLists.txt => module-apps/application-call/CMakeLists.txt +1 -0
@@ 38,6 38,7 @@ target_sources(application-call

target_link_libraries(application-call
    PRIVATE
		app
		i18n
		libphonenumber::libphonenumber
		log

M module-apps/application-call/windows/CallWindow.cpp => module-apps/application-call/windows/CallWindow.cpp +1 -1
@@ 34,7 34,7 @@ namespace gui
    using namespace app::call;
    using AudioEvent = app::CallWindowInterface::AudioEvent;

    CallWindow::CallWindow(app::Application *app, app::CallWindowInterface *interface, std::string windowName)
    CallWindow::CallWindow(app::ApplicationCommon *app, app::CallWindowInterface *interface, std::string windowName)
        : AppWindow(app, windowName), interface(interface)
    {
        assert(interface != nullptr);

M module-apps/application-call/windows/CallWindow.hpp => module-apps/application-call/windows/CallWindow.hpp +1 -1
@@ 59,7 59,7 @@ namespace gui
        [[nodiscard]] auto getState() const noexcept -> app::call::State;

      public:
        CallWindow(app::Application *app,
        CallWindow(app::ApplicationCommon *app,
                   app::CallWindowInterface *interface,
                   std::string windowName = app::window::name_call);


M module-apps/application-call/windows/EmergencyCallWindow.cpp => module-apps/application-call/windows/EmergencyCallWindow.cpp +1 -1
@@ 9,7 9,7 @@
namespace gui
{

    EmergencyCallWindow::EmergencyCallWindow(app::Application *app, app::EnterNumberWindowInterface *interface)
    EmergencyCallWindow::EmergencyCallWindow(app::ApplicationCommon *app, app::EnterNumberWindowInterface *interface)
        : NumberWindow(app, interface, app::window::name_emergencyCall)
    {
        buildInterface();

M module-apps/application-call/windows/EmergencyCallWindow.hpp => module-apps/application-call/windows/EmergencyCallWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class EmergencyCallWindow : public NumberWindow
    {
      public:
        EmergencyCallWindow(app::Application *app, app::EnterNumberWindowInterface *interface);
        EmergencyCallWindow(app::ApplicationCommon *app, app::EnterNumberWindowInterface *interface);
        ~EmergencyCallWindow() override = default;

        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-call/windows/EnterNumberWindow.cpp => module-apps/application-call/windows/EnterNumberWindow.cpp +1 -1
@@ 18,7 18,7 @@

namespace gui
{
    EnterNumberWindow::EnterNumberWindow(app::Application *app,
    EnterNumberWindow::EnterNumberWindow(app::ApplicationCommon *app,
                                         app::EnterNumberWindowInterface *interface,
                                         std::string windowName)
        : NumberWindow(app, interface, std::move(windowName))

M module-apps/application-call/windows/EnterNumberWindow.hpp => module-apps/application-call/windows/EnterNumberWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
        gui::AddContactIcon *newContactIcon = nullptr;

      public:
        EnterNumberWindow(app::Application *app,
        EnterNumberWindow(app::ApplicationCommon *app,
                          app::EnterNumberWindowInterface *interface,
                          std::string windowName = app::window::name_enterNumber);
        ~EnterNumberWindow() override = default;

M module-apps/application-call/windows/NumberWindow.cpp => module-apps/application-call/windows/NumberWindow.cpp +1 -1
@@ 19,7 19,7 @@

namespace gui
{
    NumberWindow::NumberWindow(app::Application *app,
    NumberWindow::NumberWindow(app::ApplicationCommon *app,
                               app::EnterNumberWindowInterface *interface,
                               std::string windowName)
        : AppWindow(app, std::move(windowName)), interface(interface), currentCountry(defaultCountry),

M module-apps/application-call/windows/NumberWindow.hpp => module-apps/application-call/windows/NumberWindow.hpp +1 -1
@@ 24,7 24,7 @@ namespace gui
      public:
        using CountryCode = utils::country::Id;

        NumberWindow(app::Application *app,
        NumberWindow(app::ApplicationCommon *app,
                     app::EnterNumberWindowInterface *interface,
                     std::string windowName = app::window::name_number);


M module-apps/application-calllog/ApplicationCallLog.cpp => module-apps/application-calllog/ApplicationCallLog.cpp +7 -6
@@ 82,16 82,17 @@ namespace app

    void ApplicationCallLog::createUserInterface()
    {
        windowsFactory.attach(calllog::settings::MainWindowStr, [](Application *app, const std::string &name) {
        windowsFactory.attach(calllog::settings::MainWindowStr, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CallLogMainWindow>(app);
        });
        windowsFactory.attach(calllog::settings::DetailsWindowStr, [](Application *app, const std::string &name) {
        windowsFactory.attach(calllog::settings::DetailsWindowStr, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CallLogDetailsWindow>(app);
        });
        windowsFactory.attach(
            utils::translate("app_phonebook_options_title"),
            [](Application *app, const std::string &name) { return std::make_unique<gui::OptionWindow>(app, name); });
        windowsFactory.attach(calllog::settings::DialogYesNoStr, [](Application *app, const std::string &name) {
        windowsFactory.attach(utils::translate("app_phonebook_options_title"),
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::OptionWindow>(app, name);
                              });
        windowsFactory.attach(calllog::settings::DialogYesNoStr, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });


M module-apps/application-calllog/CMakeLists.txt => module-apps/application-calllog/CMakeLists.txt +1 -0
@@ 38,6 38,7 @@ target_sources( application-calllog
target_link_libraries( application-calllog

	PRIVATE
		app
		i18n
		log
		Microsoft.GSL::GSL

M module-apps/application-calllog/CalllogModel.cpp => module-apps/application-calllog/CalllogModel.cpp +1 -1
@@ 15,7 15,7 @@

using namespace calllog;

CalllogModel::CalllogModel(app::Application *app) : DatabaseModel(app), app::AsyncCallbackReceiver(app)
CalllogModel::CalllogModel(app::ApplicationCommon *app) : DatabaseModel(app), app::AsyncCallbackReceiver(app)
{}

unsigned int CalllogModel::requestRecordsCount()

M module-apps/application-calllog/CalllogModel.hpp => module-apps/application-calllog/CalllogModel.hpp +1 -1
@@ 15,7 15,7 @@ class CalllogModel : public app::DatabaseModel<CalllogRecord>,
                     public app::AsyncCallbackReceiver
{
  public:
    explicit CalllogModel(app::Application *app);
    explicit CalllogModel(app::ApplicationCommon *app);

    [[nodiscard]] unsigned int requestRecordsCount() override;
    [[nodiscard]] bool updateRecords(std::vector<CalllogRecord> records) override;

M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp => module-apps/application-calllog/windows/CallLogDetailsWindow.cpp +1 -1
@@ 23,7 23,7 @@ namespace detailsWindow = callLogStyle::detailsWindow;
namespace gui
{

    CallLogDetailsWindow::CallLogDetailsWindow(app::Application *app)
    CallLogDetailsWindow::CallLogDetailsWindow(app::ApplicationCommon *app)
        : AppWindow(app, calllog::settings::DetailsWindowStr)
    {
        buildInterface();

M module-apps/application-calllog/windows/CallLogDetailsWindow.hpp => module-apps/application-calllog/windows/CallLogDetailsWindow.hpp +1 -1
@@ 35,7 35,7 @@ namespace gui
        void initDateWidgets();

      public:
        explicit CallLogDetailsWindow(app::Application *app);
        explicit CallLogDetailsWindow(app::ApplicationCommon *app);

        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-calllog/windows/CallLogMainWindow.cpp => module-apps/application-calllog/windows/CallLogMainWindow.cpp +1 -1
@@ 24,7 24,7 @@ using namespace callLogStyle;
namespace gui
{

    CallLogMainWindow::CallLogMainWindow(app::Application *app)
    CallLogMainWindow::CallLogMainWindow(app::ApplicationCommon *app)
        : AppWindow(app, calllog::settings::MainWindowStr), calllogModel{std::make_shared<CalllogModel>(app)}
    {


M module-apps/application-calllog/windows/CallLogMainWindow.hpp => module-apps/application-calllog/windows/CallLogMainWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        gui::Icon *emptyListIcon                   = nullptr;

      public:
        explicit CallLogMainWindow(app::Application *app);
        explicit CallLogMainWindow(app::ApplicationCommon *app);

        // virtual methods
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-clock/ApplicationClock.cpp => module-apps/application-clock/ApplicationClock.cpp +1 -1
@@ 83,7 83,7 @@ namespace app

    void ApplicationClock::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ClockMainWindow>(app, name);
        });


M module-apps/application-clock/windows/ClockMainWindow.cpp => module-apps/application-clock/windows/ClockMainWindow.cpp +1 -1
@@ 16,7 16,7 @@
namespace gui
{

    ClockMainWindow::ClockMainWindow(app::Application *app, const std::string &name) : gui::AppWindow(app, name)
    ClockMainWindow::ClockMainWindow(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
    {
        uint32_t xOffset = 0;
        uint32_t yOffset = 0;

M module-apps/application-clock/windows/ClockMainWindow.hpp => module-apps/application-clock/windows/ClockMainWindow.hpp +1 -1
@@ 24,7 24,7 @@ namespace gui
        ProgressBar *progressBar = nullptr;

      public:
        ClockMainWindow(app::Application *app, const std::string &name);
        ClockMainWindow(app::ApplicationCommon *app, const std::string &name);

        bool handleSwitchData(SwitchData *data) override;


M module-apps/application-desktop/ApplicationDesktop.cpp => module-apps/application-desktop/ApplicationDesktop.cpp +14 -13
@@ 157,40 157,41 @@ namespace app
    void ApplicationDesktop::createUserInterface()
    {
        using namespace app::window::name;
        windowsFactory.attach(desktop_main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(desktop_main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DesktopMainWindow>(app);
        });
        windowsFactory.attach(desktop_menu, [this](Application *app, const std::string newname) {
        windowsFactory.attach(desktop_menu, [this](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::MenuWindow>(app, dbNotificationHandler);
        });
        windowsFactory.attach(dead_battery, [](Application *app, const std::string newname) {
        windowsFactory.attach(dead_battery, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::DeadBatteryWindow>(app);
        });
        windowsFactory.attach(logo_window, [](Application *app, const std::string newname) {
        windowsFactory.attach(logo_window, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::LogoWindow>(app);
        });
        windowsFactory.attach(charging_battery, [](Application *app, const std::string newname) {
        windowsFactory.attach(charging_battery, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::ChargingBatteryWindow>(app);
        });
        windowsFactory.attach(desktop_reboot, [](Application *app, const std::string newname) {
        windowsFactory.attach(desktop_reboot, [](ApplicationCommon *app, const std::string newname) {
            auto presenter = std::make_unique<gui::PowerOffPresenter>(app);
            return std::make_unique<gui::RebootWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(desktop_mmi_pull, [](Application *app, const std::string newname) {
        windowsFactory.attach(desktop_mmi_pull, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::MmiPullWindow>(app, desktop_mmi_pull);
        });
        windowsFactory.attach(desktop_mmi_push, [](Application *app, const std::string newname) {
        windowsFactory.attach(desktop_mmi_push, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::MmiPushWindow>(app, desktop_mmi_push);
        });
        windowsFactory.attach(desktop_mmi_internal, [](Application *app, const std::string newname) {
        windowsFactory.attach(desktop_mmi_internal, [](ApplicationCommon *app, const std::string newname) {
            return std::make_unique<gui::MmiInternalMsgWindow>(app, desktop_mmi_internal);
        });
        windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_confirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, name);
        });
        windowsFactory.attach(gui::popup::window::tethering_off_window, [](Application *app, const std::string &name) {
            return std::make_unique<gui::TetheringOffPopup>(app, gui::popup::window::tethering_off_window);
        });
        windowsFactory.attach(
            gui::popup::window::tethering_off_window, [](ApplicationCommon *app, const std::string &name) {
                return std::make_unique<gui::TetheringOffPopup>(app, gui::popup::window::tethering_off_window);
            });

        attachPopups({gui::popup::ID::Volume,
                      gui::popup::ID::Tethering,

M module-apps/application-desktop/CMakeLists.txt => module-apps/application-desktop/CMakeLists.txt +1 -0
@@ 54,6 54,7 @@ target_sources(application-desktop

target_link_libraries(application-desktop
    PRIVATE
		app
		application-messages
		i18n
		log

M module-apps/application-desktop/include/application-desktop/DBNotificationsHandler.hpp => module-apps/application-desktop/include/application-desktop/DBNotificationsHandler.hpp +3 -3
@@ 13,7 13,7 @@ namespace db

namespace app
{
    class Application;
    class ApplicationCommon;

    class DBNotificationsBaseHandler
    {


@@ 30,13 30,13 @@ namespace app

    class DBNotificationsHandler : public DBNotificationsBaseHandler
    {
        Application *ownerApp = nullptr;
        ApplicationCommon *ownerApp = nullptr;
        std::map<Type, int> notifications;

        void setNotification(Type type, int value);

      public:
        explicit DBNotificationsHandler(Application *ownerApp);
        explicit DBNotificationsHandler(ApplicationCommon *ownerApp);

        void initHandler();
        bool handle(db::NotificationMessage *msg);

M module-apps/application-desktop/models/ActiveNotificationsModel.cpp => module-apps/application-desktop/models/ActiveNotificationsModel.cpp +9 -9
@@ 31,7 31,7 @@ namespace
        };
    }

    auto createSMSActivatedCallback(app::Application *app)
    auto createSMSActivatedCallback(app::ApplicationCommon *app)
    {
        return [app]([[maybe_unused]] gui::Item &_item) {
            return app::manager::Controller::sendAction(


@@ 39,7 39,7 @@ namespace
        };
    }

    auto createSMSActivatedCallback(app::Application *app, const ContactRecord &record)
    auto createSMSActivatedCallback(app::ApplicationCommon *app, const ContactRecord &record)
    {
        Expects(not record.numbers.empty());
        return [app, number = record.numbers[0].number]([[maybe_unused]] gui::Item &_item) {


@@ 60,7 60,7 @@ namespace
        };
    }

    void setSMSActivatedCallback(NotificationListItem *item, Notification provider, app::Application *app)
    void setSMSActivatedCallback(NotificationListItem *item, Notification provider, app::ApplicationCommon *app)
    {
        if (provider->hasRecord() && not provider->getRecord().numbers.empty()) {
            item->activatedCallback = createSMSActivatedCallback(app, provider->getRecord());


@@ 70,7 70,7 @@ namespace
        }
    }

    void setSMSOnInputCallback(NotificationListItem *item, app::Application *app)
    void setSMSOnInputCallback(NotificationListItem *item, app::ApplicationCommon *app)
    {
        item->inputCallback = [app]([[maybe_unused]] Item &item, const InputEvent &inputEvent) {
            if (inputEvent.isShortRelease(KeyCode::KEY_RF)) {


@@ 96,14 96,14 @@ namespace
        };
    }

    void setCallActivatedCallback(NotificationListItem *item, app::Application *app)
    void setCallActivatedCallback(NotificationListItem *item, app::ApplicationCommon *app)
    {
        item->activatedCallback = [app]([[maybe_unused]] gui::Item &_item) {
            return app::manager::Controller::sendAction(app, app::manager::actions::ShowCallLog);
        };
    }

    auto createCallOnRightFunctionalCallback(app::Application *app) -> std::function<void()>
    auto createCallOnRightFunctionalCallback(app::ApplicationCommon *app) -> std::function<void()>
    {
        return [app]() {
            DBServiceAPI::GetQuery(app,


@@ 111,7 111,7 @@ namespace
                                   std::make_unique<db::query::notifications::Clear>(NotificationsRecord::Key::Calls));
        };
    }
    auto createCallOnLeftFunctionalCallback(app::Application *app, Notification provider) -> std::function<void()>
    auto createCallOnLeftFunctionalCallback(app::ApplicationCommon *app, Notification provider) -> std::function<void()>
    {
        if (!provider->hasRecord()) {
            return nullptr;


@@ 125,7 125,7 @@ namespace
        return nullptr;
    }

    void setCallOnInputCallback(NotificationListItem *item, Notification provider, app::Application *app)
    void setCallOnInputCallback(NotificationListItem *item, Notification provider, app::ApplicationCommon *app)
    {
        auto onRightFunctionalKeyCallback = createCallOnRightFunctionalCallback(app);
        auto onLeftFunctionalKeyCallback  = createCallOnLeftFunctionalCallback(app, provider);


@@ 147,7 147,7 @@ namespace
        };
    }

    void setTetheringActivatedCallback(NotificationListItem *item, app::Application *app)
    void setTetheringActivatedCallback(NotificationListItem *item, app::ApplicationCommon *app)
    {
        item->activatedCallback = [app]([[maybe_unused]] gui::Item &_item) {
            app->switchWindow(gui::popup::window::tethering_off_window);

M module-apps/application-desktop/widgets/DBNotificationsHandler.cpp => module-apps/application-desktop/widgets/DBNotificationsHandler.cpp +3 -3
@@ 12,14 12,14 @@ using namespace app;

namespace
{
    bool requestUnreadThreadsCount(app::Application *app)
    bool requestUnreadThreadsCount(app::ApplicationCommon *app)
    {
        const auto [succeed, _] = DBServiceAPI::GetQuery(
            app, db::Interface::Name::SMSThread, std::make_unique<db::query::ThreadGetCount>(EntryState::UNREAD));
        return succeed;
    }

    bool requestUnreadCallsCount(app::Application *app)
    bool requestUnreadCallsCount(app::ApplicationCommon *app)
    {
        const auto [succeed, _] = DBServiceAPI::GetQuery(
            app, db::Interface::Name::Calllog, std::make_unique<db::query::CalllogGetCount>(EntryState::UNREAD));


@@ 27,7 27,7 @@ namespace
    }
} // namespace

DBNotificationsHandler::DBNotificationsHandler(Application *ownerApp)
DBNotificationsHandler::DBNotificationsHandler(ApplicationCommon *ownerApp)
    : ownerApp(ownerApp), notifications{{Type::notReadSMS, 0}, {Type::notReadCall, 0}}
{}


M module-apps/application-desktop/widgets/DesktopInputWidget.cpp => module-apps/application-desktop/widgets/DesktopInputWidget.cpp +1 -1
@@ 39,7 39,7 @@ namespace gui
{

    DesktopInputWidget::DesktopInputWidget(
        app::Application *application, Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h)
        app::ApplicationCommon *application, Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h)
        : HBox(parent, x, y, w, h), application(application)
    {
        setMinimumSize(style::window::default_body_width, style::desktop::inputWidget::min_h);

M module-apps/application-desktop/widgets/DesktopInputWidget.hpp => module-apps/application-desktop/widgets/DesktopInputWidget.hpp +3 -2
@@ 17,14 17,15 @@ namespace gui
    // class DesktopInputWidget : public ListItem
    class DesktopInputWidget : public HBox
    {
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        HBox *body                    = nullptr;
        gui::Image *replyImage        = nullptr;

      public:
        gui::Text *inputText = nullptr;

        DesktopInputWidget(app::Application *application, Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        DesktopInputWidget(
            app::ApplicationCommon *application, Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        ~DesktopInputWidget() override = default;

        auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override;

M module-apps/application-desktop/windows/ChargingBatteryWindow.cpp => module-apps/application-desktop/windows/ChargingBatteryWindow.cpp +1 -1
@@ 17,7 17,7 @@ namespace gui
        constexpr inline auto imgPositionY = 250;
    } // namespace

    ChargingBatteryWindow::ChargingBatteryWindow(app::Application *app)
    ChargingBatteryWindow::ChargingBatteryWindow(app::ApplicationCommon *app)
        : AppWindow(app, app::window::name::dead_battery)
    {
        buildInterface();

M module-apps/application-desktop/windows/ChargingBatteryWindow.hpp => module-apps/application-desktop/windows/ChargingBatteryWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class ChargingBatteryWindow : public AppWindow
    {
      public:
        explicit ChargingBatteryWindow(app::Application *app);
        explicit ChargingBatteryWindow(app::ApplicationCommon *app);
        void rebuild() override;
        void buildInterface() override;
        void destroyInterface() override;

M module-apps/application-desktop/windows/DeadBatteryWindow.cpp => module-apps/application-desktop/windows/DeadBatteryWindow.cpp +1 -1
@@ 18,7 18,7 @@ namespace gui
        constexpr inline auto imgPositionY = 250;
    } // namespace

    DeadBatteryWindow::DeadBatteryWindow(app::Application *app) : AppWindow(app, app::window::name::dead_battery)
    DeadBatteryWindow::DeadBatteryWindow(app::ApplicationCommon *app) : AppWindow(app, app::window::name::dead_battery)
    {
        buildInterface();
        preventsAutoLock = true;

M module-apps/application-desktop/windows/DeadBatteryWindow.hpp => module-apps/application-desktop/windows/DeadBatteryWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class DeadBatteryWindow : public AppWindow
    {
      public:
        explicit DeadBatteryWindow(app::Application *app);
        explicit DeadBatteryWindow(app::ApplicationCommon *app);
        void rebuild() override;
        void buildInterface() override;
        void destroyInterface() override;

M module-apps/application-desktop/windows/DesktopMainWindow.cpp => module-apps/application-desktop/windows/DesktopMainWindow.cpp +1 -1
@@ 96,7 96,7 @@ namespace gui
        return appConfiguration;
    }

    DesktopMainWindow::DesktopMainWindow(app::Application *app)
    DesktopMainWindow::DesktopMainWindow(app::ApplicationCommon *app)
        : AppWindow(app, app::window::name::desktop_main_window),
          notificationsModel(std::make_shared<ActiveNotificationsModel>(this))
    {

M module-apps/application-desktop/windows/DesktopMainWindow.hpp => module-apps/application-desktop/windows/DesktopMainWindow.hpp +1 -1
@@ 36,7 36,7 @@ namespace gui
        app::ApplicationDesktop *getAppDesktop() const;

      public:
        explicit DesktopMainWindow(app::Application *app);
        explicit DesktopMainWindow(app::ApplicationCommon *app);

        // virtual methods gui::Window
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-desktop/windows/LogoWindow.cpp => module-apps/application-desktop/windows/LogoWindow.cpp +1 -1
@@ 9,7 9,7 @@

namespace gui
{
    LogoWindow::LogoWindow(app::Application *app) : AppWindow(app, app::window::name::logo_window)
    LogoWindow::LogoWindow(app::ApplicationCommon *app) : AppWindow(app, app::window::name::logo_window)
    {
        buildInterface();
    }

M module-apps/application-desktop/windows/LogoWindow.hpp => module-apps/application-desktop/windows/LogoWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class LogoWindow : public AppWindow
    {
      public:
        explicit LogoWindow(app::Application *app);
        explicit LogoWindow(app::ApplicationCommon *app);
        void rebuild() override;
        void buildInterface() override;
        void destroyInterface() override;

M module-apps/application-desktop/windows/MenuWindow.cpp => module-apps/application-desktop/windows/MenuWindow.cpp +1 -1
@@ 138,7 138,7 @@ namespace gui
        return visibleStateChanged;
    }

    MenuWindow::MenuWindow(app::Application *app, const app::DBNotificationsBaseHandler &accessor)
    MenuWindow::MenuWindow(app::ApplicationCommon *app, const app::DBNotificationsBaseHandler &accessor)
        : AppWindow(app, app::window::name::desktop_menu), dbNotifications(accessor)
    {
        buildInterface();

M module-apps/application-desktop/windows/MenuWindow.hpp => module-apps/application-desktop/windows/MenuWindow.hpp +1 -1
@@ 66,7 66,7 @@ namespace gui
        MenuPage *toolsMenu = nullptr;

      public:
        MenuWindow(app::Application *app, const app::DBNotificationsBaseHandler &accessor);
        MenuWindow(app::ApplicationCommon *app, const app::DBNotificationsBaseHandler &accessor);

        bool onInput(const InputEvent &inputEvent) override;


M module-apps/application-desktop/windows/MmiInternalMsgWindow.cpp => module-apps/application-desktop/windows/MmiInternalMsgWindow.cpp +2 -1
@@ 10,7 10,8 @@

using namespace gui;

MmiInternalMsgWindow::MmiInternalMsgWindow(app::Application *app, const std::string &name) : MmiPushWindow(app, name)
MmiInternalMsgWindow::MmiInternalMsgWindow(app::ApplicationCommon *app, const std::string &name)
    : MmiPushWindow(app, name)
{}

void MmiInternalMsgWindow::onBeforeShow(ShowMode mode, SwitchData *data)

M module-apps/application-desktop/windows/MmiInternalMsgWindow.hpp => module-apps/application-desktop/windows/MmiInternalMsgWindow.hpp +1 -1
@@ 18,7 18,7 @@ namespace gui
    class MmiInternalMsgWindow : public MmiPushWindow
    {
      public:
        MmiInternalMsgWindow(app::Application *app, const std::string &name);
        MmiInternalMsgWindow(app::ApplicationCommon *app, const std::string &name);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        void handleInternalMessages(mmiactions::MMIResultParams *metadata);
    };

M module-apps/application-desktop/windows/MmiPullWindow.cpp => module-apps/application-desktop/windows/MmiPullWindow.cpp +1 -1
@@ 33,7 33,7 @@ namespace style::desktop

} // namespace style::desktop

MmiPullWindow::MmiPullWindow(app::Application *app, const std::string &name) : gui::AppWindow(app, name)
MmiPullWindow::MmiPullWindow(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
{
    AppWindow::buildInterface();


M module-apps/application-desktop/windows/MmiPullWindow.hpp => module-apps/application-desktop/windows/MmiPullWindow.hpp +1 -1
@@ 22,7 22,7 @@ namespace gui
        DesktopInputWidget *InputBox = nullptr;

      public:
        MmiPullWindow(app::Application *app, const std::string &name);
        MmiPullWindow(app::ApplicationCommon *app, const std::string &name);
        ~MmiPullWindow() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-desktop/windows/MmiPushWindow.cpp => module-apps/application-desktop/windows/MmiPushWindow.cpp +2 -2
@@ 6,7 6,7 @@

#include <i18n/i18n.hpp>
#include <Image.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-appmgr/data/MmiActionsParams.hpp>

using namespace gui;


@@ 29,7 29,7 @@ namespace style::desktop

} // namespace style::desktop

MmiPushWindow::MmiPushWindow(app::Application *app, const std::string &name) : gui::AppWindow(app, name)
MmiPushWindow::MmiPushWindow(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
{
    AppWindow::buildInterface();
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));

M module-apps/application-desktop/windows/MmiPushWindow.hpp => module-apps/application-desktop/windows/MmiPushWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        Image *icon = nullptr;

      public:
        MmiPushWindow(app::Application *app, const std::string &name);
        MmiPushWindow(app::ApplicationCommon *app, const std::string &name);
        ~MmiPushWindow() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-desktop/windows/Reboot.cpp => module-apps/application-desktop/windows/Reboot.cpp +1 -1
@@ 10,7 10,7 @@
namespace gui
{

    RebootWindow::RebootWindow(app::Application *app, std::unique_ptr<PowerOffPresenter> &&presenter)
    RebootWindow::RebootWindow(app::ApplicationCommon *app, std::unique_ptr<PowerOffPresenter> &&presenter)
        : AppWindow(app, app::window::name::desktop_reboot), presenter(std::move(presenter))
    {
        buildInterface();

M module-apps/application-desktop/windows/Reboot.hpp => module-apps/application-desktop/windows/Reboot.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
    class RebootWindow : public AppWindow
    {
      public:
        RebootWindow(app::Application *app, std::unique_ptr<PowerOffPresenter> &&presenter);
        RebootWindow(app::ApplicationCommon *app, std::unique_ptr<PowerOffPresenter> &&presenter);
        ~RebootWindow() override = default;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-meditation/ApplicationMeditation.cpp => module-apps/application-meditation/ApplicationMeditation.cpp +13 -10
@@ 42,18 42,21 @@ namespace app

    void ApplicationMeditation::createUserInterface()
    {
        windowsFactory.attach(app::window::name::meditation_main_window, [](Application *app, const std::string &name) {
            return std::make_unique<gui::MeditationWindow>(app);
        });
        windowsFactory.attach(app::window::name::meditation_timer, [](Application *app, const std::string &name) {
        windowsFactory.attach(app::window::name::meditation_main_window,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::MeditationWindow>(app);
                              });
        windowsFactory.attach(app::window::name::meditation_timer, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::MeditationTimerWindow>(app);
        });
        windowsFactory.attach(app::window::name::meditation_options, [](Application *app, const std::string &name) {
            return std::make_unique<gui::MeditationOptionsWindow>(app);
        });
        windowsFactory.attach(app::window::name::meditation_preparation, [](Application *app, const std::string &name) {
            return std::make_unique<gui::PreparationTimeWindow>(app);
        });
        windowsFactory.attach(app::window::name::meditation_options,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::MeditationOptionsWindow>(app);
                              });
        windowsFactory.attach(app::window::name::meditation_preparation,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::PreparationTimeWindow>(app);
                              });

        attachPopups(
            {gui::popup::ID::Volume, gui::popup::ID::Tethering, gui::popup::ID::PhoneModes, gui::popup::ID::PhoneLock});

M module-apps/application-meditation/CMakeLists.txt => module-apps/application-meditation/CMakeLists.txt +1 -0
@@ 40,6 40,7 @@ target_sources(application-meditation

target_link_libraries(application-meditation
    PRIVATE
        app
        i18n
        module-sys
        module-utils

M module-apps/application-meditation/windows/MeditationOptionsWindows.cpp => module-apps/application-meditation/windows/MeditationOptionsWindows.cpp +2 -2
@@ 24,7 24,7 @@ namespace
    }
} // namespace

MeditationOptionsWindow::MeditationOptionsWindow(app::Application *app)
MeditationOptionsWindow::MeditationOptionsWindow(app::ApplicationCommon *app)
    : OptionWindow(app, app::window::name::meditation_options)
{
    setTitle(utils::translate("common_options"));


@@ 68,7 68,7 @@ void MeditationOptionsWindow::addPreparationTimeOption(std::list<Option> &option
        option::SettingRightItem::ArrowBlack));
}

PreparationTimeWindow::PreparationTimeWindow(app::Application *app)
PreparationTimeWindow::PreparationTimeWindow(app::ApplicationCommon *app)
    : OptionWindow(app, app::window::name::meditation_preparation)
{
    setTitle(utils::translate("app_meditation_preparation_time"));

M module-apps/application-meditation/windows/MeditationOptionsWindows.hpp => module-apps/application-meditation/windows/MeditationOptionsWindows.hpp +2 -2
@@ 10,7 10,7 @@ namespace gui
    class MeditationOptionsWindow : public OptionWindow
    {
      public:
        explicit MeditationOptionsWindow(app::Application *);
        explicit MeditationOptionsWindow(app::ApplicationCommon *);

      private:
        std::list<Option> buildOptionsList();


@@ 21,7 21,7 @@ namespace gui
    class PreparationTimeWindow : public OptionWindow
    {
      public:
        explicit PreparationTimeWindow(app::Application *app);
        explicit PreparationTimeWindow(app::ApplicationCommon *app);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;


M module-apps/application-meditation/windows/MeditationTimerWindow.cpp => module-apps/application-meditation/windows/MeditationTimerWindow.cpp +1 -1
@@ 21,7 21,7 @@ namespace
    constexpr std::chrono::seconds endScreenTimeoutTime{5};
} // namespace

MeditationTimerWindow::MeditationTimerWindow(app::Application *app)
MeditationTimerWindow::MeditationTimerWindow(app::ApplicationCommon *app)
    : AppWindow{app, name::window::main_window},
      endScreenTimeout{sys::TimerFactory::createSingleShotTimer(
          app, "MeditationEndScreenTimeout", endScreenTimeoutTime, [this](sys::Timer &) {

M module-apps/application-meditation/windows/MeditationTimerWindow.hpp => module-apps/application-meditation/windows/MeditationTimerWindow.hpp +1 -1
@@ 31,7 31,7 @@ namespace gui
        void invalidate() noexcept;

      public:
        explicit MeditationTimerWindow(app::Application *app);
        explicit MeditationTimerWindow(app::ApplicationCommon *app);

        auto onInput(const InputEvent &inputEvent) -> bool override;


M module-apps/application-meditation/windows/MeditationWindow.cpp => module-apps/application-meditation/windows/MeditationWindow.cpp +1 -1
@@ 16,7 16,7 @@

namespace gui
{
    MeditationWindow::MeditationWindow(app::Application *app) : AppWindow{app, name::window::main_window}
    MeditationWindow::MeditationWindow(app::ApplicationCommon *app) : AppWindow{app, name::window::main_window}
    {
        MeditationWindow::buildInterface();
    }

M module-apps/application-meditation/windows/MeditationWindow.hpp => module-apps/application-meditation/windows/MeditationWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class MeditationWindow : public AppWindow
    {
      public:
        explicit MeditationWindow(app::Application *app);
        explicit MeditationWindow(app::ApplicationCommon *app);

        auto onInput(const InputEvent &inputEvent) -> bool override;


M module-apps/application-messages/ApplicationMessages.cpp => module-apps/application-messages/ApplicationMessages.cpp +15 -14
@@ 117,34 117,35 @@ namespace app

    void ApplicationMessages::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::MessagesMainWindow>(app);
        });
        windowsFactory.attach(gui::name::window::thread_view, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::thread_view, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SMSThreadViewWindow>(app);
        });
        windowsFactory.attach(gui::name::window::new_sms, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::new_sms, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::NewMessageWindow>(app);
        });
        windowsFactory.attach(
            utils::translate("app_phonebook_options_title"),
            [](Application *app, const std::string &name) { return std::make_unique<gui::OptionWindow>(app, name); });
        windowsFactory.attach(gui::name::window::dialog, [](Application *app, const std::string &name) {
        windowsFactory.attach(utils::translate("app_phonebook_options_title"),
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::OptionWindow>(app, name);
                              });
        windowsFactory.attach(gui::name::window::dialog, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(gui::name::window::dialog_confirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::dialog_confirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, name);
        });
        windowsFactory.attach(gui::name::window::dialog_yes_no, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::dialog_yes_no, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });
        windowsFactory.attach(gui::name::window::thread_sms_search, [](Application *app, const std::string &name) {
            return std::make_unique<gui::SMSSearch>(app);
        });
        windowsFactory.attach(gui::name::window::sms_templates, [](Application *app, const std::string &name) {
        windowsFactory.attach(
            gui::name::window::thread_sms_search,
            [](ApplicationCommon *app, const std::string &name) { return std::make_unique<gui::SMSSearch>(app); });
        windowsFactory.attach(gui::name::window::sms_templates, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SMSTemplatesWindow>(app);
        });
        windowsFactory.attach(gui::name::window::search_results, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::search_results, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SearchResults>(app);
        });


M module-apps/application-messages/CMakeLists.txt => module-apps/application-messages/CMakeLists.txt +1 -0
@@ 68,6 68,7 @@ target_sources(application-messages

target_link_libraries(application-messages
    PRIVATE
        app
        clipboard
        i18n
        log

M module-apps/application-messages/models/BaseThreadsRecordModel.cpp => module-apps/application-messages/models/BaseThreadsRecordModel.cpp +1 -1
@@ 5,7 5,7 @@
#include "ListView.hpp"
#include <service-db/DBServiceAPI.hpp>

BaseThreadsRecordModel::BaseThreadsRecordModel(app::Application *app) : DatabaseModel(app)
BaseThreadsRecordModel::BaseThreadsRecordModel(app::ApplicationCommon *app) : DatabaseModel(app)
{
    requestRecordsCount();
}

M module-apps/application-messages/models/BaseThreadsRecordModel.hpp => module-apps/application-messages/models/BaseThreadsRecordModel.hpp +2 -2
@@ 29,12 29,12 @@ class BaseThreadsRecordModel : public app::DatabaseModel<ThreadListStruct>, publ
{
  public:
    BaseThreadsRecordModel() = delete;
    BaseThreadsRecordModel(app::Application *app);
    BaseThreadsRecordModel(app::ApplicationCommon *app);

    unsigned int requestRecordsCount() override;
    bool updateRecords(std::vector<ThreadListStruct> records) override;

    app::Application *getApplication(void)
    app::ApplicationCommon *getApplication(void)
    {
        return application;
    };

M module-apps/application-messages/models/SMSTemplateModel.cpp => module-apps/application-messages/models/SMSTemplateModel.cpp +1 -1
@@ 9,7 9,7 @@
#include <module-db/queries/messages/templates/QuerySMSTemplateGetForList.hpp>
#include <service-db/DBServiceAPI.hpp>

SMSTemplateModel::SMSTemplateModel(app::Application *app) : DatabaseModel(app), app::AsyncCallbackReceiver{app}
SMSTemplateModel::SMSTemplateModel(app::ApplicationCommon *app) : DatabaseModel(app), app::AsyncCallbackReceiver{app}
{}

unsigned int SMSTemplateModel::requestRecordsCount()

M module-apps/application-messages/models/SMSTemplateModel.hpp => module-apps/application-messages/models/SMSTemplateModel.hpp +1 -1
@@ 15,7 15,7 @@ class SMSTemplateModel : public app::DatabaseModel<SMSTemplateRecord>,
{
  public:
    SMSTemplateModel() = delete;
    SMSTemplateModel(app::Application *app);
    SMSTemplateModel(app::ApplicationCommon *app);

    unsigned int requestRecordsCount() override;
    bool updateRecords(std::vector<SMSTemplateRecord> records) override;

M module-apps/application-messages/models/SMSThreadModel.cpp => module-apps/application-messages/models/SMSThreadModel.cpp +1 -1
@@ 12,7 12,7 @@
#include <service-db/DBServiceAPI.hpp>
#include <service-db/QueryMessage.hpp>

SMSThreadModel::SMSThreadModel(app::Application *app) : DatabaseModel(app), app::AsyncCallbackReceiver{app}
SMSThreadModel::SMSThreadModel(app::ApplicationCommon *app) : DatabaseModel(app), app::AsyncCallbackReceiver{app}
{
    smsInput = new gui::SMSInputWidget(application);
}

M module-apps/application-messages/models/SMSThreadModel.hpp => module-apps/application-messages/models/SMSThreadModel.hpp +1 -1
@@ 20,7 20,7 @@ class SMSThreadModel : public app::DatabaseModel<SMSRecord>,
    std::unique_ptr<utils::PhoneNumber::View> number;
    unsigned int numberID = DB_ID_NONE;

    SMSThreadModel(app::Application *app);
    SMSThreadModel(app::ApplicationCommon *app);
    ~SMSThreadModel() override;

    void addReturnNumber();

M module-apps/application-messages/models/ThreadsModel.cpp => module-apps/application-messages/models/ThreadsModel.cpp +1 -1
@@ 16,7 16,7 @@
#include <OptionWindow.hpp>
#include <service-db/DBServiceAPI.hpp>

ThreadsModel::ThreadsModel(app::Application *app) : BaseThreadsRecordModel(app), app::AsyncCallbackReceiver{app}
ThreadsModel::ThreadsModel(app::ApplicationCommon *app) : BaseThreadsRecordModel(app), app::AsyncCallbackReceiver{app}
{}

auto ThreadsModel::getMinimalItemSpaceRequired() const -> unsigned int

M module-apps/application-messages/models/ThreadsModel.hpp => module-apps/application-messages/models/ThreadsModel.hpp +1 -1
@@ 9,7 9,7 @@
class ThreadsModel : public BaseThreadsRecordModel, public app::AsyncCallbackReceiver
{
  public:
    explicit ThreadsModel(app::Application *app);
    explicit ThreadsModel(app::ApplicationCommon *app);

    void requestRecords(uint32_t offset, uint32_t limit) override;
    [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int override;

M module-apps/application-messages/models/ThreadsSearchResultsModel.cpp => module-apps/application-messages/models/ThreadsSearchResultsModel.cpp +1 -1
@@ 14,7 14,7 @@
namespace gui::model
{

    ThreadsSearchResultsModel::ThreadsSearchResultsModel(app::Application *app)
    ThreadsSearchResultsModel::ThreadsSearchResultsModel(app::ApplicationCommon *app)
        : BaseThreadsRecordModel(app), app::AsyncCallbackReceiver{app}
    {}


M module-apps/application-messages/models/ThreadsSearchResultsModel.hpp => module-apps/application-messages/models/ThreadsSearchResultsModel.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui::model
        UTF8 textToSearch;

      public:
        ThreadsSearchResultsModel(app::Application *app);
        ThreadsSearchResultsModel(app::ApplicationCommon *app);

        auto getMinimalItemSpaceRequired() const -> unsigned int override;
        auto getItem(Order order) -> ListItem * override;

M module-apps/application-messages/widgets/SMSInputWidget.cpp => module-apps/application-messages/widgets/SMSInputWidget.cpp +1 -1
@@ 18,7 18,7 @@
namespace gui
{

    SMSInputWidget::SMSInputWidget(app::Application *application) : application(application)
    SMSInputWidget::SMSInputWidget(app::ApplicationCommon *application) : application(application)
    {
        setMinimumSize(style::window::default_body_width, style::messages::smsInput::min_h);
        setMargins(Margins(

M module-apps/application-messages/widgets/SMSInputWidget.hpp => module-apps/application-messages/widgets/SMSInputWidget.hpp +2 -2
@@ 16,7 16,7 @@ namespace gui

    class SMSInputWidget : public ListItem
    {
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        HBox *body                    = nullptr;
        gui::Image *replyImage        = nullptr;



@@ 25,7 25,7 @@ namespace gui
        std::optional<SMSRecord> draft; // draft message of the thread we are showing, if exists.
        std::unique_ptr<utils::PhoneNumber::View> number = nullptr;

        SMSInputWidget(app::Application *application);
        SMSInputWidget(app::ApplicationCommon *application);
        ~SMSInputWidget() override = default;

        void handleDraftMessage();

M module-apps/application-messages/widgets/SMSOutputWidget.cpp => module-apps/application-messages/widgets/SMSOutputWidget.cpp +1 -1
@@ 14,7 14,7 @@
namespace gui
{

    SMSOutputWidget::SMSOutputWidget(app::Application *application, const std::shared_ptr<SMSRecord> &record)
    SMSOutputWidget::SMSOutputWidget(app::ApplicationCommon *application, const std::shared_ptr<SMSRecord> &record)
    {
        setMinimumSize(style::window::default_body_width, style::messages::smsOutput::default_h);
        setMargins(Margins(0, style::messages::smsOutput::sms_vertical_spacer, 0, 0));

M module-apps/application-messages/widgets/SMSOutputWidget.hpp => module-apps/application-messages/widgets/SMSOutputWidget.hpp +1 -1
@@ 28,7 28,7 @@ namespace gui
      public:
        gui::Text *inputText = nullptr;

        SMSOutputWidget(app::Application *application, const std::shared_ptr<SMSRecord> &record);
        SMSOutputWidget(app::ApplicationCommon *application, const std::shared_ptr<SMSRecord> &record);
        virtual ~SMSOutputWidget() = default;

        auto handleRequestResize(const Item *, Length request_w, Length request_h) -> Size override;

M module-apps/application-messages/windows/MessagesMainWindow.cpp => module-apps/application-messages/windows/MessagesMainWindow.cpp +1 -1
@@ 24,7 24,7 @@

namespace gui
{
    MessagesMainWindow::MessagesMainWindow(app::Application *app)
    MessagesMainWindow::MessagesMainWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::name::window::main_window), app::AsyncCallbackReceiver{app}
    {
        buildInterface();

M module-apps/application-messages/windows/MessagesMainWindow.hpp => module-apps/application-messages/windows/MessagesMainWindow.hpp +1 -1
@@ 25,7 25,7 @@ namespace gui
        gui::ListView *list                        = nullptr;

      public:
        explicit MessagesMainWindow(app::Application *app);
        explicit MessagesMainWindow(app::ApplicationCommon *app);

        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-messages/windows/NewMessage.cpp => module-apps/application-messages/windows/NewMessage.cpp +1 -1
@@ 52,7 52,7 @@ namespace gui
    std::unique_ptr<NewMessageWindow::MessageMemento> NewMessageWindow::memento =
        std::make_unique<NewMessageWindow::MessageMemento>();

    NewMessageWindow::NewMessageWindow(app::Application *app)
    NewMessageWindow::NewMessageWindow(app::ApplicationCommon *app)
        : AppWindow(app, name::window::new_sms), app::AsyncCallbackReceiver{app}
    {
        buildInterface();

M module-apps/application-messages/windows/NewMessage.hpp => module-apps/application-messages/windows/NewMessage.hpp +1 -1
@@ 18,7 18,7 @@ namespace gui
    class NewMessageWindow : public AppWindow, public app::AsyncCallbackReceiver
    {
      public:
        explicit NewMessageWindow(app::Application *app);
        explicit NewMessageWindow(app::ApplicationCommon *app);

        bool onInput(const InputEvent &inputEvent) override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-messages/windows/SMSTemplatesWindow.cpp => module-apps/application-messages/windows/SMSTemplatesWindow.cpp +1 -1
@@ 16,7 16,7 @@

namespace gui
{
    SMSTemplatesWindow::SMSTemplatesWindow(app::Application *app)
    SMSTemplatesWindow::SMSTemplatesWindow(app::ApplicationCommon *app)
        : AppWindow(app, name::window::sms_templates), smsTemplateModel{std::make_shared<SMSTemplateModel>(app)}
    {
        buildInterface();

M module-apps/application-messages/windows/SMSTemplatesWindow.hpp => module-apps/application-messages/windows/SMSTemplatesWindow.hpp +1 -1
@@ 25,7 25,7 @@ namespace gui

      public:
        SMSTemplatesWindow() = delete;
        SMSTemplatesWindow(app::Application *app);
        SMSTemplatesWindow(app::ApplicationCommon *app);
        virtual ~SMSTemplatesWindow();

        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-messages/windows/SMSThreadViewWindow.cpp => module-apps/application-messages/windows/SMSThreadViewWindow.cpp +1 -1
@@ 20,7 20,7 @@
namespace gui
{

    SMSThreadViewWindow::SMSThreadViewWindow(app::Application *app)
    SMSThreadViewWindow::SMSThreadViewWindow(app::ApplicationCommon *app)
        : AppWindow(app, name::window::thread_view), app::AsyncCallbackReceiver{app},
          smsModel{std::make_shared<SMSThreadModel>(app)}
    {

M module-apps/application-messages/windows/SMSThreadViewWindow.hpp => module-apps/application-messages/windows/SMSThreadViewWindow.hpp +1 -1
@@ 24,7 24,7 @@ namespace gui
        auto handleContactNameQueryResponse(db::QueryResult *) -> bool;

      public:
        explicit SMSThreadViewWindow(app::Application *app);
        explicit SMSThreadViewWindow(app::ApplicationCommon *app);
        ~SMSThreadViewWindow() override;

        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-messages/windows/SearchResults.cpp => module-apps/application-messages/windows/SearchResults.cpp +1 -1
@@ 13,7 13,7 @@

namespace gui
{
    SearchResults::SearchResults(app::Application *app) : AppWindow(app, name::window::search_results)
    SearchResults::SearchResults(app::ApplicationCommon *app) : AppWindow(app, name::window::search_results)
    {
        namespace msgThreadStyle = style::messages::threads;


M module-apps/application-messages/windows/SearchResults.hpp => module-apps/application-messages/windows/SearchResults.hpp +1 -1
@@ 23,7 23,7 @@ namespace gui
        auto listViewRequest(const std::string &text) -> bool;

      public:
        SearchResults(app::Application *app);
        SearchResults(app::ApplicationCommon *app);
        /// needed to init populate db
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        auto showEmptyResults() -> bool;

M module-apps/application-messages/windows/SearchStart.cpp => module-apps/application-messages/windows/SearchStart.cpp +1 -1
@@ 12,7 12,7 @@
namespace gui
{

    SMSSearch::SMSSearch(app::Application *app) : AppWindow(app, name::window::thread_sms_search)
    SMSSearch::SMSSearch(app::ApplicationCommon *app) : AppWindow(app, name::window::thread_sms_search)
    {
        buildInterface();
        setTitle(utils::translate("app_messages_title_main"));

M module-apps/application-messages/windows/SearchStart.hpp => module-apps/application-messages/windows/SearchStart.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
        gui::Item *body = nullptr;

      public:
        SMSSearch(app::Application *app);
        SMSSearch(app::ApplicationCommon *app);
        bool onInput(const InputEvent &inputEvent) override;
    };


M module-apps/application-music-player/ApplicationMusicPlayer.cpp => module-apps/application-music-player/ApplicationMusicPlayer.cpp +1 -1
@@ 133,7 133,7 @@ namespace app

    void ApplicationMusicPlayer::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [&](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [&](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::MusicPlayerAllSongsWindow>(app, priv->songsPresenter);
        });


M module-apps/application-music-player/CMakeLists.txt => module-apps/application-music-player/CMakeLists.txt +1 -0
@@ 38,6 38,7 @@ target_sources(application-music-player

target_link_libraries(application-music-player
    PRIVATE
        app
        i18n
        log
        module-gui

M module-apps/application-music-player/models/SongsModelInterface.hpp => module-apps/application-music-player/models/SongsModelInterface.hpp +1 -1
@@ 8,7 8,7 @@
#include <widgets/SongItem.hpp>
#include <InternalModel.hpp>
#include <ListItemProvider.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>

namespace app::music_player
{

M module-apps/application-music-player/models/SongsRepository.cpp => module-apps/application-music-player/models/SongsRepository.cpp +1 -1
@@ 15,7 15,7 @@

namespace app::music_player
{
    ServiceAudioTagsFetcher::ServiceAudioTagsFetcher(Application *application) : application(application)
    ServiceAudioTagsFetcher::ServiceAudioTagsFetcher(ApplicationCommon *application) : application(application)
    {}

    std::optional<tags::fetcher::Tags> ServiceAudioTagsFetcher::getFileTags(const std::string &filePath) const

M module-apps/application-music-player/models/SongsRepository.hpp => module-apps/application-music-player/models/SongsRepository.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <tags_fetcher/TagsFetcher.hpp>
#include <purefs/filesystem_paths.hpp>



@@ 27,12 27,12 @@ namespace app::music_player
    class ServiceAudioTagsFetcher : public AbstractTagsFetcher
    {
      public:
        explicit ServiceAudioTagsFetcher(Application *application);
        explicit ServiceAudioTagsFetcher(ApplicationCommon *application);

        std::optional<tags::fetcher::Tags> getFileTags(const std::string &filePath) const final;

      private:
        Application *application = nullptr;
        ApplicationCommon *application = nullptr;
    };

    class AbstractSongsRepository

M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp => module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.cpp +1 -1
@@ 16,7 16,7 @@ namespace gui
{

    MusicPlayerAllSongsWindow::MusicPlayerAllSongsWindow(
        app::Application *app, std::shared_ptr<app::music_player::SongsContract::Presenter> windowPresenter)
        app::ApplicationCommon *app, std::shared_ptr<app::music_player::SongsContract::Presenter> windowPresenter)
        : AppWindow(app, gui::name::window::all_songs_window), presenter{windowPresenter}
    {
        presenter->attach(this);

M module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp => module-apps/application-music-player/windows/MusicPlayerAllSongsWindow.hpp +1 -1
@@ 18,7 18,7 @@ namespace gui
        Icon *emptyListIcon = nullptr;

      public:
        explicit MusicPlayerAllSongsWindow(app::Application *app,
        explicit MusicPlayerAllSongsWindow(app::ApplicationCommon *app,
                                           std::shared_ptr<app::music_player::SongsContract::Presenter> presenter);

        void onBeforeShow([[maybe_unused]] ShowMode mode, [[maybe_unused]] SwitchData *data) override;

M module-apps/application-notes/ApplicationNotes.cpp => module-apps/application-notes/ApplicationNotes.cpp +15 -13
@@ 85,46 85,48 @@ namespace app

    void ApplicationNotes::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            auto notesRepository = std::make_unique<notes::NotesDBRepository>(app);
            auto notesProvider   = std::make_shared<notes::NotesListModel>(app, std::move(notesRepository));
            auto presenter       = std::make_unique<notes::NotesMainWindowPresenter>(notesProvider);
            return std::make_unique<notes::NoteMainWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::name::window::note_preview, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::note_preview, [](ApplicationCommon *app, const std::string &name) {
            auto notesRepository = std::make_unique<notes::NotesDBRepository>(app);
            auto presenter       = std::make_unique<notes::NotePreviewWindowPresenter>(std::move(notesRepository));
            return std::make_unique<notes::NotePreviewWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::name::window::note_edit, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::note_edit, [](ApplicationCommon *app, const std::string &name) {
            auto notesRepository = std::make_unique<notes::NotesDBRepository>(app);
            auto presenter       = std::make_unique<notes::NoteEditWindowPresenter>(std::move(notesRepository));
            return std::make_unique<notes::NoteEditWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::name::window::note_create, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::note_create, [](ApplicationCommon *app, const std::string &name) {
            auto notesRepository = std::make_unique<notes::NotesDBRepository>(app);
            auto presenter       = std::make_unique<notes::NoteCreateWindowPresenter>(std::move(notesRepository));
            return std::make_unique<notes::NoteCreateWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::name::window::notes_search, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::notes_search, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<notes::SearchEngineWindow>(app,
                                                               std::make_unique<notes::SearchEngineWindowPresenter>());
        });
        windowsFactory.attach(gui::name::window::notes_search_result, [](Application *app, const std::string &) {
        windowsFactory.attach(gui::name::window::notes_search_result, [](ApplicationCommon *app, const std::string &) {
            auto notesRepository = std::make_unique<notes::NotesDBRepository>(app);
            auto notesProvider   = std::make_shared<notes::NotesSearchListModel>(app, std::move(notesRepository));
            auto presenter       = std::make_unique<notes::NotesSearchWindowPresenter>(notesProvider);
            return std::make_unique<notes::SearchResultsWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::name::window::note_dialog, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::note_dialog, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(gui::name::window::note_confirm_dialog, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });
        windowsFactory.attach(
            utils::translate("app_phonebook_options_title"),
            [](Application *app, const std::string &name) { return std::make_unique<gui::OptionWindow>(app, name); });
        windowsFactory.attach(gui::name::window::note_confirm_dialog,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::DialogYesNo>(app, name);
                              });
        windowsFactory.attach(utils::translate("app_phonebook_options_title"),
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::OptionWindow>(app, name);
                              });

        attachPopups(
            {gui::popup::ID::Volume, gui::popup::ID::Tethering, gui::popup::ID::PhoneModes, gui::popup::ID::PhoneLock});

M module-apps/application-notes/CMakeLists.txt => module-apps/application-notes/CMakeLists.txt +1 -0
@@ 56,6 56,7 @@ target_sources(application-notes

target_link_libraries(application-notes
	PRIVATE
		app
		apps-common
		clipboard
		module-gui

M module-apps/application-notes/model/NotesListModel.cpp => module-apps/application-notes/model/NotesListModel.cpp +3 -2
@@ 14,10 14,11 @@

namespace app::notes
{
    NotesListItemProvider::NotesListItemProvider(Application *app) : DatabaseModel(app)
    NotesListItemProvider::NotesListItemProvider(ApplicationCommon *app) : DatabaseModel(app)
    {}

    NotesListModel::NotesListModel(app::Application *app, std::shared_ptr<AbstractNotesRepository> notesRepository)
    NotesListModel::NotesListModel(app::ApplicationCommon *app,
                                   std::shared_ptr<AbstractNotesRepository> notesRepository)
        : NotesListItemProvider(app), notesRepository{std::move(notesRepository)}
    {}


M module-apps/application-notes/model/NotesListModel.hpp => module-apps/application-notes/model/NotesListModel.hpp +1 -1
@@ 17,7 17,7 @@ namespace app::notes
    class NotesListModel : public NotesListItemProvider
    {
      public:
        NotesListModel(app::Application *app, std::shared_ptr<AbstractNotesRepository> notesRepository);
        NotesListModel(app::ApplicationCommon *app, std::shared_ptr<AbstractNotesRepository> notesRepository);

        [[nodiscard]] unsigned int requestRecordsCount() override;
        [[nodiscard]] bool updateRecords(std::vector<NotesRecord> records) override;

M module-apps/application-notes/model/NotesListProvider.hpp => module-apps/application-notes/model/NotesListProvider.hpp +2 -2
@@ 5,13 5,13 @@

#include <apps-common/DatabaseModel.hpp>
#include <module-db/Interface/NotesRecord.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>

namespace app::notes
{
    class NotesListItemProvider : public app::DatabaseModel<NotesRecord>, public gui::ListItemProvider
    {
      public:
        explicit NotesListItemProvider(app::Application *app);
        explicit NotesListItemProvider(app::ApplicationCommon *app);
    };
} // namespace app::notes

M module-apps/application-notes/model/NotesRepository.cpp => module-apps/application-notes/model/NotesRepository.cpp +1 -1
@@ 12,7 12,7 @@

namespace app::notes
{
    NotesDBRepository::NotesDBRepository(Application *application)
    NotesDBRepository::NotesDBRepository(ApplicationCommon *application)
        : app::AsyncCallbackReceiver{application}, application{application}
    {}


M module-apps/application-notes/model/NotesRepository.hpp => module-apps/application-notes/model/NotesRepository.hpp +3 -3
@@ 5,7 5,7 @@

#include <functional>

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>

#include <module-db/Interface/NotesRecord.hpp>



@@ 32,7 32,7 @@ namespace app::notes
    class NotesDBRepository : public AbstractNotesRepository, public app::AsyncCallbackReceiver
    {
      public:
        explicit NotesDBRepository(Application *application);
        explicit NotesDBRepository(ApplicationCommon *application);

        void get(std::uint32_t offset, std::uint32_t limit, const OnGetCallback &callback) override;
        void getByText(const std::string &text,


@@ 43,6 43,6 @@ namespace app::notes
        void remove(const NotesRecord &note, const OnRemoveCallback &callback) override;

      private:
        Application *application;
        ApplicationCommon *application;
    };
} // namespace app::notes

M module-apps/application-notes/model/NotesSearchListModel.hpp => module-apps/application-notes/model/NotesSearchListModel.hpp +1 -1
@@ 13,7 13,7 @@ namespace app::notes
    class NotesSearchListModel : public NotesListModel
    {
      public:
        NotesSearchListModel(app::Application *app, std::shared_ptr<AbstractNotesRepository> notesRepository)
        NotesSearchListModel(app::ApplicationCommon *app, std::shared_ptr<AbstractNotesRepository> notesRepository)
            : NotesListModel(app, std::move(notesRepository))
        {}
        void setSearchText(const std::string &text)

M module-apps/application-notes/windows/NoteCreateWindow.cpp => module-apps/application-notes/windows/NoteCreateWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace app::notes
{
    NoteCreateWindow::NoteCreateWindow(app::Application *app,
    NoteCreateWindow::NoteCreateWindow(app::ApplicationCommon *app,
                                       std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter)
        : NoteEditWindow(app, std::move(windowPresenter), gui::name::window::note_create)
    {}

M module-apps/application-notes/windows/NoteCreateWindow.hpp => module-apps/application-notes/windows/NoteCreateWindow.hpp +2 -1
@@ 10,7 10,8 @@ namespace app::notes
    class NoteCreateWindow : public NoteEditWindow
    {
      public:
        NoteCreateWindow(app::Application *app, std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter);
        NoteCreateWindow(app::ApplicationCommon *app,
                         std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter);

      private:
        bool onInput(const gui::InputEvent &inputEvent) override;

M module-apps/application-notes/windows/NoteEditWindow.cpp => module-apps/application-notes/windows/NoteEditWindow.cpp +2 -2
@@ 24,12 24,12 @@ namespace app::notes
        constexpr auto MaxCharactersCount = 4000U;
    } // namespace

    NoteEditWindow::NoteEditWindow(app::Application *app,
    NoteEditWindow::NoteEditWindow(app::ApplicationCommon *app,
                                   std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter)
        : NoteEditWindow(app, std::move(windowPresenter), gui::name::window::note_edit)
    {}

    NoteEditWindow::NoteEditWindow(app::Application *app,
    NoteEditWindow::NoteEditWindow(app::ApplicationCommon *app,
                                   std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter,
                                   const std::string &windowName)
        : gui::AppWindow{app, windowName}, presenter{std::move(windowPresenter)}

M module-apps/application-notes/windows/NoteEditWindow.hpp => module-apps/application-notes/windows/NoteEditWindow.hpp +3 -2
@@ 20,7 20,8 @@ namespace app::notes
    class NoteEditWindow : public gui::AppWindow, public NoteEditWindowContract::View
    {
      public:
        NoteEditWindow(app::Application *app, std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter);
        NoteEditWindow(app::ApplicationCommon *app,
                       std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter);
        ~NoteEditWindow() noexcept override;

        void onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) override;


@@ 32,7 33,7 @@ namespace app::notes
        void destroyInterface() override;

      protected:
        NoteEditWindow(app::Application *app,
        NoteEditWindow(app::ApplicationCommon *app,
                       std::unique_ptr<NoteEditWindowContract::Presenter> &&windowPresenter,
                       const std::string &windowName);
        virtual void onCharactersCountChanged(std::uint32_t count);

M module-apps/application-notes/windows/NoteMainWindow.cpp => module-apps/application-notes/windows/NoteMainWindow.cpp +1 -1
@@ 19,7 19,7 @@

namespace app::notes
{
    NoteMainWindow::NoteMainWindow(app::Application *app,
    NoteMainWindow::NoteMainWindow(app::ApplicationCommon *app,
                                   std::unique_ptr<NotesMainWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, gui::name::window::main_window), presenter{std::move(windowPresenter)}
    {

M module-apps/application-notes/windows/NoteMainWindow.hpp => module-apps/application-notes/windows/NoteMainWindow.hpp +2 -1
@@ 17,7 17,8 @@ namespace app::notes
    class NoteMainWindow : public gui::AppWindow, public NotesMainWindowContract::View
    {
      public:
        NoteMainWindow(app::Application *app, std::unique_ptr<NotesMainWindowContract::Presenter> &&windowPresenter);
        NoteMainWindow(app::ApplicationCommon *app,
                       std::unique_ptr<NotesMainWindowContract::Presenter> &&windowPresenter);
        ~NoteMainWindow() noexcept override;

        // virtual methods

M module-apps/application-notes/windows/NotePreviewWindow.cpp => module-apps/application-notes/windows/NotePreviewWindow.cpp +1 -1
@@ 16,7 16,7 @@

namespace app::notes
{
    NotePreviewWindow::NotePreviewWindow(app::Application *app,
    NotePreviewWindow::NotePreviewWindow(app::ApplicationCommon *app,
                                         std::unique_ptr<NotePreviewWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, gui::name::window::note_preview), presenter(std::move(windowPresenter))
    {

M module-apps/application-notes/windows/NotePreviewWindow.hpp => module-apps/application-notes/windows/NotePreviewWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace app::notes
    class NotePreviewWindow : public gui::AppWindow, public NotePreviewWindowContract::View
    {
      public:
        NotePreviewWindow(app::Application *app,
        NotePreviewWindow(app::ApplicationCommon *app,
                          std::unique_ptr<NotePreviewWindowContract::Presenter> &&windowPresenter);
        ~NotePreviewWindow() noexcept override;


M module-apps/application-notes/windows/NotesOptions.cpp => module-apps/application-notes/windows/NotesOptions.cpp +8 -4
@@ 24,7 24,9 @@ namespace app::notes
            options.emplace_back(utils::translate(translationId), onClickCallback);
        }

        void removeNote(const NotesRecord &record, Application *application, AbstractNotesRepository &notesRepository)
        void removeNote(const NotesRecord &record,
                        ApplicationCommon *application,
                        AbstractNotesRepository &notesRepository)
        {
            auto metaData = std::make_unique<gui::DialogMetadataMessage>(
                gui::DialogMetadata{record.snippet,


@@ 42,7 44,7 @@ namespace app::notes
        }
    } // namespace

    std::list<gui::Option> noteListOptions(Application *application,
    std::list<gui::Option> noteListOptions(ApplicationCommon *application,
                                           const NotesRecord &record,
                                           AbstractNotesRepository &notesRepository)
    {


@@ 57,7 59,7 @@ namespace app::notes
        return options;
    }

    std::list<gui::Option> notePreviewOptions(Application *application,
    std::list<gui::Option> notePreviewOptions(ApplicationCommon *application,
                                              const NotesRecord &record,
                                              AbstractNotesRepository &notesRepository,
                                              gui::Text *textWidget)


@@ 83,7 85,9 @@ namespace app::notes
        return options;
    }

    std::list<gui::Option> noteEditOptions(Application *application, const NotesRecord &record, gui::Text *textWidget)
    std::list<gui::Option> noteEditOptions(ApplicationCommon *application,
                                           const NotesRecord &record,
                                           gui::Text *textWidget)
    {
        std::list<gui::Option> options;
        addOption(

M module-apps/application-notes/windows/NotesOptions.hpp => module-apps/application-notes/windows/NotesOptions.hpp +5 -3
@@ 15,12 15,14 @@ namespace gui

namespace app::notes
{
    std::list<gui::Option> noteListOptions(Application *application,
    std::list<gui::Option> noteListOptions(ApplicationCommon *application,
                                           const NotesRecord &record,
                                           AbstractNotesRepository &notesRepository);
    std::list<gui::Option> notePreviewOptions(Application *application,
    std::list<gui::Option> notePreviewOptions(ApplicationCommon *application,
                                              const NotesRecord &record,
                                              AbstractNotesRepository &notesRepository,
                                              gui::Text *textWidget);
    std::list<gui::Option> noteEditOptions(Application *application, const NotesRecord &record, gui::Text *textWidget);
    std::list<gui::Option> noteEditOptions(ApplicationCommon *application,
                                           const NotesRecord &record,
                                           gui::Text *textWidget);
} // namespace app::notes

M module-apps/application-notes/windows/SearchEngineWindow.cpp => module-apps/application-notes/windows/SearchEngineWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace app::notes
{
    SearchEngineWindow::SearchEngineWindow(Application *application,
    SearchEngineWindow::SearchEngineWindow(ApplicationCommon *application,
                                           std::unique_ptr<SearchEngineWindowContract::Presenter> &&windowPresenter)
        : gui::AppWindow{application, gui::name::window::notes_search}, presenter{std::move(windowPresenter)}
    {

M module-apps/application-notes/windows/SearchEngineWindow.hpp => module-apps/application-notes/windows/SearchEngineWindow.hpp +2 -2
@@ 5,7 5,7 @@

#include "AppWindow.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-apps/application-notes/presenter/SearchEngineWindowPresenter.hpp>

#include <module-gui/gui/input/InputEvent.hpp>


@@ 16,7 16,7 @@ namespace app::notes
    class SearchEngineWindow : public gui::AppWindow, public SearchEngineWindowContract::View
    {
      public:
        SearchEngineWindow(Application *application,
        SearchEngineWindow(ApplicationCommon *application,
                           std::unique_ptr<SearchEngineWindowContract::Presenter> &&windowPresenter);
        ~SearchEngineWindow() noexcept override;


M module-apps/application-notes/windows/SearchResultsWindow.cpp => module-apps/application-notes/windows/SearchResultsWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace app::notes
{
    SearchResultsWindow::SearchResultsWindow(Application *application,
    SearchResultsWindow::SearchResultsWindow(ApplicationCommon *application,
                                             std::unique_ptr<NotesSearchWindowContract::Presenter> &&windowPresenter)
        : AppWindow(application, gui::name::window::notes_search_result), presenter(std::move(windowPresenter))
    {

M module-apps/application-notes/windows/SearchResultsWindow.hpp => module-apps/application-notes/windows/SearchResultsWindow.hpp +2 -2
@@ 7,7 7,7 @@

#include "AppWindow.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-apps/application-notes/presenter/NotesSearchResultPresenter.hpp>

#include <module-gui/gui/widgets/ListView.hpp>


@@ 17,7 17,7 @@ namespace app::notes
    class SearchResultsWindow : public gui::AppWindow, public NotesSearchWindowContract::View
    {
      public:
        explicit SearchResultsWindow(app::Application *app,
        explicit SearchResultsWindow(app::ApplicationCommon *app,
                                     std::unique_ptr<NotesSearchWindowContract::Presenter> &&windowPresenter);
        ~SearchResultsWindow() noexcept override;


M module-apps/application-onboarding/ApplicationOnBoarding.cpp => module-apps/application-onboarding/ApplicationOnBoarding.cpp +22 -20
@@ 116,55 116,57 @@ namespace app

    void ApplicationOnBoarding::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<app::onBoarding::OnBoardingLanguagesWindow>(app, gui::name::window::main_window);
        });
        windowsFactory.attach(gui::window::name::onBoarding_start_configuration,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::StartConfigurationWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_eula, [&](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::onBoarding_eula, [&](ApplicationCommon *app, const std::string &name) {
            auto eulaRepository = std::make_unique<app::onBoarding::EULARepository>("assets/licenses", "eula.txt");
            auto presenter      = std::make_unique<app::onBoarding::EULALicenseWindowPresenter>([&]() { acceptEULA(); },
                                                                                           std::move(eulaRepository));
            return std::make_unique<app::onBoarding::EULALicenseWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::onBoarding_sim_select, [](Application *app, const std::string &name) {
            return std::make_unique<app::onBoarding::OnBoardingSimSelectWindow>(
                app, gui::window::name::onBoarding_sim_select);
        });
        windowsFactory.attach(gui::window::name::onBoarding_sim_select,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::OnBoardingSimSelectWindow>(
                                      app, gui::window::name::onBoarding_sim_select);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_no_sim_selected,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::NoSimSelectedDialogWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_configuration_successful,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::ConfigurationSuccessfulDialogWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_no_configuration,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::NoConfigurationDialogWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_update, [&](Application *app, const std::string &name) {
            auto presenter =
                std::make_unique<app::onBoarding::OnBoardingFinalizeWindowPresenter>([&]() { finalizeOnBoarding(); });
            return std::make_unique<app::onBoarding::UpdateDialogWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::onBoarding_skip, [](Application *app, const std::string &name) {
        windowsFactory.attach(
            gui::window::name::onBoarding_update, [&](ApplicationCommon *app, const std::string &name) {
                auto presenter = std::make_unique<app::onBoarding::OnBoardingFinalizeWindowPresenter>(
                    [&]() { finalizeOnBoarding(); });
                return std::make_unique<app::onBoarding::UpdateDialogWindow>(app, std::move(presenter));
            });
        windowsFactory.attach(gui::window::name::onBoarding_skip, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<app::onBoarding::SkipDialogWindow>(app);
        });
        windowsFactory.attach(gui::window::name::onBoarding_date_and_time,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::OnBoardingDateAndTimeWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::onBoarding_change_date_and_time,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<app::onBoarding::OnBoardingChangeDateAndTimeWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::change_time_zone, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ChangeTimeZone>(app);
        });
        windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_confirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, gui::window::name::dialog_confirm);
        });


M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp => module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.cpp +1 -1
@@ 14,7 14,7 @@

namespace app::onBoarding
{
    ConfigurationSuccessfulDialogWindow::ConfigurationSuccessfulDialogWindow(app::Application *app)
    ConfigurationSuccessfulDialogWindow::ConfigurationSuccessfulDialogWindow(app::ApplicationCommon *app)
        : gui::Dialog(app, gui::window::name::onBoarding_configuration_successful)
    {
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);

M module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.hpp => module-apps/application-onboarding/windows/ConfigurationSuccessfulDialogWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace app::onBoarding
    class ConfigurationSuccessfulDialogWindow : public gui::Dialog
    {
      public:
        explicit ConfigurationSuccessfulDialogWindow(app::Application *app);
        explicit ConfigurationSuccessfulDialogWindow(app::ApplicationCommon *app);

        bool onInput(const gui::InputEvent &inputEvent) override;
    };

M module-apps/application-onboarding/windows/EULALicenseWindow.cpp => module-apps/application-onboarding/windows/EULALicenseWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace app::onBoarding
{
    EULALicenseWindow::EULALicenseWindow(app::Application *app,
    EULALicenseWindow::EULALicenseWindow(app::ApplicationCommon *app,
                                         std::unique_ptr<EULALicenseWindowContract::Presenter> &&windowPresenter)
        : gui::AppWindow(app, gui::window::name::onBoarding_eula), presenter{std::move(windowPresenter)}
    {

M module-apps/application-onboarding/windows/EULALicenseWindow.hpp => module-apps/application-onboarding/windows/EULALicenseWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace app::onBoarding
    class EULALicenseWindow : public gui::AppWindow, public EULALicenseWindowContract::View
    {
      public:
        explicit EULALicenseWindow(app::Application *app,
        explicit EULALicenseWindow(app::ApplicationCommon *app,
                                   std::unique_ptr<EULALicenseWindowContract::Presenter> &&windowPresenter);
        ~EULALicenseWindow() noexcept override;


M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp => module-apps/application-onboarding/windows/NoConfigurationDialogWindow.cpp +1 -1
@@ 14,7 14,7 @@

namespace app::onBoarding
{
    NoConfigurationDialogWindow::NoConfigurationDialogWindow(app::Application *app)
    NoConfigurationDialogWindow::NoConfigurationDialogWindow(app::ApplicationCommon *app)
        : gui::Dialog(app, gui::window::name::onBoarding_no_configuration)
    {
        header->navigationIndicatorAdd(new gui::header::IceAction(), gui::header::BoxSelection::Left);

M module-apps/application-onboarding/windows/NoConfigurationDialogWindow.hpp => module-apps/application-onboarding/windows/NoConfigurationDialogWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace app::onBoarding
    class NoConfigurationDialogWindow : public gui::Dialog
    {
      public:
        explicit NoConfigurationDialogWindow(app::Application *app);
        explicit NoConfigurationDialogWindow(app::ApplicationCommon *app);

        bool onInput(const gui::InputEvent &inputEvent) override;
    };

M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp => module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace app::onBoarding
{
    NoSimSelectedDialogWindow::NoSimSelectedDialogWindow(app::Application *app)
    NoSimSelectedDialogWindow::NoSimSelectedDialogWindow(app::ApplicationCommon *app)
        : gui::Dialog(app, gui::window::name::onBoarding_no_sim_selected)
    {
        bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));

M module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.hpp => module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace app::onBoarding
    class NoSimSelectedDialogWindow : public gui::Dialog
    {
      public:
        explicit NoSimSelectedDialogWindow(app::Application *app);
        explicit NoSimSelectedDialogWindow(app::ApplicationCommon *app);

        bool onInput(const gui::InputEvent &inputEvent) override;
    };

M module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp => module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace app::onBoarding
{
    OnBoardingChangeDateAndTimeWindow::OnBoardingChangeDateAndTimeWindow(app::Application *app)
    OnBoardingChangeDateAndTimeWindow::OnBoardingChangeDateAndTimeWindow(app::ApplicationCommon *app)
        : ChangeDateAndTimeWindow(app, gui::window::name::onBoarding_change_date_and_time)
    {}


M module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp => module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace app::onBoarding
    class OnBoardingChangeDateAndTimeWindow : public gui::ChangeDateAndTimeWindow
    {
      public:
        explicit OnBoardingChangeDateAndTimeWindow(app::Application *app);
        explicit OnBoardingChangeDateAndTimeWindow(app::ApplicationCommon *app);

        bool onInput(const gui::InputEvent &inputEvent) override;
    };

M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp => module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp +1 -1
@@ 13,7 13,7 @@

namespace app::onBoarding
{
    OnBoardingDateAndTimeWindow::OnBoardingDateAndTimeWindow(app::Application *app)
    OnBoardingDateAndTimeWindow::OnBoardingDateAndTimeWindow(app::ApplicationCommon *app)
        : DateAndTimeMainWindow(app, gui::window::name::onBoarding_date_and_time)
    {
        changeDateAndTimeWindow = gui::window::name::onBoarding_change_date_and_time;

M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp => module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace app::onBoarding
    class OnBoardingDateAndTimeWindow : public gui::DateAndTimeMainWindow
    {
      public:
        explicit OnBoardingDateAndTimeWindow(app::Application *app);
        explicit OnBoardingDateAndTimeWindow(app::ApplicationCommon *app);
        ~OnBoardingDateAndTimeWindow();

      protected:

M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp => module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace app::onBoarding
{
    OnBoardingLanguagesWindow::OnBoardingLanguagesWindow(app::Application *app, const std::string &name)
    OnBoardingLanguagesWindow::OnBoardingLanguagesWindow(app::ApplicationCommon *app, const std::string &name)
        : LanguagesWindow(app, name)
    {
        applyToStatusBar([](gui::status_bar::Configuration configuration) {

M module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp => module-apps/application-onboarding/windows/OnBoardingLanguagesWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace app::onBoarding
    class OnBoardingLanguagesWindow : public gui::LanguagesWindow
    {
      public:
        explicit OnBoardingLanguagesWindow(app::Application *app, const std::string &);
        explicit OnBoardingLanguagesWindow(app::ApplicationCommon *app, const std::string &);

      private:
        void onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) override;

M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp => module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp +1 -1
@@ 13,7 13,7 @@

namespace app::onBoarding
{
    OnBoardingSimSelectWindow::OnBoardingSimSelectWindow(app::Application *app, std::string name)
    OnBoardingSimSelectWindow::OnBoardingSimSelectWindow(app::ApplicationCommon *app, std::string name)
        : BaseSettingsWindow(app, std::move(name))
    {
        buildInterface();

M module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp => module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace app::onBoarding
    class OnBoardingSimSelectWindow : public gui::BaseSettingsWindow
    {
      public:
        explicit OnBoardingSimSelectWindow(app::Application *app, std::string name);
        explicit OnBoardingSimSelectWindow(app::ApplicationCommon *app, std::string name);
        void buildInterface() override;

      private:

M module-apps/application-onboarding/windows/SkipDialogWindow.cpp => module-apps/application-onboarding/windows/SkipDialogWindow.cpp +1 -1
@@ 6,7 6,7 @@

namespace app::onBoarding
{
    SkipDialogWindow::SkipDialogWindow(app::Application *app)
    SkipDialogWindow::SkipDialogWindow(app::ApplicationCommon *app)
        : gui::DialogYesNo(app, gui::window::name::onBoarding_skip)
    {
        applyToStatusBar([](gui::status_bar::Configuration configuration) {

M module-apps/application-onboarding/windows/SkipDialogWindow.hpp => module-apps/application-onboarding/windows/SkipDialogWindow.hpp +1 -1
@@ 10,6 10,6 @@ namespace app::onBoarding
    class SkipDialogWindow : public gui::DialogYesNo
    {
      public:
        explicit SkipDialogWindow(app::Application *app);
        explicit SkipDialogWindow(app::ApplicationCommon *app);
    };
} // namespace app::onBoarding

M module-apps/application-onboarding/windows/StartConfigurationWindow.cpp => module-apps/application-onboarding/windows/StartConfigurationWindow.cpp +1 -1
@@ 17,7 17,7 @@

namespace app::onBoarding
{
    StartConfigurationWindow::StartConfigurationWindow(app::Application *app)
    StartConfigurationWindow::StartConfigurationWindow(app::ApplicationCommon *app)
        : gui::AppWindow(app, gui::window::name::onBoarding_start_configuration)
    {
        buildInterface();

M module-apps/application-onboarding/windows/StartConfigurationWindow.hpp => module-apps/application-onboarding/windows/StartConfigurationWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace app::onBoarding
    class StartConfigurationWindow : public gui::AppWindow
    {
      public:
        explicit StartConfigurationWindow(app::Application *app);
        explicit StartConfigurationWindow(app::ApplicationCommon *app);

        gui::status_bar::Configuration configureStatusBar(gui::status_bar::Configuration appConfiguration) override;
        bool onInput(const gui::InputEvent &inputEvent) override;

M module-apps/application-onboarding/windows/UpdateDialogWindow.cpp => module-apps/application-onboarding/windows/UpdateDialogWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace app::onBoarding
{
    UpdateDialogWindow::UpdateDialogWindow(app::Application *app,
    UpdateDialogWindow::UpdateDialogWindow(app::ApplicationCommon *app,
                                           std::unique_ptr<OnBoardingFinalizeContract::Presenter> &&windowPresenter)
        : gui::Dialog(app, gui::window::name::onBoarding_update), presenter(std::move(windowPresenter))
    {

M module-apps/application-onboarding/windows/UpdateDialogWindow.hpp => module-apps/application-onboarding/windows/UpdateDialogWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace app::onBoarding
        std::unique_ptr<OnBoardingFinalizeContract::Presenter> presenter;

      public:
        UpdateDialogWindow(app::Application *app,
        UpdateDialogWindow(app::ApplicationCommon *app,
                           std::unique_ptr<OnBoardingFinalizeContract::Presenter> &&windowPresenter);
        void onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) override;
        bool onInput(const gui::InputEvent &inputEvent) override;

M module-apps/application-phonebook/ApplicationPhonebook.cpp => module-apps/application-phonebook/ApplicationPhonebook.cpp +15 -14
@@ 97,41 97,42 @@ namespace app

    void ApplicationPhonebook::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::contact, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::contact, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookContactDetails>(app);
        });
        windowsFactory.attach(gui::window::name::search, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::search, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookSearch>(app);
        });
        windowsFactory.attach(gui::window::name::search_results, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::search_results, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookSearchResults>(app);
        });
        windowsFactory.attach(gui::window::name::dialog, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(gui::window::name::dialog_yes_no, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_yes_no, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, gui::window::name::dialog_yes_no);
        });
        windowsFactory.attach(gui::window::name::dialog_yes_no_icon_txt, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNoIconTxt>(app, name);
        });
        windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_yes_no_icon_txt,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::DialogYesNoIconTxt>(app, name);
                              });
        windowsFactory.attach(gui::window::name::dialog_confirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, gui::window::name::dialog_confirm);
        });
        windowsFactory.attach(gui::window::name::contact_options, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::contact_options, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookContactOptions>(app);
        });
        windowsFactory.attach(gui::window::name::namecard_options, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::namecard_options, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookNamecardOptions>(app);
        });
        windowsFactory.attach(gui::window::name::ice_contacts, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::ice_contacts, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookIceContacts>(app);
        });

        windowsFactory.attach(gui::window::name::new_contact, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::new_contact, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhonebookNewContact>(app);
        });


M module-apps/application-phonebook/CMakeLists.txt => module-apps/application-phonebook/CMakeLists.txt +1 -0
@@ 63,6 63,7 @@ target_compile_definitions(application-phonebook

target_link_libraries(application-phonebook
    PRIVATE
        app
        utf8
        module-gui
        module-utils

M module-apps/application-phonebook/models/ContactDetailsModel.cpp => module-apps/application-phonebook/models/ContactDetailsModel.cpp +1 -1
@@ 11,7 11,7 @@
#include <time/ScopedTime.hpp>
#include <module-apps/application-phonebook/data/PhonebookInternals.hpp>

ContactDetailsModel::ContactDetailsModel(app::Application *app) : application(app)
ContactDetailsModel::ContactDetailsModel(app::ApplicationCommon *app) : application(app)
{}

void ContactDetailsModel::clearData()

M module-apps/application-phonebook/models/ContactDetailsModel.hpp => module-apps/application-phonebook/models/ContactDetailsModel.hpp +2 -2
@@ 12,10 12,10 @@

class ContactDetailsModel : public app::InternalModel<gui::ContactListItem *>, public gui::ListItemProvider
{
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;

  public:
    ContactDetailsModel(app::Application *app);
    ContactDetailsModel(app::ApplicationCommon *app);

    void clearData();
    void loadData(std::shared_ptr<ContactRecord> contactRecord);

M module-apps/application-phonebook/models/NewContactModel.cpp => module-apps/application-phonebook/models/NewContactModel.cpp +1 -1
@@ 12,7 12,7 @@
#include <time/ScopedTime.hpp>
#include <BottomBar.hpp>

NewContactModel::NewContactModel(app::Application *app) : application(app)
NewContactModel::NewContactModel(app::ApplicationCommon *app) : application(app)
{}

auto NewContactModel::requestRecordsCount() -> unsigned int

M module-apps/application-phonebook/models/NewContactModel.hpp => module-apps/application-phonebook/models/NewContactModel.hpp +2 -2
@@ 12,10 12,10 @@

class NewContactModel : public app::InternalModel<gui::ContactListItem *>, public gui::ListItemProvider
{
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;

  public:
    NewContactModel(app::Application *app);
    NewContactModel(app::ApplicationCommon *app);

    void clearData();
    void saveData(std::shared_ptr<ContactRecord> contactRecord);

M module-apps/application-phonebook/models/PhonebookModel.cpp => module-apps/application-phonebook/models/PhonebookModel.cpp +1 -1
@@ 22,7 22,7 @@

const static std::uint32_t phonebookModelTimeout = 1000;

PhonebookModel::PhonebookModel(app::Application *app,
PhonebookModel::PhonebookModel(app::ApplicationCommon *app,
                               std::string filter,
                               std::uint32_t groupFilter,
                               std::uint32_t displayMode)

M module-apps/application-phonebook/models/PhonebookModel.hpp => module-apps/application-phonebook/models/PhonebookModel.hpp +2 -2
@@ 5,9 5,9 @@

#include <vector>

#include <apps-common/ApplicationCommon.hpp>
#include "application-phonebook/data/PhonebookStyle.hpp"
#include "application-phonebook/widgets/PhonebookItem.hpp"
#include "Application.hpp"
#include "Common/Query.hpp"
#include "DatabaseModel.hpp"
#include "Interface/ContactRecord.hpp"


@@ 29,7 29,7 @@ class PhonebookModel : public app::DatabaseModel<ContactRecord>,

  public:
    ContactsMapData letterMap;
    PhonebookModel(app::Application *app,
    PhonebookModel(app::ApplicationCommon *app,
                   std::string filter        = "",
                   std::uint32_t groupFilter = 0,
                   std::uint32_t displayMode = 0);

M module-apps/application-phonebook/widgets/InformationWidget.cpp => module-apps/application-phonebook/widgets/InformationWidget.cpp +1 -1
@@ 13,7 13,7 @@

namespace gui
{
    InformationWidget::InformationWidget(app::Application *app)
    InformationWidget::InformationWidget(app::ApplicationCommon *app)
    {
        setMargins(gui::Margins(style::widgets::leftMargin, style::margins::huge, 0, 0));


M module-apps/application-phonebook/widgets/InformationWidget.hpp => module-apps/application-phonebook/widgets/InformationWidget.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    class InformationWidget : public ContactListItem
    {
      public:
        InformationWidget(app::Application *app);
        InformationWidget(app::ApplicationCommon *app);
        ~InformationWidget() override = default;
        VBox *vBox                               = nullptr;
        Label *titleLabel                        = nullptr;

M module-apps/application-phonebook/widgets/PhonebookListView.hpp => module-apps/application-phonebook/widgets/PhonebookListView.hpp +1 -1
@@ 4,7 4,7 @@
#pragma once

#include "application-phonebook/widgets/PhonebookItem.hpp"
#include "Application.hpp"
#include <apps-common/ApplicationCommon.hpp>

#include <ListView.hpp>


M module-apps/application-phonebook/windows/PhonebookContactDetails.cpp => module-apps/application-phonebook/windows/PhonebookContactDetails.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    PhonebookContactDetails::PhonebookContactDetails(app::Application *app)
    PhonebookContactDetails::PhonebookContactDetails(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::contact), contactDetailsModel{std::make_shared<ContactDetailsModel>(app)}
    {
        buildInterface();

M module-apps/application-phonebook/windows/PhonebookContactDetails.hpp => module-apps/application-phonebook/windows/PhonebookContactDetails.hpp +1 -1
@@ 16,7 16,7 @@ namespace gui
    class PhonebookContactDetails : public AppWindow
    {
      public:
        PhonebookContactDetails(app::Application *app);
        PhonebookContactDetails(app::ApplicationCommon *app);
        ~PhonebookContactDetails() override;

        auto onInput(const InputEvent &inputEvent) -> bool override;

M module-apps/application-phonebook/windows/PhonebookContactOptions.cpp => module-apps/application-phonebook/windows/PhonebookContactOptions.cpp +1 -1
@@ 14,7 14,7 @@
namespace gui
{

    PhonebookContactOptions::PhonebookContactOptions(app::Application *app)
    PhonebookContactOptions::PhonebookContactOptions(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::contact_options)
    {}


M module-apps/application-phonebook/windows/PhonebookContactOptions.hpp => module-apps/application-phonebook/windows/PhonebookContactOptions.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class PhonebookContactOptions : public OptionWindow
    {
      public:
        PhonebookContactOptions(app::Application *app);
        PhonebookContactOptions(app::ApplicationCommon *app);
        ~PhonebookContactOptions() override = default;
        auto handleSwitchData(SwitchData *data) -> bool override;


M module-apps/application-phonebook/windows/PhonebookIceContacts.cpp => module-apps/application-phonebook/windows/PhonebookIceContacts.cpp +1 -1
@@ 9,7 9,7 @@

namespace gui
{
    PhonebookIceContacts::PhonebookIceContacts(app::Application *app)
    PhonebookIceContacts::PhonebookIceContacts(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::ice_contacts), phonebookModel{std::make_shared<PhonebookModel>(
                                                               this->application, "", ContactsDB::iceGroupId())}
    {

M module-apps/application-phonebook/windows/PhonebookIceContacts.hpp => module-apps/application-phonebook/windows/PhonebookIceContacts.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
    class PhonebookIceContacts : public AppWindow
    {
      public:
        PhonebookIceContacts(app::Application *app);
        PhonebookIceContacts(app::ApplicationCommon *app);
        virtual ~PhonebookIceContacts();

        bool onInput(const InputEvent &inputEvent) override;

M module-apps/application-phonebook/windows/PhonebookMainWindow.cpp => module-apps/application-phonebook/windows/PhonebookMainWindow.cpp +1 -1
@@ 16,7 16,7 @@

namespace gui
{
    PhonebookMainWindow::PhonebookMainWindow(app::Application *app)
    PhonebookMainWindow::PhonebookMainWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::name::window::main_window), phonebookModel{
                                                              std::make_shared<PhonebookModel>(this->application)}
    {

M module-apps/application-phonebook/windows/PhonebookMainWindow.hpp => module-apps/application-phonebook/windows/PhonebookMainWindow.hpp +1 -1
@@ 32,7 32,7 @@ namespace gui
        void onListFilled();

      public:
        PhonebookMainWindow(app::Application *app);
        PhonebookMainWindow(app::ApplicationCommon *app);
        virtual ~PhonebookMainWindow();

        // virtual methods

M module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp => module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp +1 -1
@@ 11,7 11,7 @@
namespace gui
{

    PhonebookNamecardOptions::PhonebookNamecardOptions(app::Application *app)
    PhonebookNamecardOptions::PhonebookNamecardOptions(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::namecard_options)
    {
        addOptions(namecardOptionsList());

M module-apps/application-phonebook/windows/PhonebookNamecardOptions.hpp => module-apps/application-phonebook/windows/PhonebookNamecardOptions.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class PhonebookNamecardOptions : public OptionWindow
    {
      public:
        PhonebookNamecardOptions(app::Application *app);
        PhonebookNamecardOptions(app::ApplicationCommon *app);
        ~PhonebookNamecardOptions() override = default;
        auto onInput(const InputEvent &inputEvent) -> bool override;
        auto handleSwitchData(SwitchData *data) -> bool override;

M module-apps/application-phonebook/windows/PhonebookNewContact.cpp => module-apps/application-phonebook/windows/PhonebookNewContact.cpp +1 -1
@@ 14,7 14,7 @@
namespace gui
{

    PhonebookNewContact::PhonebookNewContact(app::Application *app)
    PhonebookNewContact::PhonebookNewContact(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::new_contact), newContactModel{std::make_shared<NewContactModel>(app)}
    {
        buildInterface();

M module-apps/application-phonebook/windows/PhonebookNewContact.hpp => module-apps/application-phonebook/windows/PhonebookNewContact.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
    class PhonebookNewContact : public AppWindow
    {
      public:
        PhonebookNewContact(app::Application *app);
        PhonebookNewContact(app::ApplicationCommon *app);

        auto onInput(const InputEvent &inputEvent) -> bool override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-phonebook/windows/PhonebookSearch.cpp => module-apps/application-phonebook/windows/PhonebookSearch.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    PhonebookSearch::PhonebookSearch(app::Application *app) : AppWindow(app, gui::window::name::search)
    PhonebookSearch::PhonebookSearch(app::ApplicationCommon *app) : AppWindow(app, gui::window::name::search)
    {
        buildInterface();
    }

M module-apps/application-phonebook/windows/PhonebookSearch.hpp => module-apps/application-phonebook/windows/PhonebookSearch.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class PhonebookSearch : public AppWindow
    {
      public:
        explicit PhonebookSearch(app::Application *app);
        explicit PhonebookSearch(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp => module-apps/application-phonebook/windows/PhonebookSearchResults.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    PhonebookSearchResults::PhonebookSearchResults(app::Application *app)
    PhonebookSearchResults::PhonebookSearchResults(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::search_results)
    {
        buildInterface();

M module-apps/application-phonebook/windows/PhonebookSearchResults.hpp => module-apps/application-phonebook/windows/PhonebookSearchResults.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class PhonebookSearchResults : public AppWindow
    {
      public:
        explicit PhonebookSearchResults(app::Application *app);
        explicit PhonebookSearchResults(app::ApplicationCommon *app);
        ~PhonebookSearchResults() override;

      private:

M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +79 -72
@@ 362,203 362,210 @@ namespace app

    void ApplicationSettings::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::OptionWindow>(
                app, utils::translate("app_settings_title_main"), mainWindowOptionsNew(app));
        });

        // Advanced
        windowsFactory.attach(gui::window::name::advanced, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::advanced, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::OptionWindow>(
                app, utils::translate("app_settings_advanced"), advancedOptions(app));
        });
        windowsFactory.attach(gui::window::name::information, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::information, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::InformationWindow>(app);
        });
        windowsFactory.attach(gui::window::name::ui_test, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::ui_test, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::UiTestWindow>(app);
        });
        windowsFactory.attach(gui::window::name::eink_mode, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::eink_mode, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::EinkModeWindow>(app);
        });
        windowsFactory.attach(gui::window::name::color_test_window, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ColorTestWindow>(app);
        });
        windowsFactory.attach(gui::window::name::status_bar_img_type, [](Application *app, const std::string &name) {
            return std::make_unique<gui::StatusBarImageTypeWindow>(app);
        });
        windowsFactory.attach(gui::window::name::color_test_window,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::ColorTestWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::status_bar_img_type,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::StatusBarImageTypeWindow>(app);
                              });

        // Bluetooth
        windowsFactory.attach(gui::window::name::bluetooth, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::bluetooth, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::BluetoothWindow>(app);
        });
        windowsFactory.attach(gui::window::name::add_device, [this](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::add_device, [this](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AddDeviceWindow>(app, bluetoothSettingsModel);
        });
        windowsFactory.attach(gui::window::name::all_devices, [this](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::all_devices, [this](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AllDevicesWindow>(app, bluetoothSettingsModel);
        });
        windowsFactory.attach(gui::window::name::phone_name, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::phone_name, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhoneNameWindow>(app);
        });
        windowsFactory.attach(gui::window::name::bluetooth_check_passkey,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BluetoothCheckPasskeyWindow>(app);
                              });

        // Network
        windowsFactory.attach(gui::window::name::network, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::network, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::NetworkWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::sim_cards, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::sim_cards, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SimCardsWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::sim_pin_settings, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::sim_pin_settings, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SimPINSettingsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::import_contacts, [&](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::import_contacts, [&](ApplicationCommon *app, const std::string &name) {
            auto repository = std::make_unique<SimContactsRepository>(this);
            auto model      = std::make_unique<SimContactsImportModel>(this, std::move(repository));
            auto presenter  = std::make_unique<SimContactsImportWindowPresenter>(this, std::move(model));
            return std::make_unique<gui::SimContactsImportWindow>(app, std::move(presenter));
        });

        windowsFactory.attach(gui::window::name::new_apn, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::new_apn, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::NewApnWindow>(app);
        });
        windowsFactory.attach(gui::window::name::apn_settings, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::apn_settings, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ApnSettingsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::apn_options, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::apn_options, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ApnOptionsWindow>(app);
        });

        // Display and keypad
        windowsFactory.attach(gui::window::name::display_and_keypad, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DisplayAndKeypadWindow>(app);
        });
        windowsFactory.attach(gui::window::name::display_light, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::display_and_keypad,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::DisplayAndKeypadWindow>(app);
                              });
        windowsFactory.attach(gui::window::name::display_light, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DisplayLightWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::font_size, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::font_size, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::FontSizeWindow>(app);
        });
        windowsFactory.attach(gui::window::name::wallpaper, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::wallpaper, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::WallpaperWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quotes, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::quotes, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::QuotesMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::new_quote, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::new_quote, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::QuoteAddEditWindow>(app);
        });
        windowsFactory.attach(gui::window::name::options_quote, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::options_quote, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::QuotesOptionsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::edit_quotes, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::edit_quotes, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::EditQuotesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quote_categories, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::quote_categories, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::QuoteCategoriesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::quotes_dialog_yes_no, [](Application *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });
        windowsFactory.attach(gui::window::name::keypad_light, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::quotes_dialog_yes_no,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::DialogYesNo>(app, name);
                              });
        windowsFactory.attach(gui::window::name::keypad_light, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::KeypadLightWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::input_language, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::input_language, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::InputLanguageWindow>(app);
        });

        // Phone modes
        windowsFactory.attach(gui::window::name::phone_modes, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::phone_modes, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::PhoneModesWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::do_not_disturb, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::do_not_disturb, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DoNotDisturbWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::offline, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::offline, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::OfflineWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(gui::window::name::connection_frequency, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ConnectionFrequencyWindow>(app, static_cast<ApplicationSettings *>(app));
        });
        windowsFactory.attach(
            gui::window::name::connection_frequency, [](ApplicationCommon *app, const std::string &name) {
                return std::make_unique<gui::ConnectionFrequencyWindow>(app, static_cast<ApplicationSettings *>(app));
            });

        // Apps
        windowsFactory.attach(gui::window::name::apps, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::apps, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AppsWindow>(app);
        });
        windowsFactory.attach(gui::window::name::phone, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::phone, [](ApplicationCommon *app, const std::string &name) {
            auto audioModel =
                std::make_unique<audio_settings::AudioSettingsModel>(app, audio_settings::PlaybackType::CallRingtone);
            return std::make_unique<gui::PhoneWindow>(app, std::move(audioModel));
        });
        windowsFactory.attach(gui::window::name::messages, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::messages, [](ApplicationCommon *app, const std::string &name) {
            auto audioModel = std::make_unique<audio_settings::AudioSettingsModel>(
                app, audio_settings::PlaybackType::TextMessageRingtone);
            return std::make_unique<gui::MessagesWindow>(app, std::move(audioModel));
        });
        windowsFactory.attach(gui::window::name::alarm_clock, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::alarm_clock, [](ApplicationCommon *app, const std::string &name) {
            auto audioModel =
                std::make_unique<audio_settings::AudioSettingsModel>(app, audio_settings::PlaybackType::Alarm);
            return std::make_unique<gui::AlarmClockWindow>(app, std::move(audioModel));
        });
        windowsFactory.attach(gui::window::name::sound_select, [this](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::sound_select, [this](ApplicationCommon *app, const std::string &name) {
            auto model = std::make_shared<SoundsModel>(soundsPlayer);
            return std::make_unique<gui::SoundSelectWindow>(app, name, std::move(model));
        });

        // Security
        windowsFactory.attach(gui::window::name::security, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::security, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SecurityMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::autolock, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::autolock, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::AutolockWindow>(app, static_cast<ApplicationSettings *>(app));
        });

        // System
        windowsFactory.attach(gui::window::name::system, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::system, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::SystemMainWindow>(app);
        });
        windowsFactory.attach(gui::window::name::languages, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::languages, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::LanguagesWindow>(app);
        });
        windowsFactory.attach(gui::window::name::date_and_time, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::date_and_time, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DateAndTimeMainWindow>(app, gui::window::name::date_and_time);
        });
        windowsFactory.attach(gui::window::name::change_time_zone, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::change_time_zone, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::ChangeTimeZone>(app);
        });
        windowsFactory.attach(gui::window::name::change_date_and_time, [](Application *app, const std::string &name) {
            return std::make_unique<gui::ChangeDateAndTimeWindow>(app);
        });
        windowsFactory.attach(gui::window::name::technical_information, [&](Application *app, const std::string &name) {
            auto factoryData = std::make_unique<FactoryData>(*settings);
            auto repository  = std::make_unique<TechnicalInformationRepository>(this);
            auto model     = std::make_unique<TechnicalInformationModel>(std::move(factoryData), std::move(repository));
            auto presenter = std::make_unique<TechnicalWindowPresenter>(this, std::move(model));
            return std::make_unique<gui::TechnicalInformationWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::certification, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::change_date_and_time,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::ChangeDateAndTimeWindow>(app);
                              });
        windowsFactory.attach(
            gui::window::name::technical_information, [&](ApplicationCommon *app, const std::string &name) {
                auto factoryData = std::make_unique<FactoryData>(*settings);
                auto repository  = std::make_unique<TechnicalInformationRepository>(this);
                auto model = std::make_unique<TechnicalInformationModel>(std::move(factoryData), std::move(repository));
                auto presenter = std::make_unique<TechnicalWindowPresenter>(this, std::move(model));
                return std::make_unique<gui::TechnicalInformationWindow>(app, std::move(presenter));
            });
        windowsFactory.attach(gui::window::name::certification, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::CertificationWindow>(app);
        });
        windowsFactory.attach(gui::window::name::sar, [&](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::sar, [&](ApplicationCommon *app, const std::string &name) {
            auto sarInfoRepository = std::make_unique<SARInfoRepository>("assets/certification_info", "sar.txt");
            auto presenter         = std::make_unique<SARInfoWindowPresenter>(std::move(sarInfoRepository));
            return std::make_unique<gui::SARInfoWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::factory_reset, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::factory_reset, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogYesNo>(app, name);
        });

        windowsFactory.attach(gui::window::name::dialog_settings, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_settings, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(gui::window::name::dialog_confirm, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_confirm, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogConfirm>(app, gui::window::name::dialog_confirm);
        });
        windowsFactory.attach(gui::window::name::dialog_retry, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::dialog_retry, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::DialogRetry>(app, name);
        });


M module-apps/application-settings/CMakeLists.txt => module-apps/application-settings/CMakeLists.txt +2 -1
@@ 139,7 139,6 @@ target_sources(application-settings

target_link_libraries(application-settings
    PRIVATE
        apps-common
        eventstore
        module-bluetooth
        module-bsp


@@ 154,6 153,8 @@ target_link_libraries(application-settings
        service-desktop
        service-evtmgr
        service-time
    PUBLIC
        app
)

add_dependencies(application-settings version)

M module-apps/application-settings/include/application-settings/ApplicationSettings.hpp => module-apps/application-settings/include/application-settings/ApplicationSettings.hpp +1 -1
@@ 3,7 3,7 @@

#pragma once

#include "Application.hpp"
#include <Application.hpp>

#include <application-settings/windows/WindowNames.hpp>
#include <application-settings/models/apps/SoundsPlayer.hpp>

M module-apps/application-settings/models/advanced/ColorTestModel.cpp => module-apps/application-settings/models/advanced/ColorTestModel.cpp +1 -1
@@ 8,7 8,7 @@
namespace gui
{

    ColorTestModel::ColorTestModel(app::Application *app) : application{app}
    ColorTestModel::ColorTestModel(app::ApplicationCommon *app) : application{app}
    {
        createData();
    }

M module-apps/application-settings/models/advanced/ColorTestModel.hpp => module-apps/application-settings/models/advanced/ColorTestModel.hpp +2 -2
@@ 13,10 13,10 @@ namespace gui
    class ColorTestModel : public app::InternalModel<gui::ColorTestListItem *>, public gui::ListItemProvider
    {
      private:
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;

      public:
        explicit ColorTestModel(app::Application *app);
        explicit ColorTestModel(app::ApplicationCommon *app);

        [[nodiscard]] auto requestRecordsCount() -> unsigned int override;
        [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int override;

M module-apps/application-settings/models/apps/AbstractSoundsModel.hpp => module-apps/application-settings/models/apps/AbstractSoundsModel.hpp +2 -2
@@ 9,7 9,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
};

/// @brief Abstract SoundsModel class


@@ 21,7 21,7 @@ class AbstractSoundsModel : public gui::ListItemProvider
    /// Creates data for model
    /// @param app pointer to current application
    /// @param model audio settings model
    virtual void createData(app::Application *app, audio_settings::AbstractAudioSettingsModel *model) = 0;
    virtual void createData(app::ApplicationCommon *app, audio_settings::AbstractAudioSettingsModel *model) = 0;

    /// Clears all data for model
    virtual void clearData() = 0;

M module-apps/application-settings/models/apps/AudioSettingsModel.cpp => module-apps/application-settings/models/apps/AudioSettingsModel.cpp +1 -1
@@ 25,7 25,7 @@ namespace audio_settings
        return audio::PlaybackType::None;
    }

    AudioSettingsModel::AudioSettingsModel(app::Application *application, PlaybackType playbackType)
    AudioSettingsModel::AudioSettingsModel(app::ApplicationCommon *application, PlaybackType playbackType)
        : application(application), playbackType(playbackTypeToAudioPlaybackType(playbackType))
    {}


M module-apps/application-settings/models/apps/AudioSettingsModel.hpp => module-apps/application-settings/models/apps/AudioSettingsModel.hpp +2 -2
@@ 47,7 47,7 @@ namespace audio_settings
      public:
        /// @param application application pointer
        /// @param playbackType playback type
        AudioSettingsModel(app::Application *application, PlaybackType playbackType);
        AudioSettingsModel(app::ApplicationCommon *application, PlaybackType playbackType);

        bool isVibrationEnabled() override;
        void setVibrationEnabled() override;


@@ 62,7 62,7 @@ namespace audio_settings
        audio::PlaybackType getPlaybackType() override;

      private:
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;
        audio::PlaybackType playbackType;
    };
} // namespace audio_settings

M module-apps/application-settings/models/apps/SoundsModel.cpp => module-apps/application-settings/models/apps/SoundsModel.cpp +2 -2
@@ 35,7 35,7 @@ gui::ListItem *SoundsModel::getItem(gui::Order order)
    return getRecord(order);
}

void SoundsModel::createData(app::Application *app, audio_settings::AbstractAudioSettingsModel *model)
void SoundsModel::createData(app::ApplicationCommon *app, audio_settings::AbstractAudioSettingsModel *model)
{
    assert(model);
    assert(app);


@@ 90,7 90,7 @@ std::filesystem::path SoundsModel::getSoundPath(audio_settings::AbstractAudioSet
}

void SoundsModel::applyItems(const std::vector<std::filesystem::path> &sounds,
                             app::Application *app,
                             app::ApplicationCommon *app,
                             audio_settings::AbstractAudioSettingsModel *model)
{
    auto currentItemIndex  = 0;

M module-apps/application-settings/models/apps/SoundsModel.hpp => module-apps/application-settings/models/apps/SoundsModel.hpp +2 -2
@@ 20,7 20,7 @@ class SoundsModel : public app::InternalModel<gui::ListItem *>, public AbstractS
    /// Creates data for model
    /// @param app pointer to current application
    /// @param model audio settings model
    void createData(app::Application *app, audio_settings::AbstractAudioSettingsModel *model) override;
    void createData(app::ApplicationCommon *app, audio_settings::AbstractAudioSettingsModel *model) override;

    void clearData() override;



@@ 43,7 43,7 @@ class SoundsModel : public app::InternalModel<gui::ListItem *>, public AbstractS
    /// @param app pointer to current application
    /// @param model audio settings model
    void applyItems(const std::vector<std::filesystem::path> &sounds,
                    app::Application *app,
                    app::ApplicationCommon *app,
                    audio_settings::AbstractAudioSettingsModel *model);

    std::shared_ptr<AbstractSoundsPlayer> soundsPlayer;

M module-apps/application-settings/models/apps/SoundsPlayer.cpp => module-apps/application-settings/models/apps/SoundsPlayer.cpp +2 -1
@@ 3,7 3,8 @@

#include "SoundsPlayer.hpp"

SoundsPlayer::SoundsPlayer(app::Application *app) : audioOperations{std::make_unique<app::AsyncAudioOperations>(app)}
SoundsPlayer::SoundsPlayer(app::ApplicationCommon *app)
    : audioOperations{std::make_unique<app::AsyncAudioOperations>(app)}
{}

bool SoundsPlayer::play(const std::string &path)

M module-apps/application-settings/models/apps/SoundsPlayer.hpp => module-apps/application-settings/models/apps/SoundsPlayer.hpp +1 -1
@@ 8,7 8,7 @@
class SoundsPlayer : public AbstractSoundsPlayer
{
  public:
    explicit SoundsPlayer(app::Application *app);
    explicit SoundsPlayer(app::ApplicationCommon *app);

    bool play(const std::string &path) override;
    bool pause() override;

M module-apps/application-settings/models/display-keypad/CategoriesModel.cpp => module-apps/application-settings/models/display-keypad/CategoriesModel.cpp +1 -1
@@ 14,7 14,7 @@ namespace style::quotes::list

namespace Quotes
{
    CategoriesModel::CategoriesModel(app::Application *application)
    CategoriesModel::CategoriesModel(app::ApplicationCommon *application)
        : DatabaseModel(application), app::AsyncCallbackReceiver{application}, app(application)
    {}


M module-apps/application-settings/models/display-keypad/CategoriesModel.hpp => module-apps/application-settings/models/display-keypad/CategoriesModel.hpp +2 -2
@@ 13,7 13,7 @@ namespace Quotes
                            public app::AsyncCallbackReceiver
    {
      public:
        explicit CategoriesModel(app::Application *app);
        explicit CategoriesModel(app::ApplicationCommon *app);
        [[nodiscard]] auto requestRecordsCount() -> unsigned int final;
        [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int final;
        auto getItem(gui::Order order) -> gui::ListItem * final;


@@ 21,7 21,7 @@ namespace Quotes
        bool updateRecords(std::vector<CategoryRecord> records);

      private:
        app::Application *app = nullptr;
        app::ApplicationCommon *app = nullptr;

        auto handleQueryResponse(db::QueryResult *queryResult) -> bool;
    };

M module-apps/application-settings/models/display-keypad/QuotesModel.cpp => module-apps/application-settings/models/display-keypad/QuotesModel.cpp +1 -1
@@ 16,7 16,7 @@ namespace style::quotes::list

namespace Quotes
{
    QuotesModel::QuotesModel(app::Application *application)
    QuotesModel::QuotesModel(app::ApplicationCommon *application)
        : DatabaseModel(application), app::AsyncCallbackReceiver{application}, app(application)
    {}


M module-apps/application-settings/models/display-keypad/QuotesModel.hpp => module-apps/application-settings/models/display-keypad/QuotesModel.hpp +2 -2
@@ 18,7 18,7 @@ namespace Quotes
                        public app::AsyncCallbackReceiver
    {
      public:
        explicit QuotesModel(app::Application *application);
        explicit QuotesModel(app::ApplicationCommon *application);

        [[nodiscard]] auto requestRecordsCount() -> unsigned int final;
        [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int final;


@@ 34,7 34,7 @@ namespace Quotes
        auto handleQueryResponse(db::QueryResult *queryResult) -> bool;

      private:
        app::Application *app = nullptr;
        app::ApplicationCommon *app = nullptr;
    };

} // namespace Quotes

M module-apps/application-settings/models/network/ApnSettingsModel.cpp => module-apps/application-settings/models/network/ApnSettingsModel.cpp +1 -1
@@ 6,7 6,7 @@
#include <service-cellular/PacketDataCellularMessage.hpp>
#include <service-cellular/ServiceCellular.hpp>

ApnSettingsModel::ApnSettingsModel(app::Application *application) : application{application}
ApnSettingsModel::ApnSettingsModel(app::ApplicationCommon *application) : application{application}
{}

void ApnSettingsModel::requestAPNList()

M module-apps/application-settings/models/network/ApnSettingsModel.hpp => module-apps/application-settings/models/network/ApnSettingsModel.hpp +3 -3
@@ 3,14 3,14 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-cellular/CellularServiceAPI.hpp>
#include <service-cellular/PacketDataTypes.hpp>

class ApnSettingsModel
{
  public:
    explicit ApnSettingsModel(app::Application *application);
    explicit ApnSettingsModel(app::ApplicationCommon *application);

    void requestAPNList();
    void saveAPN(const std::shared_ptr<packet_data::APN::Config> &apn);


@@ 18,5 18,5 @@ class ApnSettingsModel
    void setAsDefaultAPN(const std::shared_ptr<packet_data::APN::Config> &apn);

  private:
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;
};

M module-apps/application-settings/models/network/NewApnModel.cpp => module-apps/application-settings/models/network/NewApnModel.cpp +1 -1
@@ 9,7 9,7 @@

#include <ListView.hpp>

NewApnModel::NewApnModel(app::Application *app) : application(app)
NewApnModel::NewApnModel(app::ApplicationCommon *app) : application(app)
{}

auto NewApnModel::requestRecordsCount() -> unsigned int

M module-apps/application-settings/models/network/NewApnModel.hpp => module-apps/application-settings/models/network/NewApnModel.hpp +2 -2
@@ 10,10 10,10 @@

class NewApnModel : public app::InternalModel<gui::ApnListItem *>, public gui::ListItemProvider
{
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;

  public:
    explicit NewApnModel(app::Application *app);
    explicit NewApnModel(app::ApplicationCommon *app);

    void clearData();
    void saveData(const std::shared_ptr<packet_data::APN::Config> &apnRecord);

M module-apps/application-settings/models/network/SimContactsImportModel.cpp => module-apps/application-settings/models/network/SimContactsImportModel.cpp +1 -1
@@ 6,7 6,7 @@
#include <application-settings/widgets/network/SimContactImportSelectWidget.hpp>
#include <ListView.hpp>

SimContactsImportModel::SimContactsImportModel(app::Application *app,
SimContactsImportModel::SimContactsImportModel(app::ApplicationCommon *app,
                                               std::unique_ptr<AbstractSimContactsRepository> contactsRepository)
    : application(app), contactsRepository(std::move(contactsRepository))
{}

M module-apps/application-settings/models/network/SimContactsImportModel.hpp => module-apps/application-settings/models/network/SimContactsImportModel.hpp +3 -2
@@ 15,12 15,13 @@ class SimContactsImportModel : public app::InternalModel<gui::SimContactImportSe
                               public gui::ListItemProvider
{
  private:
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;
    std::shared_ptr<AbstractSimContactsRepository> contactsRepository;
    std::vector<bool> getSelectedContacts();

  public:
    SimContactsImportModel(app::Application *app, std::unique_ptr<AbstractSimContactsRepository> contactsRepository);
    SimContactsImportModel(app::ApplicationCommon *app,
                           std::unique_ptr<AbstractSimContactsRepository> contactsRepository);

    void createSimImported();
    void createDuplicates();

M module-apps/application-settings/models/network/SimContactsRepository.cpp => module-apps/application-settings/models/network/SimContactsRepository.cpp +1 -1
@@ 9,7 9,7 @@

#include <application-settings/ApplicationSettings.hpp>

SimContactsRepository::SimContactsRepository(app::Application *application)
SimContactsRepository::SimContactsRepository(app::ApplicationCommon *application)
    : app::AsyncCallbackReceiver{application}, application{application}
{}


M module-apps/application-settings/models/network/SimContactsRepository.hpp => module-apps/application-settings/models/network/SimContactsRepository.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-db/Interface/ContactRecord.hpp>
#include <service-cellular/CellularMessage.hpp>



@@ 27,7 27,7 @@ class AbstractSimContactsRepository
class SimContactsRepository : public AbstractSimContactsRepository, public app::AsyncCallbackReceiver
{
  public:
    explicit SimContactsRepository(app::Application *application);
    explicit SimContactsRepository(app::ApplicationCommon *application);

    const std::vector<ContactRecord> &getImportedRecords() override;
    const std::vector<ContactRecord> &getDuplicatedRecords() override;


@@ 41,7 41,7 @@ class SimContactsRepository : public AbstractSimContactsRepository, public app::
    std::vector<ContactRecord> importedRecords;
    std::vector<ContactRecord> uniqueRecords;
    std::vector<ContactRecord> duplicatedRecords;
    app::Application *application;
    app::ApplicationCommon *application;

#if DEBUG_SIM_IMPORT_DATA == 1
    void printRecordsData(const std::string &name, const std::vector<ContactRecord> &data);

M module-apps/application-settings/models/system/DateAndTimeModel.cpp => module-apps/application-settings/models/system/DateAndTimeModel.cpp +1 -1
@@ 9,7 9,7 @@
#include <ListView.hpp>
#include <widgets/DateAndTimeStyle.hpp>

DateAndTimeModel::DateAndTimeModel(app::Application *application) : app(application)
DateAndTimeModel::DateAndTimeModel(app::ApplicationCommon *application) : app(application)
{}

void DateAndTimeModel::loadData(std::shared_ptr<utils::time::FromTillDate> fromTillDate)

M module-apps/application-settings/models/system/DateAndTimeModel.hpp => module-apps/application-settings/models/system/DateAndTimeModel.hpp +2 -2
@@ 16,7 16,7 @@ namespace gui
class DateAndTimeModel : public app::InternalModel<gui::DateOrTimeListItem *>, public gui::ListItemProvider
{
  public:
    DateAndTimeModel(app::Application *application);
    DateAndTimeModel(app::ApplicationCommon *application);

    void loadData(std::shared_ptr<utils::time::FromTillDate> fromTillDate);
    void saveData(std::shared_ptr<utils::time::FromTillDate> fromTillDate);


@@ 27,7 27,7 @@ class DateAndTimeModel : public app::InternalModel<gui::DateOrTimeListItem *>, p
    [[nodiscard]] unsigned int requestRecordsCount() override;

  private:
    app::Application *app           = nullptr;
    app::ApplicationCommon *app     = nullptr;
    gui::SettingsDateItem *dateItem = nullptr;
    gui::SettingsTimeItem *timeItem = nullptr;


M module-apps/application-settings/models/system/TechnicalInformationModel.hpp => module-apps/application-settings/models/system/TechnicalInformationModel.hpp +1 -1
@@ 13,7 13,7 @@
class TechnicalInformationModel : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
{
  private:
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;
    std::unique_ptr<AbstractFactoryData> factoryData;
    std::shared_ptr<AbstractTechnicalInformationRepository> technicalInformationRepository = nullptr;


M module-apps/application-settings/models/system/TechnicalInformationRepository.cpp => module-apps/application-settings/models/system/TechnicalInformationRepository.cpp +1 -1
@@ 5,7 5,7 @@
#include <service-cellular/ServiceCellular.hpp>
#include <application-settings/ApplicationSettings.hpp>

TechnicalInformationRepository::TechnicalInformationRepository(app::Application *application)
TechnicalInformationRepository::TechnicalInformationRepository(app::ApplicationCommon *application)
    : app::AsyncCallbackReceiver{application}, application{application}
{}


M module-apps/application-settings/models/system/TechnicalInformationRepository.hpp => module-apps/application-settings/models/system/TechnicalInformationRepository.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-cellular/CellularMessage.hpp>

class AbstractTechnicalInformationRepository


@@ 18,11 18,11 @@ class AbstractTechnicalInformationRepository
class TechnicalInformationRepository : public AbstractTechnicalInformationRepository, public app::AsyncCallbackReceiver
{
  public:
    explicit TechnicalInformationRepository(app::Application *application);
    explicit TechnicalInformationRepository(app::ApplicationCommon *application);
    void readImei(OnReadCallback callback) override;
    std::string getImei() override;

  private:
    app::Application *application{};
    app::ApplicationCommon *application{};
    std::string imeiStr;
};

M module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.cpp => module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.cpp +1 -1
@@ 4,7 4,7 @@
#include "SimContactsImportWindowPresenter.hpp"

SimContactsImportWindowPresenter::SimContactsImportWindowPresenter(
    app::Application *application, std::shared_ptr<SimContactsImportModel> simContactsProvider)
    app::ApplicationCommon *application, std::shared_ptr<SimContactsImportModel> simContactsProvider)
    : application(application), simContactsProvider{std::move(simContactsProvider)}
{
    onSave = [&]() {

M module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.hpp => module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.hpp +2 -2
@@ 35,7 35,7 @@ class SimContactsImportWindowContract
class SimContactsImportWindowPresenter : public SimContactsImportWindowContract::Presenter
{
  public:
    explicit SimContactsImportWindowPresenter(app::Application *application,
    explicit SimContactsImportWindowPresenter(app::ApplicationCommon *application,
                                              std::shared_ptr<SimContactsImportModel> simContactsProvider);

    std::shared_ptr<gui::ListItemProvider> getSimContactsProvider() const override;


@@ 46,7 46,7 @@ class SimContactsImportWindowPresenter : public SimContactsImportWindowContract:
    bool isRequestCompleted() override;

  private:
    app::Application *application               = nullptr;
    app::ApplicationCommon *application         = nullptr;
    bool requestCompleted                       = true;
    bool duplicatesChecked                      = false;
    std::function<void()> onSave                = nullptr;

M module-apps/application-settings/presenter/system/TechnicalWindowPresenter.cpp => module-apps/application-settings/presenter/system/TechnicalWindowPresenter.cpp +1 -1
@@ 4,7 4,7 @@
#include "TechnicalWindowPresenter.hpp"

TechnicalWindowPresenter::TechnicalWindowPresenter(
    app::Application *application, std::shared_ptr<TechnicalInformationModel> technicalInformationProvider)
    app::ApplicationCommon *application, std::shared_ptr<TechnicalInformationModel> technicalInformationProvider)
    : application(application), technicalInformationProvider{std::move(technicalInformationProvider)}
{
    onImeiReady = [&]() {

M module-apps/application-settings/presenter/system/TechnicalWindowPresenter.hpp => module-apps/application-settings/presenter/system/TechnicalWindowPresenter.hpp +2 -2
@@ 30,14 30,14 @@ class TechnicalWindowContract
class TechnicalWindowPresenter : public TechnicalWindowContract::Presenter
{
  public:
    explicit TechnicalWindowPresenter(app::Application *application,
    explicit TechnicalWindowPresenter(app::ApplicationCommon *application,
                                      std::shared_ptr<TechnicalInformationModel> technicalInformationProvider);

    std::shared_ptr<gui::ListItemProvider> getTechnicalInformationProvider() const override;
    void requestImei() override;

  private:
    app::Application *application{};
    app::ApplicationCommon *application{};
    std::shared_ptr<TechnicalInformationModel> technicalInformationProvider;
    std::function<void()> onImeiReady = nullptr;
};

M module-apps/application-settings/widgets/advanced/ColorTestListItem.cpp => module-apps/application-settings/widgets/advanced/ColorTestListItem.cpp +1 -1
@@ 7,7 7,7 @@
namespace gui
{

    ColorTestListItem::ColorTestListItem(app::Application *app, const Color color) : app{app}
    ColorTestListItem::ColorTestListItem(app::ApplicationCommon *app, const Color color) : app{app}
    {
        setMinimumSize(style::listview::item_width_with_scroll, style::colorTest::item::color::height);
        setMargins(Margins(style::margins::very_big, 0, 0, 0));

M module-apps/application-settings/widgets/advanced/ColorTestListItem.hpp => module-apps/application-settings/widgets/advanced/ColorTestListItem.hpp +2 -2
@@ 14,10 14,10 @@ namespace gui
      private:
        VBox *vBox        = nullptr;
        Label *colorLabel = nullptr;
        app::Application *app;
        app::ApplicationCommon *app;

      public:
        explicit ColorTestListItem(app::Application *app, const Color color);
        explicit ColorTestListItem(app::ApplicationCommon *app, const Color color);

        bool onInput(const InputEvent &inputEvent) override;
        [[nodiscard]] uint8_t getColorIntensity();

M module-apps/application-settings/widgets/advanced/ColorTestListView.cpp => module-apps/application-settings/widgets/advanced/ColorTestListView.cpp +2 -1
@@ 3,11 3,12 @@

#include "ColorTestListView.hpp"

#include <ApplicationCommon.hpp>
#include <InputEvent.hpp>

namespace gui
{
    ColorTestListView::ColorTestListView(app::Application *application,
    ColorTestListView::ColorTestListView(app::ApplicationCommon *application,
                                         Item *parent,
                                         uint32_t x,
                                         uint32_t y,

M module-apps/application-settings/widgets/advanced/ColorTestListView.hpp => module-apps/application-settings/widgets/advanced/ColorTestListView.hpp +7 -3
@@ 3,18 3,22 @@

#pragma once

#include <Application.hpp>
#include <ListView.hpp>

namespace app
{
    class ApplicationCommon;
}

namespace gui
{
    class ColorTestListView : public ListView
    {
      private:
        app::Application *app;
        app::ApplicationCommon *app;

      public:
        ColorTestListView(app::Application *application,
        ColorTestListView(app::ApplicationCommon *application,
                          Item *parent,
                          uint32_t x,
                          uint32_t y,

M module-apps/application-settings/windows/BaseSettingsWindow.cpp => module-apps/application-settings/windows/BaseSettingsWindow.cpp +1 -1
@@ 5,7 5,7 @@

namespace gui
{
    BaseSettingsWindow::BaseSettingsWindow(app::Application *app, std::string name) : OptionWindow(app, name)
    BaseSettingsWindow::BaseSettingsWindow(app::ApplicationCommon *app, std::string name) : OptionWindow(app, name)
    {}

    void BaseSettingsWindow::rebuild()

M module-apps/application-settings/windows/BaseSettingsWindow.hpp => module-apps/application-settings/windows/BaseSettingsWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class BaseSettingsWindow : public OptionWindow
    {
      public:
        BaseSettingsWindow(app::Application *app, std::string name);
        BaseSettingsWindow(app::ApplicationCommon *app, std::string name);

        void rebuild() override;


M module-apps/application-settings/windows/SettingsMainWindow.cpp => module-apps/application-settings/windows/SettingsMainWindow.cpp +1 -1
@@ 7,7 7,7 @@

#include <service-appmgr/Controller.hpp>

std::list<gui::Option> mainWindowOptionsNew(app::Application *app)
std::list<gui::Option> mainWindowOptionsNew(app::ApplicationCommon *app)
{
    std::list<gui::Option> l;


M module-apps/application-settings/windows/SettingsMainWindow.hpp => module-apps/application-settings/windows/SettingsMainWindow.hpp +1 -1
@@ 5,4 5,4 @@

#include <OptionWindow.hpp>

std::list<gui::Option> mainWindowOptionsNew(app::Application *app);
std::list<gui::Option> mainWindowOptionsNew(app::ApplicationCommon *app);

M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp => module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.cpp +1 -1
@@ 6,7 6,7 @@
#include <application-settings/windows/WindowNames.hpp>
#include <status-bar/Style.hpp>

std::list<gui::Option> advancedOptions(app::Application *app)
std::list<gui::Option> advancedOptions(app::ApplicationCommon *app)
{
    std::list<gui::Option> l;


M module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.hpp => module-apps/application-settings/windows/advanced/AdvancedOptionsWindow.hpp +1 -1
@@ 5,4 5,4 @@

#include <OptionWindow.hpp>

std::list<gui::Option> advancedOptions(app::Application *app);
std::list<gui::Option> advancedOptions(app::ApplicationCommon *app);

M module-apps/application-settings/windows/advanced/ColorTestWindow.cpp => module-apps/application-settings/windows/advanced/ColorTestWindow.cpp +1 -1
@@ 13,7 13,7 @@ namespace gui
{
    static gui::ColorScheme currentColorScheme = gui::Color::defaultColorScheme;

    ColorTestWindow::ColorTestWindow(app::Application *app)
    ColorTestWindow::ColorTestWindow(app::ApplicationCommon *app)
        : AppWindow{app, window::name::color_test_window}, colorTestModel{std::make_shared<ColorTestModel>(app)}
    {
        buildInterface();

M module-apps/application-settings/windows/advanced/ColorTestWindow.hpp => module-apps/application-settings/windows/advanced/ColorTestWindow.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
        gui::ColorTestListView *colorListView          = nullptr;

      public:
        explicit ColorTestWindow(app::Application *app);
        explicit ColorTestWindow(app::ApplicationCommon *app);

        void applyInputCallback();
        void buildInterface() override;

M module-apps/application-settings/windows/advanced/EinkModeWindow.cpp => module-apps/application-settings/windows/advanced/EinkModeWindow.cpp +2 -2
@@ 5,14 5,14 @@

#include <application-settings/windows/WindowNames.hpp>

#include <apps-common/Application.hpp>
#include <Application.hpp>
#include <service-eink/Common.hpp>
#include <service-eink/messages/EinkModeMessage.hpp>

namespace gui
{

    EinkModeWindow::EinkModeWindow(app::Application *app) : AppWindow(app, window::name::eink_mode)
    EinkModeWindow::EinkModeWindow(app::ApplicationCommon *app) : AppWindow(app, window::name::eink_mode)
    {
        AppWindow::buildInterface();
        bottomBar->setActive(BottomBar::Side::CENTER, true);

M module-apps/application-settings/windows/advanced/EinkModeWindow.hpp => module-apps/application-settings/windows/advanced/EinkModeWindow.hpp +1 -1
@@ 9,6 9,6 @@ namespace gui
    class EinkModeWindow : public AppWindow
    {
      public:
        explicit EinkModeWindow(app::Application *app);
        explicit EinkModeWindow(app::ApplicationCommon *app);
    };
} /* namespace gui */

M module-apps/application-settings/windows/advanced/InformationWindow.cpp => module-apps/application-settings/windows/advanced/InformationWindow.cpp +1 -1
@@ 11,7 11,7 @@
namespace gui
{

    InformationWindow::InformationWindow(app::Application *app) : AppWindow(app, gui::window::name::information)
    InformationWindow::InformationWindow(app::ApplicationCommon *app) : AppWindow(app, gui::window::name::information)
    {
        buildInterface();
    }

M module-apps/application-settings/windows/advanced/InformationWindow.hpp => module-apps/application-settings/windows/advanced/InformationWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
        VBox *box = nullptr;

      public:
        explicit InformationWindow(app::Application *app);
        explicit InformationWindow(app::ApplicationCommon *app);
        void buildInterface() override;

      private:

M module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.cpp => module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    StatusBarImageTypeWindow::StatusBarImageTypeWindow(app::Application *app)
    StatusBarImageTypeWindow::StatusBarImageTypeWindow(app::ApplicationCommon *app)
        : AppWindow(app, window::name::status_bar_img_type)
    {
        AppWindow::buildInterface();

M module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.hpp => module-apps/application-settings/windows/advanced/StatusBarImageTypeWindow.hpp +1 -1
@@ 9,7 9,7 @@ namespace gui
    class StatusBarImageTypeWindow : public AppWindow
    {
      public:
        explicit StatusBarImageTypeWindow(app::Application *app);
        explicit StatusBarImageTypeWindow(app::ApplicationCommon *app);

        status_bar::Configuration configureStatusBar(status_bar::Configuration appConfiguration) override;
    };

M module-apps/application-settings/windows/advanced/UITestWindow.cpp => module-apps/application-settings/windows/advanced/UITestWindow.cpp +1 -1
@@ 11,7 11,7 @@
namespace gui
{

    UiTestWindow::UiTestWindow(app::Application *app) : AppWindow(app, "TEST_UI")
    UiTestWindow::UiTestWindow(app::ApplicationCommon *app) : AppWindow(app, "TEST_UI")
    {
        AppWindow::buildInterface();
        buildInterface();

M module-apps/application-settings/windows/advanced/UITestWindow.hpp => module-apps/application-settings/windows/advanced/UITestWindow.hpp +1 -1
@@ 14,6 14,6 @@ namespace gui
        gui::Text *text = nullptr;

      public:
        explicit UiTestWindow(app::Application *app);
        explicit UiTestWindow(app::ApplicationCommon *app);
    };
} // namespace gui

M module-apps/application-settings/windows/apps/AlarmClockWindow.cpp => module-apps/application-settings/windows/apps/AlarmClockWindow.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    AlarmClockWindow::AlarmClockWindow(app::Application *app,
    AlarmClockWindow::AlarmClockWindow(app::ApplicationCommon *app,
                                       std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel)
        : BaseSettingsWindow(app, gui::window::name::alarm_clock), mWidgetMaker(this),
          mAudioModel(std::move(audioModel))

M module-apps/application-settings/windows/apps/AlarmClockWindow.hpp => module-apps/application-settings/windows/apps/AlarmClockWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
        ///  Constructor
        ///  @app parent application pointer
        /// @audioModel audio settings model
        explicit AlarmClockWindow(app::Application *app,
        explicit AlarmClockWindow(app::ApplicationCommon *app,
                                  std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel);

      private:

M module-apps/application-settings/windows/apps/AppsWindow.cpp => module-apps/application-settings/windows/apps/AppsWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    AppsWindow::AppsWindow(app::Application *app) : OptionWindow(app, gui::window::name::apps)
    AppsWindow::AppsWindow(app::ApplicationCommon *app) : OptionWindow(app, gui::window::name::apps)
    {
        addOptions(appsAndToolsOptionsList());
        setTitle(utils::translate("app_settings_apps"));

M module-apps/application-settings/windows/apps/AppsWindow.hpp => module-apps/application-settings/windows/apps/AppsWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class AppsWindow : public OptionWindow
    {
      public:
        explicit AppsWindow(app::Application *app);
        explicit AppsWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> appsAndToolsOptionsList();

M module-apps/application-settings/windows/apps/MessagesWindow.cpp => module-apps/application-settings/windows/apps/MessagesWindow.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    MessagesWindow::MessagesWindow(app::Application *app,
    MessagesWindow::MessagesWindow(app::ApplicationCommon *app,
                                   std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel)
        : BaseSettingsWindow(app, gui::window::name::messages), mWidgetMaker(this), mAudioModel(std::move(audioModel))
    {

M module-apps/application-settings/windows/apps/MessagesWindow.hpp => module-apps/application-settings/windows/apps/MessagesWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
        ///  Constructor
        ///  @app parent application pointer
        ///  @audioModel audio settings model
        explicit MessagesWindow(app::Application *app,
        explicit MessagesWindow(app::ApplicationCommon *app,
                                std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel);

      private:

M module-apps/application-settings/windows/apps/PhoneWindow.cpp => module-apps/application-settings/windows/apps/PhoneWindow.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    PhoneWindow::PhoneWindow(app::Application *app,
    PhoneWindow::PhoneWindow(app::ApplicationCommon *app,
                             std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel)
        : BaseSettingsWindow(app, gui::window::name::phone), mWidgetMaker(this), mAudioModel(std::move(audioModel))
    {

M module-apps/application-settings/windows/apps/PhoneWindow.hpp => module-apps/application-settings/windows/apps/PhoneWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace gui
        ///  Constructor
        ///  @app parent application pointer
        ///  @audioModel audio settings model
        explicit PhoneWindow(app::Application *app,
        explicit PhoneWindow(app::ApplicationCommon *app,
                             std::unique_ptr<audio_settings::AbstractAudioSettingsModel> &&audioModel);

      private:

M module-apps/application-settings/windows/apps/SoundSelectWindow.cpp => module-apps/application-settings/windows/apps/SoundSelectWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    SoundSelectWindow::SoundSelectWindow(app::Application *app,
    SoundSelectWindow::SoundSelectWindow(app::ApplicationCommon *app,
                                         std::string name,
                                         std::shared_ptr<AbstractSoundsModel> model)
        : AppWindow(app, name), mSoundsModel{std::move(model)}

M module-apps/application-settings/windows/apps/SoundSelectWindow.hpp => module-apps/application-settings/windows/apps/SoundSelectWindow.hpp +3 -1
@@ 18,7 18,9 @@ namespace gui
        ///  Constructor
        ///  @param app pointer to application
        ///  @param name window name
        explicit SoundSelectWindow(app::Application *app, std::string name, std::shared_ptr<AbstractSoundsModel> model);
        explicit SoundSelectWindow(app::ApplicationCommon *app,
                                   std::string name,
                                   std::shared_ptr<AbstractSoundsModel> model);

        ///  Called before the window is shown
        ///  @param mode show mode

M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp => module-apps/application-settings/windows/bluetooth/AddDeviceWindow.cpp +1 -1
@@ 12,7 12,7 @@
namespace gui
{

    AddDeviceWindow::AddDeviceWindow(app::Application *app,
    AddDeviceWindow::AddDeviceWindow(app::ApplicationCommon *app,
                                     std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel)
        : BaseSettingsWindow(app, window::name::add_device), bluetoothSettingsModel(bluetoothSettingsModel)
    {

M module-apps/application-settings/windows/bluetooth/AddDeviceWindow.hpp => module-apps/application-settings/windows/bluetooth/AddDeviceWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class AddDeviceWindow : public BaseSettingsWindow
    {
      public:
        AddDeviceWindow(app::Application *app, std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel);
        AddDeviceWindow(app::ApplicationCommon *app, std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel);

      private:
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp => module-apps/application-settings/windows/bluetooth/AllDevicesWindow.cpp +1 -1
@@ 15,7 15,7 @@
namespace gui
{

    AllDevicesWindow::AllDevicesWindow(app::Application *app,
    AllDevicesWindow::AllDevicesWindow(app::ApplicationCommon *app,
                                       std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel)
        : BaseSettingsWindow(app, window::name::all_devices), bluetoothSettingsModel(bluetoothSettingsModel)
    {

M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.hpp => module-apps/application-settings/windows/bluetooth/AllDevicesWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class AllDevicesWindow : public BaseSettingsWindow
    {
      public:
        AllDevicesWindow(app::Application *app, std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel);
        AllDevicesWindow(app::ApplicationCommon *app, std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.cpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    } // namespace
    namespace passkey_style = style::settings::window::bluetooth::passkey;

    BluetoothCheckPasskeyWindow::BluetoothCheckPasskeyWindow(app::Application *app)
    BluetoothCheckPasskeyWindow::BluetoothCheckPasskeyWindow(app::ApplicationCommon *app)
        : AppWindow(app, window::name::bluetooth_check_passkey)
    {
        bluetoothSettingsModel = std::make_unique<BluetoothSettingsModel>(application);

M module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.hpp => module-apps/application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class BluetoothCheckPasskeyWindow : public AppWindow
    {
      public:
        explicit BluetoothCheckPasskeyWindow(app::Application *app);
        explicit BluetoothCheckPasskeyWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp => module-apps/application-settings/windows/bluetooth/BluetoothWindow.cpp +1 -1
@@ 11,7 11,7 @@
namespace gui
{

    BluetoothWindow::BluetoothWindow(app::Application *app) : BaseSettingsWindow(app, window::name::bluetooth)
    BluetoothWindow::BluetoothWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, window::name::bluetooth)
    {
        bluetoothSettingsModel = std::make_unique<BluetoothSettingsModel>(application);
        bluetoothSettingsModel->requestStatus();

M module-apps/application-settings/windows/bluetooth/BluetoothWindow.hpp => module-apps/application-settings/windows/bluetooth/BluetoothWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class BluetoothWindow : public BaseSettingsWindow
    {
      public:
        explicit BluetoothWindow(app::Application *app);
        explicit BluetoothWindow(app::ApplicationCommon *app);

      private:
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp => module-apps/application-settings/windows/bluetooth/PhoneNameWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    PhoneNameWindow::PhoneNameWindow(app::Application *app) : AppWindow(app, gui::window::name::phone_name)
    PhoneNameWindow::PhoneNameWindow(app::ApplicationCommon *app) : AppWindow(app, gui::window::name::phone_name)
    {
        bluetoothSettingsModel = std::make_unique<BluetoothSettingsModel>(application);
        bluetoothSettingsModel->requestDeviceName();

M module-apps/application-settings/windows/bluetooth/PhoneNameWindow.hpp => module-apps/application-settings/windows/bluetooth/PhoneNameWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class PhoneNameWindow : public AppWindow
    {
      public:
        explicit PhoneNameWindow(app::Application *app);
        explicit PhoneNameWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.cpp +1 -1
@@ 9,7 9,7 @@

namespace gui
{
    DisplayAndKeypadWindow::DisplayAndKeypadWindow(app::Application *app)
    DisplayAndKeypadWindow::DisplayAndKeypadWindow(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::display_and_keypad)
    {
        addOptions(displayAndKeypadOptionsList());

M module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp => module-apps/application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class DisplayAndKeypadWindow : public OptionWindow
    {
      public:
        explicit DisplayAndKeypadWindow(app::Application *app);
        explicit DisplayAndKeypadWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> displayAndKeypadOptionsList();

M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.cpp +2 -1
@@ 7,7 7,8 @@

namespace gui
{
    DisplayLightWindow::DisplayLightWindow(app::Application *app, app::settingsInterface::ScreenLightSettings *settings)
    DisplayLightWindow::DisplayLightWindow(app::ApplicationCommon *app,
                                           app::settingsInterface::ScreenLightSettings *settings)
        : BaseSettingsWindow(app, window::name::display_light), screenLightSettings(settings)
    {
        auto values = screenLightSettings->getCurrentValues();

M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp +2 -1
@@ 20,7 20,8 @@ namespace gui
    class DisplayLightWindow : public BaseSettingsWindow
    {
      public:
        DisplayLightWindow(app::Application *app, app::settingsInterface::ScreenLightSettings *screenLightSettings);
        DisplayLightWindow(app::ApplicationCommon *app,
                           app::settingsInterface::ScreenLightSettings *screenLightSettings);
        ~DisplayLightWindow();

      private:

M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.cpp +1 -1
@@ 9,7 9,7 @@

namespace gui
{
    EditQuotesWindow::EditQuotesWindow(app::Application *app) : BaseSettingsWindow(app, window::name::edit_quotes)
    EditQuotesWindow::EditQuotesWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, window::name::edit_quotes)
    {
        setTitle(utils::translate("app_settings_display_wallpaper_edit_quotes"));
    }

M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class EditQuotesWindow : public BaseSettingsWindow
    {
      public:
        explicit EditQuotesWindow(app::Application *app);
        explicit EditQuotesWindow(app::ApplicationCommon *app);

      private:
        void switchHandler(bool &optionSwitch);

M module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp +1 -1
@@ 8,7 8,7 @@
namespace gui
{

    FontSizeWindow::FontSizeWindow(app::Application *app) : BaseSettingsWindow(app, gui::window::name::font_size)
    FontSizeWindow::FontSizeWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, gui::window::name::font_size)
    {
        setTitle(utils::translate("app_settings_display_font_size"));
    }

M module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class FontSizeWindow : public BaseSettingsWindow
    {
      public:
        explicit FontSizeWindow(app::Application *app);
        explicit FontSizeWindow(app::ApplicationCommon *app);
        auto buildOptionsList() -> std::list<gui::Option> override;
    };
} // namespace gui

M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    InputLanguageWindow::InputLanguageWindow(app::Application *app)
    InputLanguageWindow::InputLanguageWindow(app::ApplicationCommon *app)
        : BaseSettingsWindow(app, window::name::input_language), langList(profiles.getAvailableInputLanguages())
    {
        setTitle(utils::translate("app_settings_display_input_language"));

M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class InputLanguageWindow : public BaseSettingsWindow
    {
      public:
        explicit InputLanguageWindow(app::Application *app);
        explicit InputLanguageWindow(app::ApplicationCommon *app);

      protected:
        auto buildOptionsList() -> std::list<gui::Option> override;

M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp +1 -1
@@ 10,7 10,7 @@
namespace gui
{

    KeypadLightWindow::KeypadLightWindow(app::Application *app,
    KeypadLightWindow::KeypadLightWindow(app::ApplicationCommon *app,
                                         app::settingsInterface::KeypdBacklightSettings *settings)
        : BaseSettingsWindow(app, window::name::keypad_light), keypadLightSettings(settings)
    {

M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class KeypadLightWindow : public BaseSettingsWindow
    {
      public:
        KeypadLightWindow(app::Application *app, app::settingsInterface::KeypdBacklightSettings *settings);
        KeypadLightWindow(app::ApplicationCommon *app, app::settingsInterface::KeypdBacklightSettings *settings);

      private:
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp => module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    QuoteCategoriesWindow::QuoteCategoriesWindow(app::Application *app)
    QuoteCategoriesWindow::QuoteCategoriesWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::quote_categories),
          categoriesModel(std::make_shared<Quotes::CategoriesModel>(app))
    {

M module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.hpp => module-apps/application-settings/windows/display-keypad/QuoteCategoriesWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class QuoteCategoriesWindow : public AppWindow
    {
      public:
        QuoteCategoriesWindow(app::Application *app);
        QuoteCategoriesWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesAddWindow.cpp +1 -1
@@ 29,7 29,7 @@ namespace gui
        }
    } // namespace

    QuoteAddEditWindow::QuoteAddEditWindow(app::Application *app)
    QuoteAddEditWindow::QuoteAddEditWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::quotes), quoteModel(std::make_shared<Quotes::QuotesModel>(app))
    {
        buildInterface();

M module-apps/application-settings/windows/display-keypad/QuotesAddWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesAddWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
    class QuoteAddEditWindow : public AppWindow
    {
      public:
        explicit QuoteAddEditWindow(app::Application *app);
        explicit QuoteAddEditWindow(app::ApplicationCommon *app);
        void buildInterface() override;

      private:

M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesMainWindow.cpp +1 -1
@@ 22,7 22,7 @@ namespace style::quotes

namespace gui
{
    QuotesMainWindow::QuotesMainWindow(app::Application *app)
    QuotesMainWindow::QuotesMainWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::quotes), quotesModel(std::make_shared<Quotes::QuotesModel>(app))
    {
        buildInterface();

M module-apps/application-settings/windows/display-keypad/QuotesMainWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesMainWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class QuotesMainWindow : public AppWindow
    {
      public:
        explicit QuotesMainWindow(app::Application *app);
        explicit QuotesMainWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{

    QuotesOptionsWindow::QuotesOptionsWindow(app::Application *app)
    QuotesOptionsWindow::QuotesOptionsWindow(app::ApplicationCommon *app)
        : BaseSettingsWindow(app, gui::window::name::quotes), quotesModel(std::make_shared<Quotes::QuotesModel>(app))
    {
        setTitle(utils::translate("app_settings_display_wallpaper_quotes_options"));

M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class QuotesOptionsWindow : public BaseSettingsWindow
    {
      public:
        explicit QuotesOptionsWindow(app::Application *app);
        explicit QuotesOptionsWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> buildOptionsList() override;

M module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.cpp +1 -1
@@ 9,7 9,7 @@

namespace gui
{
    WallpaperWindow::WallpaperWindow(app::Application *app) : BaseSettingsWindow(app, window::name::wallpaper)
    WallpaperWindow::WallpaperWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, window::name::wallpaper)
    {
        setTitle(utils::translate("app_settings_display_wallpaper"));
    }

M module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class WallpaperWindow : public BaseSettingsWindow
    {
      public:
        explicit WallpaperWindow(app::Application *app);
        explicit WallpaperWindow(app::ApplicationCommon *app);

      private:
        void switchHandler(bool &onOffSwitch);

M module-apps/application-settings/windows/network/ApnOptionsWindow.cpp => module-apps/application-settings/windows/network/ApnOptionsWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    ApnOptionsWindow::ApnOptionsWindow(app::Application *app) : BaseSettingsWindow(app, window::name::apn_options)
    ApnOptionsWindow::ApnOptionsWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, window::name::apn_options)
    {
        setTitle(utils::translate("app_settings_apn_options"));
        apnSettingsModel = new ApnSettingsModel(application);

M module-apps/application-settings/windows/network/ApnOptionsWindow.hpp => module-apps/application-settings/windows/network/ApnOptionsWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class ApnOptionsWindow : public BaseSettingsWindow
    {
      public:
        ApnOptionsWindow(app::Application *app);
        ApnOptionsWindow(app::ApplicationCommon *app);

      private:
        auto buildOptionsList() -> std::list<gui::Option> override;

M module-apps/application-settings/windows/network/ApnSettingsWindow.cpp => module-apps/application-settings/windows/network/ApnSettingsWindow.cpp +2 -1
@@ 13,7 13,8 @@
namespace gui
{

    ApnSettingsWindow::ApnSettingsWindow(app::Application *app) : OptionWindow(app, gui::window::name::apn_settings)
    ApnSettingsWindow::ApnSettingsWindow(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::apn_settings)
    {
        buildInterface();
    }

M module-apps/application-settings/windows/network/ApnSettingsWindow.hpp => module-apps/application-settings/windows/network/ApnSettingsWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class ApnSettingsWindow : public OptionWindow
    {
      public:
        ApnSettingsWindow(app::Application *app);
        ApnSettingsWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/network/NetworkWindow.cpp => module-apps/application-settings/windows/network/NetworkWindow.cpp +2 -1
@@ 10,7 10,8 @@

namespace gui
{
    NetworkWindow::NetworkWindow(app::Application *app, app::settingsInterface::OperatorsSettings *operatorsSettings)
    NetworkWindow::NetworkWindow(app::ApplicationCommon *app,
                                 app::settingsInterface::OperatorsSettings *operatorsSettings)
        : BaseSettingsWindow(app, gui::window::name::network), operatorsSettings(operatorsSettings)
    {}


M module-apps/application-settings/windows/network/NetworkWindow.hpp => module-apps/application-settings/windows/network/NetworkWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        app::settingsInterface::OperatorsSettings *operatorsSettings;

      public:
        NetworkWindow(app::Application *app, app::settingsInterface::OperatorsSettings *operatorsSettings);
        NetworkWindow(app::ApplicationCommon *app, app::settingsInterface::OperatorsSettings *operatorsSettings);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/application-settings/windows/network/NewApnWindow.cpp => module-apps/application-settings/windows/network/NewApnWindow.cpp +1 -1
@@ 9,7 9,7 @@
namespace gui
{

    NewApnWindow::NewApnWindow(app::Application *app)
    NewApnWindow::NewApnWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::new_apn),
          apn(std::make_shared<packet_data::APN::Config>()), newApnModel{std::make_shared<NewApnModel>(app)}
    {

M module-apps/application-settings/windows/network/NewApnWindow.hpp => module-apps/application-settings/windows/network/NewApnWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
    class NewApnWindow : public AppWindow
    {
      public:
        NewApnWindow(app::Application *app);
        NewApnWindow(app::ApplicationCommon *app);

      private:
        auto onInput(const InputEvent &inputEvent) -> bool override;

M module-apps/application-settings/windows/network/SimCardsWindow.cpp => module-apps/application-settings/windows/network/SimCardsWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    SimCardsWindow::SimCardsWindow(app::Application *app, app::settingsInterface::SimParams *simParams)
    SimCardsWindow::SimCardsWindow(app::ApplicationCommon *app, app::settingsInterface::SimParams *simParams)
        : BaseSettingsWindow(app, gui::window::name::sim_cards), simParams(simParams)
    {}


M module-apps/application-settings/windows/network/SimCardsWindow.hpp => module-apps/application-settings/windows/network/SimCardsWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        app::settingsInterface::SimParams *simParams;

      public:
        SimCardsWindow(app::Application *app, app::settingsInterface::SimParams *simParams);
        SimCardsWindow(app::ApplicationCommon *app, app::settingsInterface::SimParams *simParams);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/application-settings/windows/network/SimContactsImportWindow.cpp => module-apps/application-settings/windows/network/SimContactsImportWindow.cpp +1 -1
@@ 10,7 10,7 @@
namespace gui
{
    SimContactsImportWindow::SimContactsImportWindow(
        app::Application *app, std::unique_ptr<SimContactsImportWindowContract::Presenter> simImportPresenter)
        app::ApplicationCommon *app, std::unique_ptr<SimContactsImportWindowContract::Presenter> simImportPresenter)
        : AppWindow(app, gui::window::name::import_contacts), presenter(std::move(simImportPresenter))
    {
        presenter->attach(this);

M module-apps/application-settings/windows/network/SimContactsImportWindow.hpp => module-apps/application-settings/windows/network/SimContactsImportWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class SimContactsImportWindow : public AppWindow, public SimContactsImportWindowContract::View
    {
      public:
        SimContactsImportWindow(app::Application *app,
        SimContactsImportWindow(app::ApplicationCommon *app,
                                std::unique_ptr<SimContactsImportWindowContract::Presenter> presenter);

      private:

M module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp => module-apps/application-settings/windows/network/SimPINSettingsWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    SimPINSettingsWindow::SimPINSettingsWindow(app::Application *app)
    SimPINSettingsWindow::SimPINSettingsWindow(app::ApplicationCommon *app)
        : BaseSettingsWindow(app, window::name::sim_pin_settings)
    {
        app->bus.sendUnicast<cellular::msg::request::sim::GetLockState>();

M module-apps/application-settings/windows/network/SimPINSettingsWindow.hpp => module-apps/application-settings/windows/network/SimPINSettingsWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class SimPINSettingsWindow : public BaseSettingsWindow
    {
      public:
        explicit SimPINSettingsWindow(app::Application *app);
        explicit SimPINSettingsWindow(app::ApplicationCommon *app);

      private:
        auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    ConnectionFrequencyWindow::ConnectionFrequencyWindow(app::Application *app,
    ConnectionFrequencyWindow::ConnectionFrequencyWindow(app::ApplicationCommon *app,
                                                         app::settingsInterface::ConnectionSettings *connectionSettings)
        : BaseSettingsWindow(app, gui::window::name::connection_frequency), connectionSettings(connectionSettings)
    {

M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp +1 -1
@@ 22,7 22,7 @@ namespace gui
        std::vector<uint8_t> frequency{0, 15, 30, 45, 60};

      public:
        ConnectionFrequencyWindow(app::Application *app,
        ConnectionFrequencyWindow(app::ApplicationCommon *app,
                                  app::settingsInterface::ConnectionSettings *connectionSettings);
        void onBeforeShow(ShowMode m, SwitchData *d) override;
    };

M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp => module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.cpp +2 -1
@@ 11,7 11,8 @@

namespace gui
{
    DoNotDisturbWindow::DoNotDisturbWindow(app::Application *app, app::settingsInterface::DndSettings *dndSettings)
    DoNotDisturbWindow::DoNotDisturbWindow(app::ApplicationCommon *app,
                                           app::settingsInterface::DndSettings *dndSettings)
        : BaseSettingsWindow(app, gui::window::name::do_not_disturb), dndSettings(dndSettings)
    {
        buildInterface();

M module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.hpp => module-apps/application-settings/windows/phone-modes/DoNotDisturbWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    class DoNotDisturbWindow : public BaseSettingsWindow
    {
      public:
        DoNotDisturbWindow(app::Application *app, app::settingsInterface::DndSettings *dndSettings);
        DoNotDisturbWindow(app::ApplicationCommon *app, app::settingsInterface::DndSettings *dndSettings);
        void buildInterface() override;

      private:

M module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp => module-apps/application-settings/windows/phone-modes/OfflineWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{

    OfflineWindow::OfflineWindow(app::Application *app, app::settingsInterface::OfflineSettings *offlineSettings)
    OfflineWindow::OfflineWindow(app::ApplicationCommon *app, app::settingsInterface::OfflineSettings *offlineSettings)
        : BaseSettingsWindow(app, gui::window::name::offline), offlineSettings(offlineSettings)
    {
        isFlightMode = offlineSettings->isFlightMode();

M module-apps/application-settings/windows/phone-modes/OfflineWindow.hpp => module-apps/application-settings/windows/phone-modes/OfflineWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    class OfflineWindow : public BaseSettingsWindow
    {
      public:
        OfflineWindow(app::Application *app, app::settingsInterface::OfflineSettings *offlineSettings);
        OfflineWindow(app::ApplicationCommon *app, app::settingsInterface::OfflineSettings *offlineSettings);
        void buildInterface() override;

      private:

M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    PhoneModesWindow::PhoneModesWindow(app::Application *app,
    PhoneModesWindow::PhoneModesWindow(app::ApplicationCommon *app,
                                       app::settingsInterface::PhoneModeSettings *phoneModeSettings)
        : OptionWindow(app, gui::window::name::phone_modes), phoneModeSettings(phoneModeSettings)
    {

M module-apps/application-settings/windows/phone-modes/PhoneModesWindow.hpp => module-apps/application-settings/windows/phone-modes/PhoneModesWindow.hpp +1 -1
@@ 25,6 25,6 @@ namespace gui
        std::vector<std::string> modifiedModesStrings{initialModesStrings};

      public:
        PhoneModesWindow(app::Application *app, app::settingsInterface::PhoneModeSettings *phoneModeSettings);
        PhoneModesWindow(app::ApplicationCommon *app, app::settingsInterface::PhoneModeSettings *phoneModeSettings);
    };
} // namespace gui

M module-apps/application-settings/windows/security/AutolockWindow.cpp => module-apps/application-settings/windows/security/AutolockWindow.cpp +2 -1
@@ 24,7 24,8 @@ namespace gui
            {"20m", std::chrono::minutes{20}}};
    } // namespace

    AutolockWindow::AutolockWindow(app::Application *app, app::settingsInterface::AutoLockSettings *autoLockSettings)
    AutolockWindow::AutolockWindow(app::ApplicationCommon *app,
                                   app::settingsInterface::AutoLockSettings *autoLockSettings)
        : BaseSettingsWindow(app, window::name::autolock), autoLockSettings(autoLockSettings)
    {
        setTitle(utils::translate("app_settings_display_security_autolock"));

M module-apps/application-settings/windows/security/AutolockWindow.hpp => module-apps/application-settings/windows/security/AutolockWindow.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
    class AutolockWindow : public BaseSettingsWindow
    {
      public:
        AutolockWindow(app::Application *app, app::settingsInterface::AutoLockSettings *autoLockSettings);
        AutolockWindow(app::ApplicationCommon *app, app::settingsInterface::AutoLockSettings *autoLockSettings);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

      private:

M module-apps/application-settings/windows/security/SecurityMainWindow.cpp => module-apps/application-settings/windows/security/SecurityMainWindow.cpp +2 -1
@@ 9,7 9,8 @@

namespace gui
{
    SecurityMainWindow::SecurityMainWindow(app::Application *app) : BaseSettingsWindow(app, window::name::security)
    SecurityMainWindow::SecurityMainWindow(app::ApplicationCommon *app)
        : BaseSettingsWindow(app, window::name::security)
    {}

    void SecurityMainWindow::onBeforeShow(ShowMode mode, SwitchData *data)

M module-apps/application-settings/windows/security/SecurityMainWindow.hpp => module-apps/application-settings/windows/security/SecurityMainWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class SecurityMainWindow : public BaseSettingsWindow
    {
      public:
        explicit SecurityMainWindow(app::Application *app);
        explicit SecurityMainWindow(app::ApplicationCommon *app);

      private:
        auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/system/CertificationWindow.cpp => module-apps/application-settings/windows/system/CertificationWindow.cpp +2 -1
@@ 10,7 10,8 @@

namespace gui
{
    CertificationWindow::CertificationWindow(app::Application *app) : AppWindow(app, gui::window::name::certification)
    CertificationWindow::CertificationWindow(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::certification)
    {
        buildInterface();
    }

M module-apps/application-settings/windows/system/CertificationWindow.hpp => module-apps/application-settings/windows/system/CertificationWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class CertificationWindow : public AppWindow
    {
      public:
        explicit CertificationWindow(app::Application *app);
        explicit CertificationWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp => module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    ChangeDateAndTimeWindow::ChangeDateAndTimeWindow(app::Application *app, std::string name)
    ChangeDateAndTimeWindow::ChangeDateAndTimeWindow(app::ApplicationCommon *app, std::string name)
        : AppWindow(app, name), dateAndTimeModel{std::make_shared<DateAndTimeModel>(this->application)}
    {
        buildInterface();

M module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.hpp => module-apps/application-settings/windows/system/ChangeDateAndTimeWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class ChangeDateAndTimeWindow : public AppWindow
    {
      public:
        explicit ChangeDateAndTimeWindow(app::Application *app,
        explicit ChangeDateAndTimeWindow(app::ApplicationCommon *app,
                                         std::string name = gui::window::name::change_date_and_time);

        void buildInterface() override;

M module-apps/application-settings/windows/system/ChangeTimeZone.cpp => module-apps/application-settings/windows/system/ChangeTimeZone.cpp +1 -1
@@ 13,7 13,7 @@

namespace gui
{
    ChangeTimeZone::ChangeTimeZone(app::Application *app)
    ChangeTimeZone::ChangeTimeZone(app::ApplicationCommon *app)
        : BaseSettingsWindow(app, window::name::change_date_and_time),
          timeZonesList(utils::time::getAvailableTimeZonesWithOffset())
    {

M module-apps/application-settings/windows/system/ChangeTimeZone.hpp => module-apps/application-settings/windows/system/ChangeTimeZone.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class ChangeTimeZone : public BaseSettingsWindow
    {
      public:
        explicit ChangeTimeZone(app::Application *app);
        explicit ChangeTimeZone(app::ApplicationCommon *app);

      protected:
        [[nodiscard]] auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    DateAndTimeMainWindow::DateAndTimeMainWindow(app::Application *app, std::string name)
    DateAndTimeMainWindow::DateAndTimeMainWindow(app::ApplicationCommon *app, std::string name)
        : BaseSettingsWindow(app, std::move(name))
    {
        setTitle(utils::translate("app_settings_date_and_time"));

M module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class DateAndTimeMainWindow : public BaseSettingsWindow
    {
      public:
        DateAndTimeMainWindow(app::Application *app, std::string name);
        DateAndTimeMainWindow(app::ApplicationCommon *app, std::string name);

      protected:
        auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/system/LanguagesWindow.cpp => module-apps/application-settings/windows/system/LanguagesWindow.cpp +1 -1
@@ 8,7 8,7 @@

namespace gui
{
    LanguagesWindow::LanguagesWindow(app::Application *app, std::string name)
    LanguagesWindow::LanguagesWindow(app::ApplicationCommon *app, std::string name)
        : BaseSettingsWindow(app, std::move(name)), langList(loader.getAvailableDisplayLanguages())
    {
        setTitle(utils::translate("app_settings_title_languages"));

M module-apps/application-settings/windows/system/LanguagesWindow.hpp => module-apps/application-settings/windows/system/LanguagesWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class LanguagesWindow : public BaseSettingsWindow
    {
      public:
        explicit LanguagesWindow(app::Application *app, std::string name = window::name::languages);
        explicit LanguagesWindow(app::ApplicationCommon *app, std::string name = window::name::languages);

      protected:
        auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/system/SARInfoWindow.cpp => module-apps/application-settings/windows/system/SARInfoWindow.cpp +1 -1
@@ 10,7 10,7 @@

namespace gui
{
    SARInfoWindow::SARInfoWindow(app::Application *app,
    SARInfoWindow::SARInfoWindow(app::ApplicationCommon *app,
                                 std::unique_ptr<SARInfoWindowContract::Presenter> &&windowPresenter)
        : gui::AppWindow(app, window::name::sar), presenter{std::move(windowPresenter)}
    {

M module-apps/application-settings/windows/system/SARInfoWindow.hpp => module-apps/application-settings/windows/system/SARInfoWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
    class SARInfoWindow : public gui::AppWindow, public SARInfoWindowContract::View
    {
      public:
        explicit SARInfoWindow(app::Application *app,
        explicit SARInfoWindow(app::ApplicationCommon *app,
                               std::unique_ptr<SARInfoWindowContract::Presenter> &&windowPresenter);

      private:

M module-apps/application-settings/windows/system/SystemMainWindow.cpp => module-apps/application-settings/windows/system/SystemMainWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    SystemMainWindow::SystemMainWindow(app::Application *app) : BaseSettingsWindow(app, window::name::system)
    SystemMainWindow::SystemMainWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, window::name::system)
    {}

    auto SystemMainWindow::buildOptionsList() -> std::list<Option>

M module-apps/application-settings/windows/system/SystemMainWindow.hpp => module-apps/application-settings/windows/system/SystemMainWindow.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class SystemMainWindow : public BaseSettingsWindow
    {
      public:
        explicit SystemMainWindow(app::Application *app);
        explicit SystemMainWindow(app::ApplicationCommon *app);

      private:
        auto buildOptionsList() -> std::list<Option> override;

M module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp => module-apps/application-settings/windows/system/TechnicalInformationWindow.cpp +1 -1
@@ 8,7 8,7 @@
namespace gui
{
    TechnicalInformationWindow::TechnicalInformationWindow(
        app::Application *app, std::shared_ptr<TechnicalWindowContract::Presenter> technicalPresenter)
        app::ApplicationCommon *app, std::shared_ptr<TechnicalWindowContract::Presenter> technicalPresenter)
        : AppWindow(app, gui::window::name::technical_information), presenter(std::move(technicalPresenter))
    {
        presenter->attach(this);

M module-apps/application-settings/windows/system/TechnicalInformationWindow.hpp => module-apps/application-settings/windows/system/TechnicalInformationWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    {

      public:
        TechnicalInformationWindow(app::Application *app,
        TechnicalInformationWindow(app::ApplicationCommon *app,
                                   std::shared_ptr<TechnicalWindowContract::Presenter> presenter);

      private:

M module-apps/application-special-input/ApplicationSpecialInput.cpp => module-apps/application-special-input/ApplicationSpecialInput.cpp +1 -1
@@ 24,7 24,7 @@ ApplicationSpecialInput::ApplicationSpecialInput(std::string name,
        return actionHandled();
    });

    windowsFactory.attach(app::char_select, [](Application *app, const std::string &name) {
    windowsFactory.attach(app::char_select, [](ApplicationCommon *app, const std::string &name) {
        return std::make_unique<gui::SpecialInputMainWindow>(app);
    });


M module-apps/application-special-input/CMakeLists.txt => module-apps/application-special-input/CMakeLists.txt +1 -0
@@ 29,6 29,7 @@ target_sources(application-special-input

target_link_libraries(application-special-input
    PRIVATE
        app
        apps-common
        i18n
        service-appmgr

M module-apps/application-special-input/models/SpecialInputModel.cpp => module-apps/application-special-input/models/SpecialInputModel.cpp +1 -1
@@ 5,7 5,7 @@
#include "SpecialInputTableWidget.hpp"
#include <ListView.hpp>

SpecialInputModel::SpecialInputModel(app::Application *app) : application(app)
SpecialInputModel::SpecialInputModel(app::ApplicationCommon *app) : application(app)
{}

auto SpecialInputModel::requestRecordsCount() -> unsigned int

M module-apps/application-special-input/models/SpecialInputModel.hpp => module-apps/application-special-input/models/SpecialInputModel.hpp +2 -2
@@ 12,12 12,12 @@
class SpecialInputModel : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
{
  private:
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;
    [[nodiscard]] auto getMaxGridElements() const -> ssize_t;
    void buildGrid(const std::vector<char32_t> &elements);

  public:
    SpecialInputModel(app::Application *app);
    SpecialInputModel(app::ApplicationCommon *app);
    void clearData();
    void createData(specialInputStyle::CharactersType type = specialInputStyle::CharactersType::SpecialCharacters);


M module-apps/application-special-input/widgets/SpecialInputTableWidget.cpp => module-apps/application-special-input/widgets/SpecialInputTableWidget.cpp +1 -1
@@ 16,7 16,7 @@ namespace gui

    using namespace specialInputStyle;

    SpecialInputTableWidget::SpecialInputTableWidget(app::Application *app, std::list<Carrier> &&carrier)
    SpecialInputTableWidget::SpecialInputTableWidget(app::ApplicationCommon *app, std::list<Carrier> &&carrier)
        : application(app)
    {
        setMinimumSize(specialCharacterTableWidget::window_grid_w, specialCharacterTableWidget::window_grid_h);

M module-apps/application-special-input/widgets/SpecialInputTableWidget.hpp => module-apps/application-special-input/widgets/SpecialInputTableWidget.hpp +3 -3
@@ 5,7 5,7 @@

#include "SpecialCharactersTableStyle.hpp"
#include "SpecialInputMainWindow.hpp"
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <ListItem.hpp>
#include <Text.hpp>
#include <TextFixedSize.hpp>


@@ 29,10 29,10 @@ namespace gui
      protected:
        void decorateActionActivated(Item *it, const std::string &str);
        GridLayout *box               = nullptr;
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;

      public:
        SpecialInputTableWidget(app::Application *app, std::list<Carrier> &&carier);
        SpecialInputTableWidget(app::ApplicationCommon *app, std::list<Carrier> &&carier);
    };

} /* namespace gui */

M module-apps/application-special-input/windows/SpecialInputMainWindow.cpp => module-apps/application-special-input/windows/SpecialInputMainWindow.cpp +1 -1
@@ 10,7 10,7 @@

using namespace gui;

SpecialInputMainWindow::SpecialInputMainWindow(app::Application *app)
SpecialInputMainWindow::SpecialInputMainWindow(app::ApplicationCommon *app)
    : AppWindow(app, app::char_select), model{std::make_shared<SpecialInputModel>(this->application)}
{
    buildInterface();

M module-apps/application-special-input/windows/SpecialInputMainWindow.hpp => module-apps/application-special-input/windows/SpecialInputMainWindow.hpp +1 -1
@@ 26,7 26,7 @@ namespace gui
        void switchPage();

      public:
        SpecialInputMainWindow(app::Application *app);
        SpecialInputMainWindow(app::ApplicationCommon *app);
        virtual ~SpecialInputMainWindow() = default;

        // virtual methods

R module-apps/apps-common/Application.cpp => module-apps/apps-common/ApplicationCommon.cpp +110 -107
@@ 1,7 1,7 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "Common.hpp"                         // for RefreshModes
#include "GuiTimer.hpp"                       // for GuiTimer
#include "Item.hpp"                           // for Item


@@ 76,7 76,7 @@ namespace app
        return std::make_shared<ActionHandledResponse>(sys::ReturnCodes::Failure);
    }

    const char *Application::stateStr(Application::State st)
    const char *ApplicationCommon::stateStr(ApplicationCommon::State st)
    {
        switch (st) {
        case State::NONE:


@@ 98,13 98,13 @@ namespace app
        }
    }

    Application::Application(std::string name,
                             std::string parent,
                             sys::phone_modes::PhoneMode phoneMode,
                             sys::bluetooth::BluetoothMode bluetoothMode,
                             StartInBackground startInBackground,
                             uint32_t stackDepth,
                             sys::ServicePriority priority)
    ApplicationCommon::ApplicationCommon(std::string name,
                                         std::string parent,
                                         sys::phone_modes::PhoneMode phoneMode,
                                         sys::bluetooth::BluetoothMode bluetoothMode,
                                         StartInBackground startInBackground,
                                         uint32_t stackDepth,
                                         sys::ServicePriority priority)
        : Service(std::move(name), std::move(parent), stackDepth, priority),
          default_window(gui::name::window::main_window), windowsStack(this),
          keyTranslator{std::make_unique<gui::KeyInputSimpleTranslation>()}, startInBackground{startInBackground},


@@ 165,17 165,17 @@ namespace app
        });
    }

    Application::~Application() noexcept
    ApplicationCommon::~ApplicationCommon() noexcept
    {
        windowsStack.windows.clear();
    }

    Application::State Application::getState()
    ApplicationCommon::State ApplicationCommon::getState()
    {
        return state;
    }

    void Application::setState(State st)
    void ApplicationCommon::setState(State st)
    {
#if DEBUG_APPLICATION_MANAGEMENT == 1
        LOG_DEBUG("[%s] (%s) -> (%s)", GetName().c_str(), stateStr(state), stateStr(st));


@@ 183,7 183,7 @@ namespace app
        state = st;
    }

    void Application::longPressTimerCallback()
    void ApplicationCommon::longPressTimerCallback()
    {
        const auto actualTimeStamp = xTaskGetTickCount();
        if (keyTranslator->isKeyPressTimedOut(actualTimeStamp)) {


@@ 194,12 194,12 @@ namespace app
        }
    }

    void Application::clearLongPressTimeout()
    void ApplicationCommon::clearLongPressTimeout()
    {
        keyTranslator->setPreviousKeyTimedOut(false);
    }

    void Application::render(gui::RefreshModes mode)
    void ApplicationCommon::render(gui::RefreshModes mode)
    {
        if (windowsStack.isEmpty()) {
            LOG_ERROR("Current window is not defined");


@@ 233,7 233,7 @@ namespace app
            suspendInProgress = false;
    }

    void Application::updateWindow(const std::string &windowName, std::unique_ptr<gui::SwitchData> data)
    void ApplicationCommon::updateWindow(const std::string &windowName, std::unique_ptr<gui::SwitchData> data)
    {
        const auto currentWindow = getCurrentWindow();
        auto msg =


@@ 241,10 241,10 @@ namespace app
        bus.sendUnicast(std::move(msg), this->GetName());
    }

    void Application::switchWindow(const std::string &windowName,
                                   gui::ShowMode cmd,
                                   std::unique_ptr<gui::SwitchData> data,
                                   SwitchReason reason)
    void ApplicationCommon::switchWindow(const std::string &windowName,
                                         gui::ShowMode cmd,
                                         std::unique_ptr<gui::SwitchData> data,
                                         SwitchReason reason)
    {

        std::string window;


@@ 269,7 269,7 @@ namespace app
        }
    }

    void Application::returnToPreviousWindow(const uint32_t times)
    void ApplicationCommon::returnToPreviousWindow(const uint32_t times)
    {
        if (const auto prevWindow = getPrevWindow(times); prevWindow == gui::name::window::no_window) {
            app::manager::Controller::switchBack(this);


@@ 280,14 280,14 @@ namespace app
        }
    }

    void Application::popCurrentWindow()
    void ApplicationCommon::popCurrentWindow()
    {
        if (!windowsStack.stack.empty()) {
            windowsStack.stack.pop_back();
        }
    }

    void Application::popWindow(const std::string &window)
    void ApplicationCommon::popWindow(const std::string &window)
    {
        auto popWindow = std::find(windowsStack.stack.begin(), windowsStack.stack.end(), window);
        if (popWindow != windowsStack.stack.end()) {


@@ 295,7 295,7 @@ namespace app
        }
    }

    void Application::refreshWindow(gui::RefreshModes mode)
    void ApplicationCommon::refreshWindow(gui::RefreshModes mode)
    {
        if (not windowsStack.isEmpty()) {
            auto msg = std::make_shared<AppRefreshMessage>(mode, getCurrentWindow()->getName());


@@ 303,7 303,7 @@ namespace app
        }
    }

    sys::MessagePointer Application::DataReceivedHandler(sys::DataMessage *msgl)
    sys::MessagePointer ApplicationCommon::DataReceivedHandler(sys::DataMessage *msgl)
    {
        auto msg = dynamic_cast<CellularNotificationMessage *>(msgl);
        if (msg != nullptr) {


@@ 348,7 348,7 @@ namespace app
        return sys::msgNotHandled();
    }

    sys::MessagePointer Application::handleAsyncResponse(sys::ResponseMessage *resp)
    sys::MessagePointer ApplicationCommon::handleAsyncResponse(sys::ResponseMessage *resp)
    {
        if (resp != nullptr) {
            if (auto command = callbackStorage->getCallback(resp); command->execute()) {


@@ 362,7 362,7 @@ namespace app
        }
    }

    sys::MessagePointer Application::handleSignalStrengthUpdate(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleSignalStrengthUpdate(sys::Message *msgl)
    {
        if ((state == State::ACTIVE_FORGROUND) && getCurrentWindow()->updateSignalStrength()) {
            refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);


@@ 370,7 370,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleNetworkAccessTechnologyUpdate(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleNetworkAccessTechnologyUpdate(sys::Message *msgl)
    {
        if ((state == State::ACTIVE_FORGROUND) && getCurrentWindow()->updateNetworkAccessTechnology()) {
            refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);


@@ 378,7 378,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleInputEvent(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleInputEvent(sys::Message *msgl)
    {
        AppInputEventMessage *msg = reinterpret_cast<AppInputEventMessage *>(msgl);
        if (msg->getEvent().isKeyPress()) {


@@ 393,9 393,9 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleKBDKeyEvent(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleKBDKeyEvent(sys::Message *msgl)
    {
        if (this->getState() != app::Application::State::ACTIVE_FORGROUND) {
        if (this->getState() != app::ApplicationCommon::State::ACTIVE_FORGROUND) {
            LOG_FATAL("!!! Terrible terrible damage! application with no focus grabbed key!");
        }
        sevm::KbdMessage *msg = static_cast<sevm::KbdMessage *>(msgl);


@@ 406,7 406,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleBatteryStatusChange()
    sys::MessagePointer ApplicationCommon::handleBatteryStatusChange()
    {
        if ((state == State::ACTIVE_FORGROUND) && getCurrentWindow()->updateBatteryStatus()) {
            refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);


@@ 414,7 414,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleMinuteUpdated(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleMinuteUpdated(sys::Message *msgl)
    {
        if (state == State::ACTIVE_FORGROUND && getCurrentWindow()->updateTime()) {
            refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);


@@ 422,7 422,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleAction(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleAction(sys::Message *msgl)
    {
        auto *msg         = static_cast<AppActionRequest *>(msgl);
        const auto action = msg->getAction();


@@ 445,7 445,7 @@ namespace app
        return actionNotHandled();
    }

    sys::MessagePointer Application::handleApplicationSwitch(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleApplicationSwitch(sys::Message *msgl)
    {
        auto *msg = static_cast<AppSwitchMessage *>(msgl);



@@ 459,7 459,7 @@ namespace app
        return sys::msgNotHandled();
    }

    sys::MessagePointer Application::handleApplicationSwitchLaunch(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleApplicationSwitchLaunch(sys::Message *msgl)
    {
        auto *msg    = static_cast<AppSwitchMessage *>(msgl);
        bool handled = false;


@@ 506,7 506,7 @@ namespace app
        return sys::msgNotHandled();
    }

    sys::MessagePointer Application::handleApplicationSwitchOnAction(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleApplicationSwitchOnAction(sys::Message *msgl)
    {
        if ((state == State::ACTIVATING) || (state == State::INITIALIZING) || (state == State::ACTIVE_BACKGROUND)) {
            setState(State::ACTIVE_FORGROUND);


@@ 519,7 519,7 @@ namespace app
        }
    }

    sys::MessagePointer Application::handleSwitchWindow(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleSwitchWindow(sys::Message *msgl)
    {
        auto msg = static_cast<AppSwitchWindowMessage *>(msgl);
        // check if specified window is in the application


@@ 559,7 559,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleUpdateWindow(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleUpdateWindow(sys::Message *msgl)
    {
        auto msg = static_cast<AppUpdateWindowMessage *>(msgl);



@@ 575,7 575,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleAppClose(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleAppClose(sys::Message *msgl)
    {
        setState(State::DEACTIVATING);



@@ 595,7 595,7 @@ namespace app
        }
    }

    void Application::checkBlockingRequests()
    void ApplicationCommon::checkBlockingRequests()
    {
        if (getState() == State::FINALIZING_CLOSE && !callbackStorage->checkBlockingCloseRequests()) {
            LOG_INFO("Blocking requests done for [%s]. Closing application.", GetName().c_str());


@@ 604,7 604,7 @@ namespace app
        }
    }

    sys::MessagePointer Application::handleAppRebuild(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleAppRebuild(sys::Message *msgl)
    {
        LOG_INFO("Application %s rebuilding gui", GetName().c_str());
        for (auto &[name, window] : windowsStack) {


@@ 619,7 619,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleAppRefresh(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleAppRefresh(sys::Message *msgl)
    {
        auto *msg = static_cast<AppRefreshMessage *>(msgl);
        assert(msg);


@@ 633,7 633,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleGetDOM(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleGetDOM(sys::Message *msgl)
    {
        if (windowsStack.isEmpty()) {
            LOG_ERROR("Current window is not defined - can't dump DOM");


@@ 652,7 652,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleAppFocusLost(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleAppFocusLost(sys::Message *msgl)
    {
        if (state == State::ACTIVE_FORGROUND) {
            setState(State::ACTIVE_BACKGROUND);


@@ 661,7 661,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::MessagePointer Application::handleSimStateUpdateMessage(sys::Message *msgl)
    sys::MessagePointer ApplicationCommon::handleSimStateUpdateMessage(sys::Message *msgl)
    {
        if (getCurrentWindow()->updateSim()) {
            refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);


@@ 669,7 669,7 @@ namespace app
        return sys::msgHandled();
    }

    sys::ReturnCodes Application::InitHandler()
    sys::ReturnCodes ApplicationCommon::InitHandler()
    {
        setState(State::INITIALIZING);



@@ 683,7 683,7 @@ namespace app
        return sys::ReturnCodes::Success;
    }

    sys::ReturnCodes Application::DeinitHandler()
    sys::ReturnCodes ApplicationCommon::DeinitHandler()
    {
        settings->deinit();
        LOG_INFO("Closing an application: %s", GetName().c_str());


@@ 692,78 692,78 @@ namespace app
        return sys::ReturnCodes::Success;
    }

    void Application::setActiveWindow(const std::string &windowName)
    void ApplicationCommon::setActiveWindow(const std::string &windowName)
    {
        pushWindow(windowName);
    }

    bool Application::adjustCurrentVolume(const int step)
    bool ApplicationCommon::adjustCurrentVolume(const int step)
    {
        return AudioServiceAPI::KeyPressed(this, step);
    }

    void Application::toggleTorchOnOff()
    void ApplicationCommon::toggleTorchOnOff()
    {
        auto msg = std::make_shared<sevm::ToggleTorchOnOffMessage>();
        bus.sendUnicast(std::move(msg), service::name::evt_manager);
    }

    void Application::toggleTorchColor()
    void ApplicationCommon::toggleTorchColor()
    {
        auto msg = std::make_shared<sevm::ToggleTorchColorMessage>();
        bus.sendUnicast(std::move(msg), service::name::evt_manager);
    }

    void Application::requestAction(sys::Service *sender,
                                    const ApplicationName &applicationName,
                                    manager::actions::ActionId actionId,
                                    manager::actions::ActionParamsPtr &&data)
    void ApplicationCommon::requestAction(sys::Service *sender,
                                          const ApplicationName &applicationName,
                                          manager::actions::ActionId actionId,
                                          manager::actions::ActionParamsPtr &&data)
    {
        auto msg = std::make_shared<AppActionRequest>(actionId, std::move(data));
        sender->bus.sendUnicast(msg, applicationName);
    }

    void Application::messageSwitchApplication(sys::Service *sender,
                                               std::string application,
                                               std::string window,
                                               std::unique_ptr<gui::SwitchData> data,
                                               StartupReason startupReason)
    void ApplicationCommon::messageSwitchApplication(sys::Service *sender,
                                                     std::string application,
                                                     std::string window,
                                                     std::unique_ptr<gui::SwitchData> data,
                                                     StartupReason startupReason)
    {
        auto msg = std::make_shared<AppSwitchMessage>(application, window, std::move(data), startupReason);
        sender->bus.sendUnicast(msg, application);
    }

    void Application::messageCloseApplication(sys::Service *sender, std::string application)
    void ApplicationCommon::messageCloseApplication(sys::Service *sender, std::string application)
    {
        auto msg = std::make_shared<AppMessage>(MessageType::AppClose);
        sender->bus.sendUnicast(msg, application);
    }

    void Application::messageRebuildApplication(sys::Service *sender, std::string application)
    void ApplicationCommon::messageRebuildApplication(sys::Service *sender, std::string application)
    {
        auto msg = std::make_shared<AppRebuildMessage>();
        sender->bus.sendUnicast(msg, application);
    }

    void Application::messageApplicationLostFocus(sys::Service *sender, std::string application)
    void ApplicationCommon::messageApplicationLostFocus(sys::Service *sender, std::string application)
    {
        sender->bus.sendUnicast(std::make_shared<AppLostFocusMessage>(), application);
    }

    void Application::messageSwitchBack(sys::Service *sender, const std::string &application)
    void ApplicationCommon::messageSwitchBack(sys::Service *sender, const std::string &application)
    {
        sender->bus.sendUnicast(std::make_shared<AppSwitchBackMessage>(), application);
    }

    void Application::messageInputEventApplication(sys::Service *sender,
                                                   std::string application,
                                                   const gui::InputEvent &event)
    void ApplicationCommon::messageInputEventApplication(sys::Service *sender,
                                                         std::string application,
                                                         const gui::InputEvent &event)
    {
        auto msg = std::make_shared<AppInputEventMessage>(event);
        sender->bus.sendUnicast(msg, application);
    }

    void Application::handlePhoneModeChanged(sys::phone_modes::PhoneMode mode)
    void ApplicationCommon::handlePhoneModeChanged(sys::phone_modes::PhoneMode mode)
    {
        auto flightModeSetting = settings->getValue(settings::Cellular::offlineMode, settings::SettingsScope::Global);
        bool flightMode        = flightModeSetting == "1" ? true : false;


@@ 778,7 778,7 @@ namespace app
        }
    }

    void Application::handleVolumeChanged(audio::Volume volume, audio::Context context)
    void ApplicationCommon::handleVolumeChanged(audio::Volume volume, audio::Context context)
    {
        using namespace gui::popup;
        const auto popupName = resolveWindowName(gui::popup::ID::Volume);


@@ 790,31 790,31 @@ namespace app
        }
    }

    void Application::attachPopups(const std::vector<gui::popup::ID> &popupsList)
    void ApplicationCommon::attachPopups(const std::vector<gui::popup::ID> &popupsList)
    {
        using namespace gui::popup;
        for (auto popup : popupsList) {
            switch (popup) {
            case ID::Volume:
                windowsFactory.attach(window::volume_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::volume_window, [](ApplicationCommon *app, const std::string &name) {
                    return std::make_unique<gui::VolumeWindow>(app, window::volume_window);
                });
                break;
            case ID::Tethering:
            case ID::TetheringPhoneModeChangeProhibited:
                windowsFactory.attach(window::tethering_confirmation_window,
                                      [](Application *app, const std::string &name) {
                                      [](ApplicationCommon *app, const std::string &name) {
                                          return std::make_unique<gui::TetheringConfirmationPopup>(
                                              app, window::tethering_confirmation_window);
                                      });
                windowsFactory.attach(window::tethering_phonemode_change_window,
                                      [](Application *app, const std::string &name) {
                                      [](ApplicationCommon *app, const std::string &name) {
                                          return std::make_unique<gui::TetheringPhoneModePopup>(
                                              app, window::tethering_phonemode_change_window);
                                      });
                break;
            case ID::PhoneModes:
                windowsFactory.attach(window::phone_modes_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::phone_modes_window, [](ApplicationCommon *app, const std::string &name) {
                    return std::make_unique<gui::HomeModesWindow>(app, window::phone_modes_window);
                });
                break;


@@ 824,21 824,23 @@ namespace app
            case ID::PhoneLockInput:
            case ID::PhoneLockInfo:
            case ID::PhoneLockChangeInfo:
                windowsFactory.attach(window::phone_lock_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::phone_lock_window, [](ApplicationCommon *app, const std::string &name) {
                    return std::make_unique<gui::PhoneLockedWindow>(app, window::phone_lock_window);
                });
                windowsFactory.attach(window::phone_lock_info_window, [](Application *app, const std::string &name) {
                    return std::make_unique<gui::PhoneLockedInfoWindow>(app, window::phone_lock_info_window);
                });
                windowsFactory.attach(window::phone_lock_input_window, [](Application *app, const std::string &name) {
                    return std::make_unique<gui::PhoneLockInputWindow>(app, window::phone_lock_input_window);
                });
                windowsFactory.attach(
                    window::phone_lock_info_window, [](ApplicationCommon *app, const std::string &name) {
                        return std::make_unique<gui::PhoneLockedInfoWindow>(app, window::phone_lock_info_window);
                    });
                windowsFactory.attach(
                    window::phone_lock_input_window, [](ApplicationCommon *app, const std::string &name) {
                        return std::make_unique<gui::PhoneLockInputWindow>(app, window::phone_lock_input_window);
                    });
                windowsFactory.attach(window::phone_lock_change_info_window,
                                      [](Application *app, const std::string &name) {
                                      [](ApplicationCommon *app, const std::string &name) {
                                          return std::make_unique<gui::PhoneLockChangeInfoWindow>(
                                              app, window::phone_lock_change_info_window);
                                      });
                windowsFactory.attach(window::power_off_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::power_off_window, [](ApplicationCommon *app, const std::string &name) {
                    auto presenter = std::make_unique<gui::PowerOffPresenter>(app);
                    return std::make_unique<gui::PowerOffWindow>(app, std::move(presenter));
                });


@@ 846,15 848,16 @@ namespace app
            case ID::SimLock:
            case ID::SimInfo:
            case ID::SimNotReady:
                windowsFactory.attach(window::sim_unlock_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::sim_unlock_window, [](ApplicationCommon *app, const std::string &name) {
                    return std::make_unique<gui::SimLockInputWindow>(app, window::sim_unlock_window);
                });
                windowsFactory.attach(window::sim_info_window, [](Application *app, const std::string &name) {
                windowsFactory.attach(window::sim_info_window, [](ApplicationCommon *app, const std::string &name) {
                    return std::make_unique<gui::SimInfoWindow>(app, window::sim_info_window);
                });
                windowsFactory.attach(window::sim_not_ready_window, [](Application *app, const std::string &name) {
                    return std::make_unique<gui::SimNotReadyWindow>(app, window::sim_not_ready_window);
                });
                windowsFactory.attach(
                    window::sim_not_ready_window, [](ApplicationCommon *app, const std::string &name) {
                        return std::make_unique<gui::SimNotReadyWindow>(app, window::sim_not_ready_window);
                    });
                break;
            default:
                break;


@@ 862,7 865,7 @@ namespace app
        }
    }

    void Application::showPopup(gui::popup::ID id, const gui::PopupRequestParams *params)
    void ApplicationCommon::showPopup(gui::popup::ID id, const gui::PopupRequestParams *params)
    {
        using namespace gui::popup;
        if (id == ID::PhoneModes) {


@@ 900,7 903,7 @@ namespace app
        }
    }

    void Application::abortPopup(gui::popup::ID id)
    void ApplicationCommon::abortPopup(gui::popup::ID id)
    {
        const auto popupName = gui::popup::resolveWindowName(id);



@@ 912,12 915,12 @@ namespace app
        }
    }

    bool Application::isPopupPermitted([[maybe_unused]] gui::popup::ID popupId) const
    bool ApplicationCommon::isPopupPermitted([[maybe_unused]] gui::popup::ID popupId) const
    {
        return true;
    }

    bool Application::popToWindow(const std::string &window)
    bool ApplicationCommon::popToWindow(const std::string &window)
    {
        if (window == gui::name::window::no_window) {
            bool ret = false;


@@ 940,7 943,7 @@ namespace app
        return false;
    }

    void Application::pushWindow(const std::string &newWindow)
    void ApplicationCommon::pushWindow(const std::string &newWindow)
    {
        // handle if window was already on
        LOG_DEBUG("App: %s window %s request", GetName().c_str(), newWindow.c_str());


@@ 958,7 961,7 @@ namespace app
#endif
    };

    const std::string Application::getPrevWindow(uint32_t count) const
    const std::string ApplicationCommon::getPrevWindow(uint32_t count) const
    {
        if (this->windowsStack.stack.size() <= 1 || count > this->windowsStack.stack.size()) {
            return gui::name::window::no_window;


@@ 966,7 969,7 @@ namespace app
        return *std::prev(windowsStack.stack.end(), count + 1);
    }

    gui::AppWindow *Application::getCurrentWindow()
    gui::AppWindow *ApplicationCommon::getCurrentWindow()
    {
        if (windowsStack.stack.size() == 0) {
            windowsStack.push(default_window, windowsFactory.build(this, default_window));


@@ 975,7 978,7 @@ namespace app
        return windowsStack.get(windowsStack.stack.back());
    }

    bool Application::isCurrentWindow(const std::string &windowName) const noexcept
    bool ApplicationCommon::isCurrentWindow(const std::string &windowName) const noexcept
    {
        if (windowsStack.isEmpty()) {
            return false;


@@ 983,55 986,55 @@ namespace app
        return windowsStack.stack.back() == windowName;
    }

    gui::AppWindow *Application::getWindow(const std::string &name)
    gui::AppWindow *ApplicationCommon::getWindow(const std::string &name)
    {
        return windowsStack.get(name);
    }

    void Application::connect(GuiTimer *timer, gui::Item *item)
    void ApplicationCommon::connect(GuiTimer *timer, gui::Item *item)
    {
        item->attachTimer(timer);
    }

    const gui::status_bar::Configuration &Application::getStatusBarConfiguration() const noexcept
    const gui::status_bar::Configuration &ApplicationCommon::getStatusBarConfiguration() const noexcept
    {
        return statusBarManager->getConfiguration();
    }

    void Application::addActionReceiver(manager::actions::ActionId actionId, OnActionReceived &&callback)
    void ApplicationCommon::addActionReceiver(manager::actions::ActionId actionId, OnActionReceived &&callback)
    {
        receivers.insert_or_assign(actionId, std::move(callback));
    }

    void Application::handleNotificationsChanged(std::unique_ptr<gui::SwitchData> notificationsParams)
    void ApplicationCommon::handleNotificationsChanged(std::unique_ptr<gui::SwitchData> notificationsParams)
    {
        if (auto window = getCurrentWindow()->getName(); window == gui::popup::window::phone_lock_window) {
            switchWindow(window, std::move(notificationsParams));
        }
    }

    void Application::cancelCallbacks(AsyncCallbackReceiver::Ptr receiver)
    void ApplicationCommon::cancelCallbacks(AsyncCallbackReceiver::Ptr receiver)
    {
        callbackStorage->removeAll(receiver);
    }

    auto Application::getPhoneLockSubject() noexcept -> locks::PhoneLockSubject &
    auto ApplicationCommon::getPhoneLockSubject() noexcept -> locks::PhoneLockSubject &
    {
        return phoneLockSubject;
    }

    bool Application::isPhoneLockEnabled() const noexcept
    bool ApplicationCommon::isPhoneLockEnabled() const noexcept
    {
        return (utils::getNumericValue<bool>(
            settings->getValue(settings::SystemProperties::lockScreenPasscodeIsOn, settings::SettingsScope::Global)));
    }

    auto Application::getLockPolicyHandler() noexcept -> locks::LockPolicyHandlerInterface &
    auto ApplicationCommon::getLockPolicyHandler() noexcept -> locks::LockPolicyHandlerInterface &
    {
        return lockPolicyHandler;
    }

    auto Application::getSimLockSubject() noexcept -> locks::SimLockSubject &
    auto ApplicationCommon::getSimLockSubject() noexcept -> locks::SimLockSubject &
    {
        return simLockSubject;
    }

R module-apps/apps-common/Application.hpp => module-apps/apps-common/ApplicationCommon.hpp +15 -14
@@ 12,11 12,11 @@
#include "Service/Message.hpp" // for MessagePointer
#include "Service/Service.hpp" // for Service
#include "Timers/TimerHandle.hpp"
#include "SwitchData.hpp"                  // for SwitchData
#include "SwitchData.hpp" // for SwitchData
#include <SystemManager/SystemManagerCommon.hpp>
#include <hal/key_input/KeyEventDefinitions.hpp>
#include "gui/Common.hpp"                  // for ShowMode
#include "projdefs.h"                      // for pdMS_TO_TICKS
#include "gui/Common.hpp" // for ShowMode
#include "projdefs.h"     // for pdMS_TO_TICKS
#include <PhoneModes/Observer.hpp>

#include <service-appmgr/ApplicationManifest.hpp>


@@ 55,7 55,7 @@ namespace settings

namespace app
{
    class Application;
    class ApplicationCommon;
    class GuiTimer;

    class ActionHandledResponse; // Forward declaration


@@ 122,7 122,7 @@ namespace app
    /// This is template for creating new applications. Main difference between Application and service is that:
    /// 1. Application has access to GUI and Input
    /// 2. Application lifetime is managed with app::manager::ApplicationManager
    class Application : public sys::Service, public AsyncCallbacksDeleter
    class ApplicationCommon : public sys::Service, public AsyncCallbacksDeleter
    {
      public:
        /// state in which application is right now


@@ 197,17 197,18 @@ namespace app
        sys::TimerHandle longPressTimer;
        void clearLongPressTimeout();

        explicit Application(std::string name,
                             std::string parent                          = "",
                             sys::phone_modes::PhoneMode phoneMode       = sys::phone_modes::PhoneMode::Connected,
                             sys::bluetooth::BluetoothMode bluetoothMode = sys::bluetooth::BluetoothMode::Disabled,
                             StartInBackground startInBackground         = {false},
                             uint32_t stackDepth                         = 4096,
                             sys::ServicePriority priority               = sys::ServicePriority::Idle);
        explicit ApplicationCommon(
            std::string name,
            std::string parent                          = "",
            sys::phone_modes::PhoneMode phoneMode       = sys::phone_modes::PhoneMode::Connected,
            sys::bluetooth::BluetoothMode bluetoothMode = sys::bluetooth::BluetoothMode::Disabled,
            StartInBackground startInBackground         = {false},
            uint32_t stackDepth                         = 4096,
            sys::ServicePriority priority               = sys::ServicePriority::Idle);

        virtual ~Application() noexcept;
        virtual ~ApplicationCommon() noexcept;

        Application::State getState();
        ApplicationCommon::State getState();
        void setState(State st);

        /// Method responsible for rendering currently active window.

M module-apps/apps-common/ApplicationLauncher.hpp => module-apps/apps-common/ApplicationLauncher.hpp +1 -3
@@ 3,8 3,6 @@

#pragma once

#include "Application.hpp"

namespace app
{
    using ApplicationManifest = app::manager::ApplicationManifest;


@@ 75,7 73,7 @@ namespace app
            return false;
        }

        std::shared_ptr<Application> handle = nullptr;
        std::shared_ptr<ApplicationCommon> handle = nullptr;
    };

    /// application launcher boilerplate

M module-apps/apps-common/AsyncTask.cpp => module-apps/apps-common/AsyncTask.cpp +4 -4
@@ 2,7 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "AsyncTask.hpp"
#include "Application.hpp"
#include <apps-common/ApplicationCommon.hpp>
#include "log.hpp"

namespace app


@@ 17,7 17,7 @@ namespace app
        }
    }

    void AsyncTask::execute(Application *application,
    void AsyncTask::execute(ApplicationCommon *application,
                            AsyncCallbackReceiver::Ptr receiverObject,
                            std::optional<std::function<bool(sys::ResponseMessage *)>> callback,
                            ReceiverBehavior receiverBehavior)


@@ 47,7 47,7 @@ namespace app
        query->setQueryListener(db::QueryCallback::fromFunction(std::move(callback)));
    }

    RequestId AsyncQuery::onExecute(Application *application)
    RequestId AsyncQuery::onExecute(ApplicationCommon *application)
    {
        const auto [result, id] = DBServiceAPI::GetQuery(application, target, std::move(query));
        if (!result) {


@@ 66,7 66,7 @@ namespace app
        : message{std::move(message)}, serviceName{serviceName}
    {}

    auto AsyncRequest::onExecute(Application *application) -> RequestId
    auto AsyncRequest::onExecute(ApplicationCommon *application) -> RequestId
    {
        std::shared_ptr<sys::DataMessage> msg{std::move(message)};
        bool result = application->bus.sendUnicast(msg, serviceName);

M module-apps/apps-common/AsyncTask.hpp => module-apps/apps-common/AsyncTask.hpp +5 -5
@@ 10,7 10,7 @@

namespace app
{
    class Application; // Forward declaration
    class ApplicationCommon; // Forward declaration

    using RequestId = std::uint64_t;
    class AsyncCallbackReceiver;


@@ 57,7 57,7 @@ namespace app
         * @param application       Application
         * @param receiverObject    The context of receiver
         */
        void execute(Application *application,
        void execute(ApplicationCommon *application,
                     AsyncCallbackReceiver::Ptr receiverObject,
                     std::optional<std::function<bool(sys::ResponseMessage *)>> callback = std::nullopt,
                     ReceiverBehavior receiverBehavior                                   = ReceiverBehavior::None);


@@ 68,7 68,7 @@ namespace app
         * @param application   Application
         * @return Request identifier, to be matched with a response.
         */
        [[nodiscard]] virtual auto onExecute(Application *application) -> RequestId = 0;
        [[nodiscard]] virtual auto onExecute(ApplicationCommon *application) -> RequestId = 0;
    };

    /**


@@ 86,7 86,7 @@ namespace app
        void setCallback(std::unique_ptr<db::QueryListener> &&listener) noexcept;

      private:
        [[nodiscard]] auto onExecute(Application *application) -> RequestId override;
        [[nodiscard]] auto onExecute(ApplicationCommon *application) -> RequestId override;

        std::unique_ptr<db::Query> query;
        db::Interface::Name target;


@@ 103,7 103,7 @@ namespace app
        void setCallback(std::function<bool> &&callback) noexcept;

      private:
        [[nodiscard]] auto onExecute(Application *application) -> RequestId override;
        [[nodiscard]] auto onExecute(ApplicationCommon *application) -> RequestId override;

        std::unique_ptr<sys::DataMessage> message;
        std::string serviceName;

M module-apps/apps-common/AudioOperations.cpp => module-apps/apps-common/AudioOperations.cpp +1 -1
@@ 14,7 14,7 @@

namespace app
{
    AsyncAudioOperations::AsyncAudioOperations(Application *application)
    AsyncAudioOperations::AsyncAudioOperations(ApplicationCommon *application)
        : app::AsyncCallbackReceiver{application}, application(application)
    {}


M module-apps/apps-common/AudioOperations.hpp => module-apps/apps-common/AudioOperations.hpp +4 -3
@@ 3,13 3,14 @@

#pragma once

#include <apps-common/Application.hpp>
#include <Audio/decoder/Decoder.hpp>

#include <AsyncTask.hpp>

namespace app
{
    class ApplicationCommon;

    class AbstractAudioOperations
    {
      public:


@@ 29,7 30,7 @@ namespace app
    class AsyncAudioOperations : public AbstractAudioOperations, public app::AsyncCallbackReceiver
    {
      public:
        explicit AsyncAudioOperations(Application *application);
        explicit AsyncAudioOperations(ApplicationCommon *application);

        bool play(const std::string &filePath, const OnPlayCallback &callback) override;
        bool pause(const audio::Token &token, const OnPauseCallback &callback) override;


@@ 37,6 38,6 @@ namespace app
        bool stop(const audio::Token &token, const OnStopCallback &callback) override;

      private:
        Application *application = nullptr;
        ApplicationCommon *application = nullptr;
    };
} // namespace app

M module-apps/apps-common/CMakeLists.txt => module-apps/apps-common/CMakeLists.txt +2 -1
@@ 5,7 5,7 @@ add_library(apps-common STATIC)

target_sources(apps-common
    PRIVATE
        Application.cpp
        ApplicationCommon.cpp
        AsyncTask.cpp
        AudioOperations.cpp
        AudioOperations.hpp


@@ 52,6 52,7 @@ target_sources(apps-common
        windows/OptionWindow.cpp

    PUBLIC
        ApplicationCommon.hpp
        widgets/TimeSetFmtSpinner.hpp
        actions/AlarmRingingData.hpp
        actions/AlarmTriggeredAction.hpp

M module-apps/apps-common/DatabaseModel.hpp => module-apps/apps-common/DatabaseModel.hpp +3 -3
@@ 9,7 9,7 @@
#include <utility>
#include <algorithm>

#include "Application.hpp"
#include <apps-common/ApplicationCommon.hpp>

namespace app
{


@@ 17,13 17,13 @@ namespace app
    template <class T> class DatabaseModel
    {
      protected:
        Application *application  = nullptr;
        ApplicationCommon *application = nullptr;
        unsigned int recordsCount = std::numeric_limits<unsigned int>::max();
        int modelIndex            = 0;
        std::vector<std::shared_ptr<T>> records;

      public:
        explicit DatabaseModel(Application *app) : application{app}
        explicit DatabaseModel(ApplicationCommon *app) : application{app}
        {}

        virtual ~DatabaseModel()

M module-apps/apps-common/GuiTimer.cpp => module-apps/apps-common/GuiTimer.cpp +15 -9
@@ 4,7 4,7 @@
#include "GuiTimer.hpp"
#include "Item.hpp" // for Item

#include <apps-common/Application.hpp> // for Application
#include <apps-common/ApplicationCommon.hpp> // for Application

#include "module-sys/Timers/SystemTimer.hpp" // for Timer, Timer::Type, Timer::Ty...
#include "module-sys/Timers/TimerFactory.hpp"


@@ 27,7 27,7 @@ namespace app
    class GuiTimer::Impl
    {
      public:
        Impl(Application *parent,
        Impl(ApplicationCommon *parent,
             gui::Item *item,
             const std::string &name,
             std::chrono::milliseconds timeout,


@@ 35,15 35,21 @@ namespace app
        std::unique_ptr<sys::timer::SystemTimer> timer;
    };

    GuiTimer::Impl::Impl(
        Application *parent, gui::Item *item, const std::string &name, std::chrono::milliseconds timeout, Type type)
    GuiTimer::Impl::Impl(ApplicationCommon *parent,
                         gui::Item *item,
                         const std::string &name,
                         std::chrono::milliseconds timeout,
                         Type type)
        : timer{std::make_unique<sys::timer::SystemTimer>(parent, name, timeout, guiTypeToSysType(type))}
    {
        timer->connect([item](sys::Timer &self) { item->onTimer(self); });
    }

    GuiTimer::GuiTimer(
        Application *parent, gui::Item *item, const std::string &name, std::chrono::milliseconds timeout, Type type)
    GuiTimer::GuiTimer(ApplicationCommon *parent,
                       gui::Item *item,
                       const std::string &name,
                       std::chrono::milliseconds timeout,
                       Type type)
        : pimpl(std::make_unique<GuiTimer::Impl>(parent, item, name, timeout, type)), item{item}
    {}



@@ 72,7 78,7 @@ namespace app
        return pimpl->timer->isActive();
    }

    sys::TimerHandle GuiTimerFactory::createSingleShotTimer(Application *parent,
    sys::TimerHandle GuiTimerFactory::createSingleShotTimer(ApplicationCommon *parent,
                                                            gui::Item *item,
                                                            const std::string &name,
                                                            std::chrono::milliseconds interval)


@@ 80,7 86,7 @@ namespace app
        return createGuiTimer(parent, item, name, interval, GuiTimer::Type::SingleShot);
    }

    sys::TimerHandle GuiTimerFactory::createPeriodicTimer(Application *parent,
    sys::TimerHandle GuiTimerFactory::createPeriodicTimer(ApplicationCommon *parent,
                                                          gui::Item *item,
                                                          const std::string &name,
                                                          std::chrono::milliseconds interval)


@@ 88,7 94,7 @@ namespace app
        return createGuiTimer(parent, item, name, interval, GuiTimer::Type::Periodic);
    }

    sys::TimerHandle GuiTimerFactory::createGuiTimer(Application *parent,
    sys::TimerHandle GuiTimerFactory::createGuiTimer(ApplicationCommon *parent,
                                                     gui::Item *item,
                                                     const std::string &name,
                                                     std::chrono::milliseconds interval,

M module-apps/apps-common/GuiTimer.hpp => module-apps/apps-common/GuiTimer.hpp +5 -5
@@ 16,7 16,7 @@ namespace gui

namespace app
{
    class Application;
    class ApplicationCommon;

    /// Proxies system timer capabilities to the gui layer
    class GuiTimer : public sys::Timer


@@ 28,7 28,7 @@ namespace app
            Periodic
        };

        GuiTimer(Application *parent,
        GuiTimer(ApplicationCommon *parent,
                 gui::Item *item,
                 const std::string &name,
                 std::chrono::milliseconds timeout,


@@ 48,17 48,17 @@ namespace app
    class GuiTimerFactory
    {
      public:
        static sys::TimerHandle createSingleShotTimer(Application *parent,
        static sys::TimerHandle createSingleShotTimer(ApplicationCommon *parent,
                                                      gui::Item *item,
                                                      const std::string &name,
                                                      std::chrono::milliseconds interval);
        static sys::TimerHandle createPeriodicTimer(Application *parent,
        static sys::TimerHandle createPeriodicTimer(ApplicationCommon *parent,
                                                    gui::Item *item,
                                                    const std::string &name,
                                                    std::chrono::milliseconds interval);

      private:
        static sys::TimerHandle createGuiTimer(Application *parent,
        static sys::TimerHandle createGuiTimer(ApplicationCommon *parent,
                                               gui::Item *item,
                                               const std::string &name,
                                               std::chrono::milliseconds interval,

M module-apps/apps-common/WindowsFactory.cpp => module-apps/apps-common/WindowsFactory.cpp +1 -1
@@ 17,7 17,7 @@ namespace app
        return builders.find(name) != std::end(builders);
    }

    auto WindowsFactory::build(Application *app, const std::string &name) -> handle
    auto WindowsFactory::build(ApplicationCommon *app, const std::string &name) -> handle
    {
        return builders[name](app, name);
    }

M module-apps/apps-common/WindowsFactory.hpp => module-apps/apps-common/WindowsFactory.hpp +3 -3
@@ 10,7 10,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
};

namespace gui


@@ 24,7 24,7 @@ namespace app
    {
      public:
        using handle  = std::unique_ptr<gui::AppWindow>;
        using builder = std::function<handle(Application *, std::string)>;
        using builder = std::function<handle(ApplicationCommon *, std::string)>;

      private:
        std::map<std::string, builder> builders;


@@ 38,6 38,6 @@ namespace app

        void attach(const std::string &name, builder builder);
        [[nodiscard]] auto isRegistered(const std::string &name) const -> bool;
        auto build(Application *app, const std::string &name) -> handle;
        auto build(ApplicationCommon *app, const std::string &name) -> handle;
    };
} // namespace app

M module-apps/apps-common/WindowsStack.hpp => module-apps/apps-common/WindowsStack.hpp +3 -3
@@ 12,14 12,14 @@
namespace app
{

    class Application;
    class ApplicationCommon;

    class WindowsStack
    {
        Application *parent;
        ApplicationCommon *parent;

      public:
        WindowsStack(Application *parent) : parent(parent)
        WindowsStack(ApplicationCommon *parent) : parent(parent)
        {}

        std::vector<std::string> stack;

M module-apps/apps-common/locks/handlers/LockPolicyHandler.cpp => module-apps/apps-common/locks/handlers/LockPolicyHandler.cpp +2 -2
@@ 3,7 3,7 @@

#include "LockPolicyHandler.hpp"
#include <log.hpp>
#include <Application.hpp>
#include <ApplicationCommon.hpp>
#include <gsl/assert>

using namespace locks;


@@ 34,7 34,7 @@ bool LockPolicyHandlerInterface::preventsAutoLocking()
    return true;
}

LockPolicyHandler::LockPolicyHandler(app::Application *owner,
LockPolicyHandler::LockPolicyHandler(app::ApplicationCommon *owner,
                                     std::function<bool()> preventsAutoLockByStateCallback) noexcept
    : owner{owner}, preventsAutoLockByStateCallback(std::move(preventsAutoLockByStateCallback))
{

M module-apps/apps-common/locks/handlers/LockPolicyHandler.hpp => module-apps/apps-common/locks/handlers/LockPolicyHandler.hpp +3 -3
@@ 6,7 6,7 @@
namespace app
{
    class ApplicationLauncher;
    class Application;
    class ApplicationCommon;
} // namespace app

namespace locks


@@ 45,14 45,14 @@ namespace locks

    class LockPolicyHandler : public LockPolicyHandlerInterface
    {
        app::Application *owner = nullptr;
        app::ApplicationCommon *owner = nullptr;
        std::function<bool()> preventsAutoLockByStateCallback;

        [[nodiscard]] bool preventsAutoLockByWindow() final;
        [[nodiscard]] bool preventsAutoLockByState() const final;

      public:
        explicit LockPolicyHandler(app::Application *owner,
        explicit LockPolicyHandler(app::ApplicationCommon *owner,
                                   std::function<bool()> preventsAutoLockByStateCallback = nullptr) noexcept;

        void setPreventsAutoLockByStateCallback(std::function<bool()> _preventsAutoLockByStateCallback) noexcept;

M module-apps/apps-common/locks/windows/LockInputWindow.hpp => module-apps/apps-common/locks/windows/LockInputWindow.hpp +1 -1
@@ 51,7 51,7 @@ namespace gui
        gui::HBox *pinLabelsBox           = nullptr;

      protected:
        LockInputWindow(app::Application *app, std::string name) : AppWindow(app, std::move(name))
        LockInputWindow(app::ApplicationCommon *app, std::string name) : AppWindow(app, std::move(name))
        {}

        void build();

M module-apps/apps-common/notifications/NotificationsModel.hpp => module-apps/apps-common/notifications/NotificationsModel.hpp +1 -1
@@ 7,7 7,7 @@
#include "NotificationData.hpp"
#include "ListItemProvider.hpp"

#include "Application.hpp"
#include <apps-common/ApplicationCommon.hpp>
#include "InternalModel.hpp"
#include <service-appmgr/data/NotificationsChangedActionsParams.hpp>


M module-apps/apps-common/options/OptionsModel.cpp => module-apps/apps-common/options/OptionsModel.cpp +2 -1
@@ 1,10 1,11 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <ApplicationCommon.hpp>
#include "ListView.hpp"
#include "OptionsModel.hpp"

OptionsModel::OptionsModel(app::Application *app) : application(app)
OptionsModel::OptionsModel(app::ApplicationCommon *app) : application(app)
{}

auto OptionsModel::requestRecordsCount() -> unsigned int

M module-apps/apps-common/options/OptionsModel.hpp => module-apps/apps-common/options/OptionsModel.hpp +2 -2
@@ 9,10 9,10 @@

class OptionsModel : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
{
    app::Application *application = nullptr;
    app::ApplicationCommon *application = nullptr;

  public:
    explicit OptionsModel(app::Application *app);
    explicit OptionsModel(app::ApplicationCommon *app);

    void clearData();
    void createData(std::list<gui::Option> &optionList);

M module-apps/apps-common/options/type/OptionCall.cpp => module-apps/apps-common/options/type/OptionCall.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui::option
{
    Call::Call(app::Application *app, const ContactRecord &contact)
    Call::Call(app::ApplicationCommon *app, const ContactRecord &contact)
    {
        assert(app != nullptr);


M module-apps/apps-common/options/type/OptionCall.hpp => module-apps/apps-common/options/type/OptionCall.hpp +2 -2
@@ 4,7 4,7 @@
#pragma once

#include "OptionSimple.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"

#include <module-db/Interface/ContactRecord.hpp>



@@ 13,6 13,6 @@ namespace gui::option
    class Call : public Simple
    {
      public:
        Call(app::Application *app, const ContactRecord &contact);
        Call(app::ApplicationCommon *app, const ContactRecord &contact);
    };
}; // namespace gui::option

M module-apps/apps-common/options/type/OptionContact.cpp => module-apps/apps-common/options/type/OptionContact.cpp +2 -2
@@ 11,7 11,7 @@

namespace gui::option
{
    Contact::Contact(app::Application *app,
    Contact::Contact(app::ApplicationCommon *app,
                     ContactOperation contactOperation,
                     const ContactRecord &contactRec,
                     gui::option::Arrow arrow)


@@ 38,7 38,7 @@ namespace gui::option
        this->arrow       = arrow;
    }

    bool Contact::onContactOptionClick(app::Application *app,
    bool Contact::onContactOptionClick(app::ApplicationCommon *app,
                                       ContactOperation contactOperation,
                                       const ContactRecord &contactRecord)
    {

M module-apps/apps-common/options/type/OptionContact.hpp => module-apps/apps-common/options/type/OptionContact.hpp +3 -3
@@ 5,7 5,7 @@

#include "OptionSimple.hpp"
#include "OptionStyle.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"

#include <module-db/Interface/ContactRecord.hpp>



@@ 14,12 14,12 @@ namespace gui::option
    class Contact : public Simple
    {
      private:
        bool onContactOptionClick(app::Application *app,
        bool onContactOptionClick(app::ApplicationCommon *app,
                                  ContactOperation contactOperation,
                                  const ContactRecord &contactRecord);

      public:
        Contact(app::Application *app,
        Contact(app::ApplicationCommon *app,
                ContactOperation contactOperation,
                const ContactRecord &contactRec,
                gui::option::Arrow arrow = option::Arrow::Disabled);

M module-apps/apps-common/options/type/OptionSetting.hpp => module-apps/apps-common/options/type/OptionSetting.hpp +1 -1
@@ 4,7 4,7 @@
#pragma once

#include "OptionWindow.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"

namespace gui::option
{

M module-apps/apps-common/options/type/OptionSimple.hpp => module-apps/apps-common/options/type/OptionSimple.hpp +0 -1
@@ 5,7 5,6 @@

#include "OptionBase.hpp"
#include "OptionStyle.hpp"
#include "Application.hpp"

namespace gui::option
{

M module-apps/apps-common/options/type/OptionWithActiveIcons.cpp => module-apps/apps-common/options/type/OptionWithActiveIcons.cpp +1 -1
@@ 26,7 26,7 @@ namespace
    }
} // namespace

OptionWithActiveIcons::OptionWithActiveIcons(app::Application *app,
OptionWithActiveIcons::OptionWithActiveIcons(app::ApplicationCommon *app,
                                             std::shared_ptr<ContactRecord> contact,
                                             std::vector<BasicIcon> icons)
    : app{app}, contact{std::move(contact)}, icons{std::move(icons)}

M module-apps/apps-common/options/type/OptionWithActiveIcons.hpp => module-apps/apps-common/options/type/OptionWithActiveIcons.hpp +3 -3
@@ 8,7 8,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace gui::option


@@ 22,12 22,12 @@ namespace gui::option
            Call,
            AddContact
        };
        OptionWithActiveIcons(app::Application *app,
        OptionWithActiveIcons(app::ApplicationCommon *app,
                              std::shared_ptr<ContactRecord> contact,
                              std::vector<BasicIcon> icons);

      private:
        app::Application *app;
        app::ApplicationCommon *app;
        std::shared_ptr<ContactRecord> contact;
        std::vector<BasicIcon> icons;
        [[nodiscard]] auto build() const -> ListItem * override;

M module-apps/apps-common/popups/HomeModesWindow.cpp => module-apps/apps-common/popups/HomeModesWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    HomeModesWindow::HomeModesWindow(app::Application *app, const std::string &name) : WindowWithTimer(app, name)
    HomeModesWindow::HomeModesWindow(app::ApplicationCommon *app, const std::string &name) : WindowWithTimer(app, name)
    {
        buildInterface();
    }

M module-apps/apps-common/popups/HomeModesWindow.hpp => module-apps/apps-common/popups/HomeModesWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
        ModesBox *modesBox = nullptr;

      public:
        HomeModesWindow(app::Application *app, const std::string &name);
        HomeModesWindow(app::ApplicationCommon *app, const std::string &name);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        void rebuild() override;
        void buildInterface() override;

M module-apps/apps-common/popups/PowerOffWindow.cpp => module-apps/apps-common/popups/PowerOffWindow.cpp +3 -1
@@ 2,13 2,15 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "PowerOffWindow.hpp"
#include "Popups.hpp"

#include <log.hpp>
#include <messages/DialogMetadataMessage.hpp>
#include <i18n/i18n.hpp>

namespace gui
{
    PowerOffWindow::PowerOffWindow(app::Application *app, std::unique_ptr<PowerOffPresenter> &&presenter)
    PowerOffWindow::PowerOffWindow(app::ApplicationCommon *app, std::unique_ptr<PowerOffPresenter> &&presenter)
        : DialogYesNo(app, popup::window::power_off_window), presenter(std::move(presenter))
    {}


M module-apps/apps-common/popups/PowerOffWindow.hpp => module-apps/apps-common/popups/PowerOffWindow.hpp +1 -1
@@ 13,7 13,7 @@ namespace gui
        std::unique_ptr<PowerOffPresenter> presenter;

      public:
        PowerOffWindow(app::Application *app, std::unique_ptr<PowerOffPresenter> &&presenter);
        PowerOffWindow(app::ApplicationCommon *app, std::unique_ptr<PowerOffPresenter> &&presenter);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };


M module-apps/apps-common/popups/TetheringConfirmationPopup.cpp => module-apps/apps-common/popups/TetheringConfirmationPopup.cpp +2 -2
@@ 3,14 3,14 @@

#include "TetheringConfirmationPopup.hpp"
#include "DialogMetadataMessage.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"

#include <module-sys/SystemManager/messages/TetheringQuestionRequest.hpp>
#include <service-appmgr/Controller.hpp>

namespace gui
{
    TetheringConfirmationPopup::TetheringConfirmationPopup(app::Application *app, const std::string &name)
    TetheringConfirmationPopup::TetheringConfirmationPopup(app::ApplicationCommon *app, const std::string &name)
        : DialogYesNo{app, name}
    {}


M module-apps/apps-common/popups/TetheringConfirmationPopup.hpp => module-apps/apps-common/popups/TetheringConfirmationPopup.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class TetheringConfirmationPopup : public DialogYesNo
    {
      public:
        TetheringConfirmationPopup(app::Application *app, const std::string &name);
        TetheringConfirmationPopup(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/apps-common/popups/TetheringNotificationPopup.cpp => module-apps/apps-common/popups/TetheringNotificationPopup.cpp +2 -2
@@ 3,11 3,11 @@

#include "TetheringNotificationPopup.hpp"

#include <Application.hpp>
#include <ApplicationCommon.hpp>

namespace gui
{
    TetheringNotificationPopup::TetheringNotificationPopup(app::Application *app, const std::string &name)
    TetheringNotificationPopup::TetheringNotificationPopup(app::ApplicationCommon *app, const std::string &name)
        : gui::DialogConfirm(app, name)
    {
        statusBar->configure(configureStatusBar(application->getStatusBarConfiguration()));

M module-apps/apps-common/popups/TetheringNotificationPopup.hpp => module-apps/apps-common/popups/TetheringNotificationPopup.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class TetheringNotificationPopup : public gui::DialogConfirm
    {
      public:
        TetheringNotificationPopup(app::Application *app, const std::string &name);
        TetheringNotificationPopup(app::ApplicationCommon *app, const std::string &name);

        gui::status_bar::Configuration configureStatusBar(gui::status_bar::Configuration appConfiguration) override;
    };

M module-apps/apps-common/popups/TetheringOffPopup.cpp => module-apps/apps-common/popups/TetheringOffPopup.cpp +2 -2
@@ 5,13 5,13 @@

#include <log/log.hpp>
#include <messages/DialogMetadataMessage.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <SystemManager/messages/TetheringStateRequest.hpp>
#include <service-appmgr/Controller.hpp>

namespace gui
{
    TetheringOffPopup::TetheringOffPopup(app::Application *app, const std::string &name) : DialogYesNo{app, name}
    TetheringOffPopup::TetheringOffPopup(app::ApplicationCommon *app, const std::string &name) : DialogYesNo{app, name}
    {
        statusBar->configure(configureStatusBar(application->getStatusBarConfiguration()));
    }

M module-apps/apps-common/popups/TetheringOffPopup.hpp => module-apps/apps-common/popups/TetheringOffPopup.hpp +1 -1
@@ 10,7 10,7 @@ namespace gui
    class TetheringOffPopup : public DialogYesNo
    {
      public:
        TetheringOffPopup(app::Application *app, const std::string &name);
        TetheringOffPopup(app::ApplicationCommon *app, const std::string &name);
        status_bar::Configuration configureStatusBar(status_bar::Configuration appConfiguration) override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/apps-common/popups/TetheringPhoneModePopup.cpp => module-apps/apps-common/popups/TetheringPhoneModePopup.cpp +2 -2
@@ 3,13 3,13 @@

#include "TetheringPhoneModePopup.hpp"
#include "DialogMetadataMessage.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "data/PopupRequestParams.hpp"
#include <service-appmgr/Controller.hpp>

namespace gui
{
    TetheringPhoneModePopup::TetheringPhoneModePopup(app::Application *app, const std::string &name)
    TetheringPhoneModePopup::TetheringPhoneModePopup(app::ApplicationCommon *app, const std::string &name)
        : TetheringNotificationPopup{app, name}
    {}


M module-apps/apps-common/popups/TetheringPhoneModePopup.hpp => module-apps/apps-common/popups/TetheringPhoneModePopup.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class TetheringPhoneModePopup : public TetheringNotificationPopup
    {
      public:
        TetheringPhoneModePopup(app::Application *app, const std::string &name);
        TetheringPhoneModePopup(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/apps-common/popups/VolumeWindow.cpp => module-apps/apps-common/popups/VolumeWindow.cpp +2 -2
@@ 3,13 3,13 @@

#include <module-gui/gui/input/InputEvent.hpp>
#include <i18n/i18n.hpp>
#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "VolumeWindow.hpp"
#include "popups/data/PopupData.hpp"

namespace gui
{
    VolumeWindow::VolumeWindow(app::Application *app, const std::string &name) : WindowWithTimer(app, name)
    VolumeWindow::VolumeWindow(app::ApplicationCommon *app, const std::string &name) : WindowWithTimer(app, name)
    {
        buildInterface();
    }

M module-apps/apps-common/popups/VolumeWindow.hpp => module-apps/apps-common/popups/VolumeWindow.hpp +2 -2
@@ 29,7 29,7 @@ namespace style::window::volume

namespace app
{
    class Application;
    class ApplicationCommon;
} // namespace app

namespace gui


@@ 50,7 50,7 @@ namespace gui
        VBarGraph *volumeBar = nullptr;

      public:
        VolumeWindow(app::Application *app, const std::string &name);
        VolumeWindow(app::ApplicationCommon *app, const std::string &name);

        void addVolumeText();
        void addVolumeBar();

M module-apps/apps-common/popups/WindowWithTimer.cpp => module-apps/apps-common/popups/WindowWithTimer.cpp +2 -2
@@ 2,7 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "WindowWithTimer.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "GuiTimer.hpp"

namespace gui


@@ 12,7 12,7 @@ namespace gui
        constexpr auto timerName = "PopupTimer";
    } // namespace popup

    WindowWithTimer::WindowWithTimer(app::Application *app,
    WindowWithTimer::WindowWithTimer(app::ApplicationCommon *app,
                                     const std::string &name,
                                     const std::chrono::milliseconds timeout)
        : AppWindow{app, name}, timeout{timeout}

M module-apps/apps-common/popups/WindowWithTimer.hpp => module-apps/apps-common/popups/WindowWithTimer.hpp +1 -1
@@ 16,7 16,7 @@ namespace gui
        const std::chrono::milliseconds timeout;

      public:
        explicit WindowWithTimer(app::Application *app,
        explicit WindowWithTimer(app::ApplicationCommon *app,
                                 const std::string &name,
                                 const std::chrono::milliseconds timeout = defautTimeout);
        void destroyInterface() override;

M module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.cpp +1 -1
@@ 8,7 8,7 @@

using namespace gui;

PhoneLockChangeInfoWindow::PhoneLockChangeInfoWindow(app::Application *app, const std::string &name)
PhoneLockChangeInfoWindow::PhoneLockChangeInfoWindow(app::ApplicationCommon *app, const std::string &name)
    : WindowWithTimer(app, name)
{
    buildInterface();

M module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.hpp => module-apps/apps-common/popups/lock-popups/PhoneLockChangeInfoWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
        Icon *infoIcon = nullptr;

      public:
        PhoneLockChangeInfoWindow(app::Application *app, const std::string &name);
        PhoneLockChangeInfoWindow(app::ApplicationCommon *app, const std::string &name);

        void buildInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.cpp +1 -1
@@ 11,7 11,7 @@

namespace gui
{
    PhoneLockInputWindow::PhoneLockInputWindow(app::Application *app, const std::string &window_name)
    PhoneLockInputWindow::PhoneLockInputWindow(app::ApplicationCommon *app, const std::string &window_name)
        : LockInputWindow(app, window_name)
    {
        buildInterface();

M module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.hpp => module-apps/apps-common/popups/lock-popups/PhoneLockInputWindow.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
        locks::PhoneLockInputTypeAction phoneLockInputTypeAction = locks::PhoneLockInputTypeAction::Unlock;

      public:
        PhoneLockInputWindow(app::Application *app, const std::string &window_name);
        PhoneLockInputWindow(app::ApplicationCommon *app, const std::string &window_name);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;


M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.cpp +1 -1
@@ 10,7 10,7 @@

using namespace gui;

PhoneLockedInfoWindow::PhoneLockedInfoWindow(app::Application *app, const std::string &name)
PhoneLockedInfoWindow::PhoneLockedInfoWindow(app::ApplicationCommon *app, const std::string &name)
    : WindowWithTimer(app, name, std::chrono::seconds(2))
{
    buildInterface();

M module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.hpp => module-apps/apps-common/popups/lock-popups/PhoneLockedInfoWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
    class PhoneLockedInfoWindow : public WindowWithTimer
    {
      public:
        PhoneLockedInfoWindow(app::Application *app, const std::string &name);
        PhoneLockedInfoWindow(app::ApplicationCommon *app, const std::string &name);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;
        void buildInterface() override;

M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp => module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    PhoneLockedWindow::PhoneLockedWindow(app::Application *app, const std::string &name)
    PhoneLockedWindow::PhoneLockedWindow(app::ApplicationCommon *app, const std::string &name)
        : AppWindow(app, name),
          notificationsModel(std::make_shared<NotificationsModel>(NotificationsListPlacement::LockedScreen))
    {

M module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.hpp => module-apps/apps-common/popups/lock-popups/PhoneLockedWindow.hpp +1 -1
@@ 27,7 27,7 @@ namespace gui
        bool processLongReleaseEvent(const InputEvent &inputEvent);

      public:
        PhoneLockedWindow(app::Application *app, const std::string &name);
        PhoneLockedWindow(app::ApplicationCommon *app, const std::string &name);

        bool onInput(const InputEvent &inputEvent) override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/apps-common/popups/lock-popups/SimInfoWindow.cpp => module-apps/apps-common/popups/lock-popups/SimInfoWindow.cpp +1 -1
@@ 8,7 8,7 @@

using namespace gui;

SimInfoWindow::SimInfoWindow(app::Application *app, const std::string &name) : WindowWithTimer(app, name)
SimInfoWindow::SimInfoWindow(app::ApplicationCommon *app, const std::string &name) : WindowWithTimer(app, name)
{
    buildInterface();
}

M module-apps/apps-common/popups/lock-popups/SimInfoWindow.hpp => module-apps/apps-common/popups/lock-popups/SimInfoWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
        Icon *infoIcon = nullptr;

      public:
        SimInfoWindow(app::Application *app, const std::string &name);
        SimInfoWindow(app::ApplicationCommon *app, const std::string &name);

        void buildInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp => module-apps/apps-common/popups/lock-popups/SimLockInputWindow.cpp +1 -1
@@ 12,7 12,7 @@

namespace gui
{
    SimLockInputWindow::SimLockInputWindow(app::Application *app, const std::string &window_name)
    SimLockInputWindow::SimLockInputWindow(app::ApplicationCommon *app, const std::string &window_name)
        : LockInputWindow(app, window_name)
    {
        buildInterface();

M module-apps/apps-common/popups/lock-popups/SimLockInputWindow.hpp => module-apps/apps-common/popups/lock-popups/SimLockInputWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        void setVisibleState() override;

      public:
        SimLockInputWindow(app::Application *app, const std::string &window_name);
        SimLockInputWindow(app::ApplicationCommon *app, const std::string &window_name);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onInput(const InputEvent &inputEvent) override;


M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp => module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.cpp +1 -1
@@ 9,7 9,7 @@

using namespace gui;

SimNotReadyWindow::SimNotReadyWindow(app::Application *app, const std::string &name) : AppWindow(app, name)
SimNotReadyWindow::SimNotReadyWindow(app::ApplicationCommon *app, const std::string &name) : AppWindow(app, name)
{
    buildInterface();
}

M module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.hpp => module-apps/apps-common/popups/lock-popups/SimNotReadyWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
        Icon *infoIcon = nullptr;

      public:
        SimNotReadyWindow(app::Application *app, const std::string &name);
        SimNotReadyWindow(app::ApplicationCommon *app, const std::string &name);

        void buildInterface() override;
        status_bar::Configuration configureStatusBar(status_bar::Configuration appConfiguration) override;

M module-apps/apps-common/popups/presenter/PowerOffPresenter.cpp => module-apps/apps-common/popups/presenter/PowerOffPresenter.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    PowerOffPresenter::PowerOffPresenter(app::Application *app) : application(app)
    PowerOffPresenter::PowerOffPresenter(app::ApplicationCommon *app) : application(app)
    {}

    void PowerOffPresenter::powerOff()

M module-apps/apps-common/popups/presenter/PowerOffPresenter.hpp => module-apps/apps-common/popups/presenter/PowerOffPresenter.hpp +6 -3
@@ 3,18 3,21 @@

#pragma once

#include <apps-common/Application.hpp>
namespace app
{
    class ApplicationCommon;
}

namespace gui
{
    class PowerOffPresenter
    {
      public:
        PowerOffPresenter(app::Application *app);
        PowerOffPresenter(app::ApplicationCommon *app);
        void powerOff();

      private:
        app::Application *application;
        app::ApplicationCommon *application;
    };

} // namespace gui

M module-apps/apps-common/widgets/ActiveIconFactory.cpp => module-apps/apps-common/widgets/ActiveIconFactory.cpp +1 -1
@@ 12,7 12,7 @@

using namespace gui;

ActiveIconFactory::ActiveIconFactory(app::Application *app) : app{app}
ActiveIconFactory::ActiveIconFactory(app::ApplicationCommon *app) : app{app}
{
    assert(app);
}

M module-apps/apps-common/widgets/ActiveIconFactory.hpp => module-apps/apps-common/widgets/ActiveIconFactory.hpp +3 -3
@@ 4,17 4,17 @@
#pragma once

#include "ImageBox.hpp"
#include <Application.hpp>
#include <ApplicationCommon.hpp>
#include <module-db/Interface/ContactRecord.hpp>

namespace gui
{
    class ActiveIconFactory
    {
        app::Application *app;
        app::ApplicationCommon *app;

      public:
        explicit ActiveIconFactory(app::Application *app);
        explicit ActiveIconFactory(app::ApplicationCommon *app);

        [[nodiscard]] auto makeCustomIcon(const UTF8 &image,
                                          std::function<bool(Item &)> onActivated,

M module-apps/apps-common/widgets/ProgressTimerImpl.cpp => module-apps/apps-common/widgets/ProgressTimerImpl.cpp +2 -2
@@ 4,14 4,14 @@
#include "ProgressTimerImpl.hpp"
#include <Text.hpp>
#include <ProgressBar.hpp>
#include <Application.hpp>
#include <ApplicationCommon.hpp>
#include <time/time_conversion.hpp>
#include <gsl/assert>

namespace app
{

    ProgressTimerImpl::ProgressTimerImpl(app::Application *app,
    ProgressTimerImpl::ProgressTimerImpl(app::ApplicationCommon *app,
                                         gui::Item *parent,
                                         std::string timerName,
                                         std::chrono::milliseconds baseTick)

M module-apps/apps-common/widgets/ProgressTimerImpl.hpp => module-apps/apps-common/widgets/ProgressTimerImpl.hpp +2 -2
@@ 24,7 24,7 @@ namespace app

    class ProgressTimerImpl : public ProgressTimer
    {
        app::Application *app   = nullptr;
        app::ApplicationCommon *app = nullptr;
        gui::Item *parent       = nullptr;
        gui::Text *text         = nullptr;
        gui::Progress *progress = nullptr;


@@ 52,7 52,7 @@ namespace app
        [[nodiscard]] auto intervalReached() const noexcept -> bool;

      public:
        ProgressTimerImpl(app::Application *app,
        ProgressTimerImpl(app::ApplicationCommon *app,
                          gui::Item *parent,
                          std::string timerName,
                          std::chrono::milliseconds baseTick);

M module-apps/apps-common/widgets/TextWithIconsWidget.cpp => module-apps/apps-common/widgets/TextWithIconsWidget.cpp +1 -1
@@ 5,7 5,7 @@
#include <Style.hpp>
#include <TextFixedSize.hpp>
#include <Image.hpp>
#include <Application.hpp>
#include <ApplicationCommon.hpp>

using namespace gui;


M module-apps/apps-common/widgets/TextWithIconsWidget.hpp => module-apps/apps-common/widgets/TextWithIconsWidget.hpp +2 -2
@@ 7,7 7,7 @@
#include <ImageBox.hpp>
namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace gui


@@ 15,7 15,7 @@ namespace gui

    class TextWithIconsWidget : public HBox
    {
        app::Application *app = nullptr;
        app::ApplicationCommon *app = nullptr;

      public:
        explicit TextWithIconsWidget(gui::Item *parent);

M module-apps/apps-common/windows/AppWindow.cpp => module-apps/apps-common/windows/AppWindow.cpp +2 -2
@@ 2,7 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "AppWindow.hpp"
#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "InputEvent.hpp"
#include "StatusBar.hpp"
#include "status-bar/Time.hpp"


@@ 16,7 16,7 @@ using namespace style::header;
namespace gui
{

    AppWindow::AppWindow(app::Application *app, std::string name) : Window(name), application{app}
    AppWindow::AppWindow(app::ApplicationCommon *app, std::string name) : Window(name), application{app}
    {
        setSize(style::window_width, style::window_height);
    }

M module-apps/apps-common/windows/AppWindow.hpp => module-apps/apps-common/windows/AppWindow.hpp +4 -4
@@ 12,7 12,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
};

namespace gui


@@ 47,7 47,7 @@ namespace gui
        /**
         * Pointer to the application object that owns the window.
         */
        app::Application *application = nullptr;
        app::ApplicationCommon *application = nullptr;

        /**
         * A function that applies configuration changes to the current status bar configuration.


@@ 62,9 62,9 @@ namespace gui

      public:
        AppWindow() = delete;
        AppWindow(app::Application *app, std::string name);
        AppWindow(app::ApplicationCommon *app, std::string name);

        app::Application *getApplication()
        app::ApplicationCommon *getApplication()
        {
            return application;
        };

M module-apps/apps-common/windows/BrightnessWindow.cpp => module-apps/apps-common/windows/BrightnessWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    BrightnessWindow::BrightnessWindow(app::Application *app, const std::string &name) : AppWindow(app, name)
    BrightnessWindow::BrightnessWindow(app::ApplicationCommon *app, const std::string &name) : AppWindow(app, name)
    {
        buildInterface();
    }

M module-apps/apps-common/windows/BrightnessWindow.hpp => module-apps/apps-common/windows/BrightnessWindow.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include "AppWindow.hpp"
#include "apps-common/widgets/BarGraph.hpp"
#include "apps-common/widgets/BightnessBox.hpp"


@@ 20,7 20,7 @@ namespace gui
        HBarGraph *brightnessBar      = nullptr;

      public:
        BrightnessWindow(app::Application *app, const std::string &name);
        BrightnessWindow(app::ApplicationCommon *app, const std::string &name);

        ~BrightnessWindow() override;


M module-apps/apps-common/windows/Dialog.cpp => module-apps/apps-common/windows/Dialog.cpp +6 -6
@@ 5,11 5,11 @@
#include "DialogMetadataMessage.hpp"
#include <i18n/i18n.hpp>
#include <Image.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>

using namespace gui;

Dialog::Dialog(app::Application *app, const std::string &name) : gui::AppWindow(app, name)
Dialog::Dialog(app::ApplicationCommon *app, const std::string &name) : gui::AppWindow(app, name)
{
    AppWindow::buildInterface();
    bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back));


@@ 37,7 37,7 @@ void Dialog::onBeforeShow(ShowMode mode, SwitchData *data)
    }
}

DialogConfirm::DialogConfirm(app::Application *app, const std::string &name) : Dialog(app, name)
DialogConfirm::DialogConfirm(app::ApplicationCommon *app, const std::string &name) : Dialog(app, name)
{
    bottomBar->setActive(BottomBar::Side::RIGHT, false);
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));


@@ 60,7 60,7 @@ void DialogConfirm::onBeforeShow(ShowMode mode, SwitchData *data)
    }
}

DialogYesNo::DialogYesNo(app::Application *app, const std::string &name) : Dialog(app, name)
DialogYesNo::DialogYesNo(app::ApplicationCommon *app, const std::string &name) : Dialog(app, name)
{
    icon->text->setMinimumSize(style::window::default_body_width, dialog::style::option::iconTextH);
    icon->text->setMaximumSize(style::window::default_body_width, dialog::style::option::iconTextH);


@@ 119,7 119,7 @@ void DialogYesNo::onBeforeShow(ShowMode mode, SwitchData *data)
    }
}

DialogYesNoIconTxt::DialogYesNoIconTxt(app::Application *app, const std::string &name) : DialogYesNo(app, name)
DialogYesNoIconTxt::DialogYesNoIconTxt(app::ApplicationCommon *app, const std::string &name) : DialogYesNo(app, name)
{
    iconText = new Label(this,
                         style::window::default_left_margin,


@@ 143,7 143,7 @@ void DialogYesNoIconTxt::onBeforeShow(ShowMode mode, SwitchData *data)
    }
}

DialogRetry::DialogRetry(app::Application *app, const std::string &name) : Dialog(app, name)
DialogRetry::DialogRetry(app::ApplicationCommon *app, const std::string &name) : Dialog(app, name)
{
    bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::retry));
    setFocusItem(bottomBar);

M module-apps/apps-common/windows/Dialog.hpp => module-apps/apps-common/windows/Dialog.hpp +5 -5
@@ 52,7 52,7 @@ namespace gui
        Icon *icon = nullptr;

      public:
        Dialog(app::Application *app, const std::string &name);
        Dialog(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };


@@ 64,7 64,7 @@ namespace gui
    class DialogConfirm : public Dialog
    {
      public:
        DialogConfirm(app::Application *app, const std::string &name);
        DialogConfirm(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };


@@ 80,7 80,7 @@ namespace gui
        HBox *hBox = nullptr;

      public:
        DialogYesNo(app::Application *app, const std::string &name);
        DialogYesNo(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;



@@ 97,7 97,7 @@ namespace gui
        Label *iconText = nullptr;

      public:
        DialogYesNoIconTxt(app::Application *app, const std::string &name);
        DialogYesNoIconTxt(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };


@@ 108,7 108,7 @@ namespace gui
    class DialogRetry : public Dialog
    {
      public:
        DialogRetry(app::Application *app, const std::string &name);
        DialogRetry(app::ApplicationCommon *app, const std::string &name);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };

M module-apps/apps-common/windows/OptionWindow.cpp => module-apps/apps-common/windows/OptionWindow.cpp +2 -2
@@ 12,13 12,13 @@

namespace gui
{
    OptionWindow::OptionWindow(app::Application *app, const std::string &name)
    OptionWindow::OptionWindow(app::ApplicationCommon *app, const std::string &name)
        : AppWindow(app, name), optionsModel{std::make_shared<OptionsModel>(app)}
    {
        buildInterface();
    }

    OptionWindow::OptionWindow(app::Application *app, const std::string &name, std::list<Option> options)
    OptionWindow::OptionWindow(app::ApplicationCommon *app, const std::string &name, std::list<Option> options)
        : AppWindow(app, name), optionsModel{std::make_shared<OptionsModel>(app)}, options(std::move(options))
    {
        buildInterface();

M module-apps/apps-common/windows/OptionWindow.hpp => module-apps/apps-common/windows/OptionWindow.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include "Application.hpp"
#include "ApplicationCommon.hpp"
#include "AppWindow.hpp"
#include "ListView.hpp"
#include <functional>


@@ 33,8 33,8 @@ namespace gui
        void refreshOptions(std::list<Option> &&optionList, unsigned int pageIndex);

      public:
        OptionWindow(app::Application *app, const std::string &name);
        OptionWindow(app::Application *app, const std::string &name, std::list<Option> options);
        OptionWindow(app::ApplicationCommon *app, const std::string &name);
        OptionWindow(app::ApplicationCommon *app, const std::string &name, std::list<Option> options);

        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        void onClose(CloseReason reason) override;

M module-services/service-appmgr/CMakeLists.txt => module-services/service-appmgr/CMakeLists.txt +1 -1
@@ 72,6 72,7 @@ target_sources(service-appmgr

target_link_libraries(service-appmgr
    PRIVATE
        apps-common
        application-special-input
        json::json
        module-audio


@@ 79,7 80,6 @@ target_link_libraries(service-appmgr
        service-db
        service-gui
    PUBLIC
        apps-common
        time
)


M module-services/service-appmgr/include/service-appmgr/messages/BaseMessage.hpp => module-services/service-appmgr/include/service-appmgr/messages/BaseMessage.hpp +1 -1
@@ 3,9 3,9 @@

#pragma once

#include <apps-common/ApplicationCommon.hpp>
#include <Service/Message.hpp>
#include <MessageType.hpp>
#include <apps-common/Application.hpp>

namespace app::manager
{

M module-services/service-appmgr/include/service-appmgr/model/ApplicationHandle.hpp => module-services/service-appmgr/include/service-appmgr/model/ApplicationHandle.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>

#include <memory>
#include <string>


@@ 18,7 18,7 @@ namespace app::manager
    class ApplicationHandle
    {
      public:
        using State = app::Application::State;
        using State = app::ApplicationCommon::State;

        explicit ApplicationHandle(std::unique_ptr<app::ApplicationLauncher> &&_launcher);


M module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp => module-services/service-appmgr/include/service-appmgr/model/ApplicationManagerCommon.hpp +0 -1
@@ 10,7 10,6 @@
#include "OnActionPolicy.hpp"
#include <service-appmgr/messages/Message.hpp>

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationLauncher.hpp>

#include <Service/Common.hpp>

M module-services/service-appmgr/model/ApplicationHandle.cpp => module-services/service-appmgr/model/ApplicationHandle.cpp +1 -1
@@ 44,7 44,7 @@ namespace app::manager

    auto ApplicationHandle::checkBlockClosing() const noexcept -> bool
    {
        return launcher->handle->getState() == Application::State::FINALIZING_CLOSE;
        return launcher->handle->getState() == ApplicationCommon::State::FINALIZING_CLOSE;
    }

    auto ApplicationHandle::closeable() const noexcept -> bool

M module-services/service-appmgr/model/ApplicationManagerCommon.cpp => module-services/service-appmgr/model/ApplicationManagerCommon.cpp +21 -20
@@ 48,7 48,7 @@ namespace app::manager
    {
        for (const auto &item : stack) {
            if (auto app = getApplication(item.appName);
                app != nullptr && app->state() == app::Application::State::ACTIVE_FORGROUND) {
                app != nullptr && app->state() == app::ApplicationCommon::State::ACTIVE_FORGROUND) {
                return app;
            }
        }


@@ 61,7 61,7 @@ namespace app::manager
            return nullptr;
        }
        auto app = getApplication(stack.front().appName);
        return app->state() != app::Application::State::ACTIVE_FORGROUND ? app : nullptr;
        return app->state() != app::ApplicationCommon::State::ACTIVE_FORGROUND ? app : nullptr;
    }

    auto ApplicationManagerBase::getPreviousApplication() const noexcept -> ApplicationHandle *


@@ 299,7 299,7 @@ namespace app::manager
        if (app.state() == ApplicationHandle::State::ACTIVE_BACKGROUND) {
            LOG_INFO("Switching focus to application [%s] (window [%s])", app.name().c_str(), app.switchWindow.c_str());
            setState(State::AwaitingFocusConfirmation);
            app::Application::messageSwitchApplication(
            app::ApplicationCommon::messageSwitchApplication(
                this, app.name(), app.switchWindow, std::move(app.switchData), StartupReason::Launch);
            return true;
        }


@@ 376,16 376,16 @@ namespace app::manager
        LOG_DEBUG("Switch applications: [%s][%s](%s) -> [%s][%s](%s)",
                  currentlyFocusedApp->name().c_str(),
                  currentlyFocusedApp->switchWindow.c_str(),
                  app::Application::stateStr(currentlyFocusedApp->state()),
                  app::ApplicationCommon::stateStr(currentlyFocusedApp->state()),
                  app->name().c_str(),
                  app->switchWindow.c_str(),
                  app::Application::stateStr(app->state()));
                  app::ApplicationCommon::stateStr(app->state()));

        stack.front().isCloseable = closeCurrentlyFocusedApp;
        onApplicationSwitch(*app, std::move(msg->getData()), msg->getWindow());
        if (app->name() == currentlyFocusedApp->name()) {
            // Switch window only.
            app::Application::messageSwitchApplication(
            app::ApplicationCommon::messageSwitchApplication(
                this, app->name(), app->switchWindow, std::move(app->switchData), StartupReason::Launch);
            return false;
        }


@@ 412,12 412,12 @@ namespace app::manager
        if (isCloseable) {
            LOG_INFO("Closing application %s", app.name().c_str());
            setState(State::AwaitingCloseConfirmation);
            app::Application::messageCloseApplication(this, app.name());
            app::ApplicationCommon::messageCloseApplication(this, app.name());
        }
        else {
            LOG_INFO("Application %s is about to lose focus.", app.name().c_str());
            setState(State::AwaitingLostFocusConfirmation);
            app::Application::messageApplicationLostFocus(this, app.name());
            app::ApplicationCommon::messageApplicationLostFocus(this, app.name());
        }
    }



@@ 494,7 494,7 @@ namespace app::manager

        if (targetApp->state() == ApplicationHandle::State::ACTIVE_FORGROUND ||
            targetApp->state() == ApplicationHandle::State::ACTIVE_BACKGROUND) {
            app::Application::requestAction(this, targetName, action.actionId, std::move(action.params));
            app::ApplicationCommon::requestAction(this, targetName, action.actionId, std::move(action.params));
            return ActionProcessStatus::Accepted;
        }
        return ActionProcessStatus::Skipped;


@@ 508,7 508,7 @@ namespace app::manager
        }
        action.setTargetApplication(targetApp->name());
        auto &params = action.params;
        app::Application::requestAction(this, targetApp->name(), action.actionId, std::move(params));
        app::ApplicationCommon::requestAction(this, targetApp->name(), action.actionId, std::move(params));
        return ActionProcessStatus::Accepted;
    }



@@ 528,7 528,7 @@ namespace app::manager
        action.setTargetApplication(targetApp->name());
        auto &actionParams = action.params;
        if (const auto state = targetApp->state(); state == ApplicationHandle::State::ACTIVE_FORGROUND) {
            app::Application::requestAction(this, targetApp->name(), action.actionId, std::move(actionParams));
            app::ApplicationCommon::requestAction(this, targetApp->name(), action.actionId, std::move(actionParams));
            return ActionProcessStatus::Accepted;
        }
        else if (state == ApplicationHandle::State::ACTIVE_BACKGROUND) {


@@ 554,7 554,7 @@ namespace app::manager
    {
        if (const auto actionFlag = app->actionFlag(action.actionId);
            actionFlag == actions::ActionFlag::AcceptWhenInBackground) {
            app::Application::requestAction(this, app->name(), action.actionId, std::move(action.params));
            app::ApplicationCommon::requestAction(this, app->name(), action.actionId, std::move(action.params));
            return ActionProcessStatus::Accepted;
        }
        return ActionProcessStatus::Dropped;


@@ 579,17 579,17 @@ namespace app::manager
        if (previousApp->name() == currentlyFocusedApp->name()) {
            // Switch window only.
            onApplicationSwitchToPrev(*previousApp, std::move(msg->getData()));
            app::Application::messageSwitchBack(this, currentlyFocusedApp->name());
            app::ApplicationCommon::messageSwitchBack(this, currentlyFocusedApp->name());
            return true;
        }

        LOG_DEBUG("Switch applications: [%s][%s](%s) -> [%s][%s](%s)",
                  currentlyFocusedApp->name().c_str(),
                  currentlyFocusedApp->switchWindow.c_str(),
                  app::Application::stateStr(currentlyFocusedApp->state()),
                  app::ApplicationCommon::stateStr(currentlyFocusedApp->state()),
                  previousApp->name().c_str(),
                  previousApp->switchWindow.c_str(),
                  app::Application::stateStr(previousApp->state()));
                  app::ApplicationCommon::stateStr(previousApp->state()));

        onApplicationSwitchToPrev(*previousApp, std::move(msg->getData()));
        requestApplicationClose(*currentlyFocusedApp, isApplicationCloseable(currentlyFocusedApp));


@@ 642,7 642,7 @@ namespace app::manager
            app.setState(ApplicationHandle::State::ACTIVATING);
            setState(State::AwaitingFocusConfirmation);

            app::Application::messageSwitchApplication(
            app::ApplicationCommon::messageSwitchApplication(
                this, app.name(), app.switchWindow, std::move(app.switchData), launchingApp->startupReason);
        }
    }


@@ 686,7 686,7 @@ namespace app::manager
            if (app && app->valid()) {
                if (const auto appState = app->state(); appState == ApplicationHandle::State::ACTIVE_FORGROUND ||
                                                        appState == ApplicationHandle::State::ACTIVE_BACKGROUND) {
                    app::Application::messageRebuildApplication(this, app->name());
                    app::ApplicationCommon::messageRebuildApplication(this, app->name());
                }
            }
        }


@@ 699,8 699,9 @@ namespace app::manager
            LOG_ERROR("Failed to switch to %s. No such application.", msg->getSenderName().c_str());
            return false;
        }
        LOG_INFO(
            "Switch confirmed by %s (%s).", senderApp->name().c_str(), app::Application::stateStr(senderApp->state()));
        LOG_INFO("Switch confirmed by %s (%s).",
                 senderApp->name().c_str(),
                 app::ApplicationCommon::stateStr(senderApp->state()));
        return onSwitchConfirmed(*senderApp);
    }



@@ 749,7 750,7 @@ namespace app::manager
            break;
        default: {
            auto &params = action->params;
            app::Application::requestAction(this, app.name(), action->actionId, std::move(params));
            app::ApplicationCommon::requestAction(this, app.name(), action->actionId, std::move(params));
            break;
        }
        }

M module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.cpp => module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.cpp +1 -0
@@ 2,6 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "BluetoothDevicesModel.hpp"
#include <module-sys/Service/Service.hpp>
#include <service-bluetooth/messages/BondedDevices.hpp>

BluetoothDevicesModel::BluetoothDevicesModel(sys::Service *service) : service{service}

M module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.hpp => module-services/service-bluetooth/service-bluetooth/BluetoothDevicesModel.hpp +0 -1
@@ 3,7 3,6 @@

#pragma once

#include "Application.hpp"
#include <Device.hpp>
#include "service-bluetooth/messages/SyncDevices.hpp"
extern "C"

M module-services/service-db/ServiceDBCommon.cpp => module-services/service-db/ServiceDBCommon.cpp +1 -1
@@ 3,8 3,8 @@

#include <service-db/DBNotificationMessage.hpp>
#include <service-db/DBServiceName.hpp>
#include <service-db/QueryMessage.hpp>
#include <service-db/ServiceDBCommon.hpp>
#include <service-db/agents/quotes/QuotesAgent.cpp>

#include <purefs/filesystem_paths.hpp>


M module-services/service-db/agents/quotes/QuotesAgent.cpp => module-services/service-db/agents/quotes/QuotesAgent.cpp +1 -1
@@ 4,7 4,7 @@
#include "QuotesAgent.hpp"
#include "QuotesQueries.hpp"

#include <Application.hpp>
//#include <Application.hpp>
#include <Common/Query.hpp>

namespace Quotes

M module-sys/SystemManager/SystemManagerCommon.cpp => module-sys/SystemManager/SystemManagerCommon.cpp +9 -6
@@ 3,6 3,7 @@

#include "SystemManagerCommon.hpp"

#include <apps-common/ApplicationCommon.hpp>
#include "DependencyGraph.hpp"
#include "graph/TopologicalSort.hpp"



@@ 301,7 302,9 @@ namespace sys
        return RunService(std::move(service), caller, timeout);
    }

    bool SystemManagerCommon::RunApplication(std::shared_ptr<app::Application> app, Service *caller, TickType_t timeout)
    bool SystemManagerCommon::RunApplication(std::shared_ptr<app::ApplicationCommon> app,
                                             Service *caller,
                                             TickType_t timeout)
    {
        CriticalSection::Enter();
        applicationsList.push_back(app);


@@ 366,10 369,10 @@ namespace sys
    {
        cpp_freertos::LockGuard lck(appDestroyMutex);
        if (RequestServiceClose(name, caller)) {
            auto app =
                std::find_if(applicationsList.begin(),
                             applicationsList.end(),
                             [&name](std::shared_ptr<app::Application> const &s) { return s->GetName() == name; });
            auto app = std::find_if(
                applicationsList.begin(),
                applicationsList.end(),
                [&name](std::shared_ptr<app::ApplicationCommon> const &s) { return s->GetName() == name; });
            if (app == applicationsList.end()) {
                LOG_ERROR("No such application to destroy in the list: %s", name.c_str());
                return false;


@@ 677,7 680,7 @@ namespace sys
    }

    std::vector<std::shared_ptr<Service>> SystemManagerCommon::servicesList;
    std::vector<std::shared_ptr<app::Application>> SystemManagerCommon::applicationsList;
    std::vector<std::shared_ptr<app::ApplicationCommon>> SystemManagerCommon::applicationsList;
    cpp_freertos::MutexStandard SystemManagerCommon::serviceDestroyMutex;
    cpp_freertos::MutexStandard SystemManagerCommon::appDestroyMutex;
    std::unique_ptr<PowerManager> SystemManagerCommon::powerManager;

M module-sys/SystemManager/SystemManagerCommon.hpp => module-sys/SystemManager/SystemManagerCommon.hpp +9 -3
@@ 19,7 19,11 @@
#include "DeviceManager.hpp"
#include <chrono>
#include <vector>
#include <apps-common/Application.hpp>

namespace app
{
    class ApplicationCommon;
}

namespace sys
{


@@ 106,7 110,9 @@ namespace sys
        /// Runs a service
        static bool RunSystemService(std::shared_ptr<Service> service, Service *caller, TickType_t timeout = 5000);
        /// Runs an application
        static bool RunApplication(std::shared_ptr<app::Application> app, Service *caller, TickType_t timeout = 5000);
        static bool RunApplication(std::shared_ptr<app::ApplicationCommon> app,
                                   Service *caller,
                                   TickType_t timeout = 5000);

        /// Destroy existing service
        /// @note there is no fallback


@@ 193,7 199,7 @@ namespace sys
        std::shared_ptr<sys::CpuSentinel> cpuSentinel;

        static std::vector<std::shared_ptr<Service>> servicesList;
        static std::vector<std::shared_ptr<app::Application>> applicationsList;
        static std::vector<std::shared_ptr<app::ApplicationCommon>> applicationsList;
        static cpp_freertos::MutexStandard serviceDestroyMutex;
        static cpp_freertos::MutexStandard appDestroyMutex;
        static std::unique_ptr<PowerManager> powerManager;

R products/BellHybrid/apps/common/src/ApplicationBell.cpp => products/BellHybrid/apps/Application.cpp +3 -3
@@ 1,12 1,12 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <common/ApplicationBell.hpp>
#include <Application.hpp>
#include <common/popups/AlarmActivatedWindow.hpp>

namespace app
{
    void ApplicationBell::attachPopups(const std::vector<gui::popup::ID> &popupsList)
    void Application::attachPopups(const std::vector<gui::popup::ID> &popupsList)
    {
        using namespace gui::popup;
        app::Application::attachPopups(popupsList);


@@ 14,7 14,7 @@ namespace app
            switch (popup) {
            case ID::AlarmActivated:
                windowsFactory.attach(window::alarm_activated_window,
                                      [](app::Application *app, const std::string &name) {
                                      [](app::ApplicationCommon *app, const std::string &name) {
                                          return std::make_unique<gui::AlarmActivatedWindow>(app);
                                      });
                break;

M products/BellHybrid/apps/CMakeLists.txt => products/BellHybrid/apps/CMakeLists.txt +20 -0
@@ 1,3 1,23 @@
add_library(app STATIC)

target_sources(app
    PRIVATE
        Application.cpp
    PUBLIC
        include/Application.hpp
)

target_include_directories(app
    PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)

target_link_libraries(app
    PRIVATE
        apps-common
        bell::app-common
)

add_subdirectory(application-bell-main)
add_subdirectory(application-bell-alarm)
add_subdirectory(application-bell-settings)

M products/BellHybrid/apps/application-bell-alarm/ApplicationBellAlarm.cpp => products/BellHybrid/apps/application-bell-alarm/ApplicationBellAlarm.cpp +2 -2
@@ 12,7 12,7 @@ namespace app
                                               sys::phone_modes::PhoneMode mode,
                                               sys::bluetooth::BluetoothMode bluetoothMode,
                                               StartInBackground startInBackground)
        : ApplicationBell(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground)
        : Application(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground)
    {}

    sys::ReturnCodes ApplicationBellAlarm::InitHandler()


@@ 29,7 29,7 @@ namespace app

    void ApplicationBellAlarm::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            auto presenter = std::make_unique<bell_alarm::BellAlarmWindowPresenter>();
            return std::make_unique<gui::BellAlarmWindow>(app, std::move(presenter));
        });

M products/BellHybrid/apps/application-bell-alarm/CMakeLists.txt => products/BellHybrid/apps/application-bell-alarm/CMakeLists.txt +1 -0
@@ 24,6 24,7 @@ target_include_directories(application-bell-alarm

target_link_libraries(application-bell-alarm
    PRIVATE
        app
        bell::app-common
        module-gui
)

M products/BellHybrid/apps/application-bell-alarm/include/application-bell-alarm/ApplicationBellAlarm.hpp => products/BellHybrid/apps/application-bell-alarm/include/application-bell-alarm/ApplicationBellAlarm.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <common/ApplicationBell.hpp>
#include <Application.hpp>

namespace gui::window::name
{


@@ 14,7 14,7 @@ namespace app
{
    inline constexpr auto applicationBellAlarmName = "ApplicationBellAlarm";

    class ApplicationBellAlarm : public ApplicationBell
    class ApplicationBellAlarm : public Application
    {
      public:
        explicit ApplicationBellAlarm(

M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp => products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.cpp +1 -1
@@ 16,7 16,7 @@
namespace gui
{
    BellAlarmWindow::BellAlarmWindow(
        app::Application *app,
        app::ApplicationCommon *app,
        std::unique_ptr<app::bell_alarm::BellAlarmWindowContract::Presenter> &&windowPresenter,
        std::string name)
        : AppWindow(app, std::move(name)), presenter{std::move(windowPresenter)}

M products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.hpp => products/BellHybrid/apps/application-bell-alarm/windows/BellAlarmWindow.hpp +1 -1
@@ 16,7 16,7 @@ namespace gui
    class BellAlarmWindow : public AppWindow, public app::bell_alarm::BellAlarmWindowContract::View
    {
      public:
        explicit BellAlarmWindow(app::Application *app,
        explicit BellAlarmWindow(app::ApplicationCommon *app,
                                 std::unique_ptr<app::bell_alarm::BellAlarmWindowContract::Presenter> &&windowPresenter,
                                 std::string name = window::name::bellAlarm);


M products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp => products/BellHybrid/apps/application-bell-main/ApplicationBellMain.cpp +6 -6
@@ 20,7 20,7 @@ namespace app
                                             sys::phone_modes::PhoneMode mode,
                                             sys::bluetooth::BluetoothMode bluetoothMode,
                                             StartInBackground startInBackground)
        : ApplicationBell(name, parent, mode, bluetoothMode, startInBackground)
        : Application(name, parent, mode, bluetoothMode, startInBackground)
    {
        bus.channels.push_back(sys::BusChannel::ServiceDBNotifications);
        addActionReceiver(manager::actions::ShowAlarm, [this](auto &&data) {


@@ 43,7 43,7 @@ namespace app

    void ApplicationBellMain::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            auto timeModel        = std::make_unique<app::home_screen::TimeModel>();
            auto temperatureModel = std::make_unique<app::home_screen::TemperatureModel>(app);
            auto alarmModel       = std::make_unique<app::AlarmModel>(app);


@@ 52,14 52,14 @@ namespace app
            return std::make_unique<gui::BellHomeScreenWindow>(app, std::move(presenter));
        });

        windowsFactory.attach(gui::window::name::bell_main_menu, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::window::name::bell_main_menu, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::BellMainMenuWindow>(app);
        });

        // for demo only - to be removed
        windowsFactory.attach(gui::window::name::bell_main_menu_dialog, [](Application *app, const std::string &name) {
            return std::make_unique<gui::Dialog>(app, name);
        });
        windowsFactory.attach(
            gui::window::name::bell_main_menu_dialog,
            [](ApplicationCommon *app, const std::string &name) { return std::make_unique<gui::Dialog>(app, name); });

        attachPopups({gui::popup::ID::AlarmActivated});
    }

M products/BellHybrid/apps/application-bell-main/CMakeLists.txt => products/BellHybrid/apps/application-bell-main/CMakeLists.txt +1 -0
@@ 36,6 36,7 @@ target_include_directories(application-bell-main

target_link_libraries(application-bell-main
    PRIVATE
        app
        apps-common
        bellgui
        i18n

M products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp => products/BellHybrid/apps/application-bell-main/include/application-bell-main/ApplicationBellMain.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <common/ApplicationBell.hpp>
#include <Application.hpp>

namespace gui::window::name
{


@@ 16,7 16,7 @@ namespace app
{
    inline constexpr auto applicationBellName = "ApplicationBell";

    class ApplicationBellMain : public ApplicationBell
    class ApplicationBellMain : public Application
    {
      public:
        explicit ApplicationBellMain(

M products/BellHybrid/apps/application-bell-main/models/TemperatureModel.cpp => products/BellHybrid/apps/application-bell-main/models/TemperatureModel.cpp +2 -2
@@ 3,14 3,14 @@

#include "TemperatureModel.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-db/Settings.hpp>
#include <db/SystemSettings.hpp>
#include <evtmgr/api/TemperatureApi.hpp>

namespace app::home_screen
{
    TemperatureModel::TemperatureModel(app::Application *app)
    TemperatureModel::TemperatureModel(app::ApplicationCommon *app)
    {
        settings.init(service::ServiceProxy{app->weak_from_this()});
    }

M products/BellHybrid/apps/application-bell-main/models/TemperatureModel.hpp => products/BellHybrid/apps/application-bell-main/models/TemperatureModel.hpp +2 -2
@@ 12,7 12,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app::home_screen


@@ 28,7 28,7 @@ namespace app::home_screen
    class TemperatureModel : public AbstractTemperatureModel
    {
      public:
        explicit TemperatureModel(app::Application *app);
        explicit TemperatureModel(app::ApplicationCommon *app);
        utils::temperature::Temperature getTemperature() const override;

      private:

M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp => products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp +2 -2
@@ 6,7 6,7 @@
#include "models/TemperatureModel.hpp"
#include "models/TimeModel.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <module-sys/Timers/SystemTimer.hpp>
#include <module-sys/Timers/TimerFactory.hpp>
#include <time/time_constants.hpp>


@@ 14,7 14,7 @@

namespace app::home_screen
{
    HomeScreenPresenter::HomeScreenPresenter(Application *app,
    HomeScreenPresenter::HomeScreenPresenter(ApplicationCommon *app,
                                             std::unique_ptr<AbstractAlarmModel> alarmModel,
                                             std::unique_ptr<AbstractTemperatureModel> temperatureModel,
                                             std::unique_ptr<AbstractTimeModel> timeModel)

M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp => products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp +3 -3
@@ 18,7 18,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace gui


@@ 88,7 88,7 @@ namespace app::home_screen
    class HomeScreenPresenter : public AbstractPresenter
    {
      public:
        HomeScreenPresenter(Application *app,
        HomeScreenPresenter(ApplicationCommon *app,
                            std::unique_ptr<AbstractAlarmModel> alarmModel,
                            std::unique_ptr<AbstractTemperatureModel> temperatureModel,
                            std::unique_ptr<AbstractTimeModel> timeModel);


@@ 112,7 112,7 @@ namespace app::home_screen
        void handleAlarmModelReady() override;

      private:
        Application *app;
        ApplicationCommon *app;
        sys::TimerHandle timer;
        std::unique_ptr<AbstractAlarmModel> alarmModel;
        std::unique_ptr<AbstractTemperatureModel> temperatureModel;

M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp => products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp +1 -1
@@ 70,7 70,7 @@ namespace

namespace gui
{
    BellHomeScreenWindow::BellHomeScreenWindow(app::Application *app,
    BellHomeScreenWindow::BellHomeScreenWindow(app::ApplicationCommon *app,
                                               std::unique_ptr<app::home_screen::AbstractPresenter> presenter)
        : AppWindow(app, name::window::main_window), presenter{std::move(presenter)}
    {

M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp => products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp +2 -1
@@ 19,7 19,8 @@ namespace gui
    class BellHomeScreenWindow : public AppWindow, public app::home_screen::AbstractView
    {
      public:
        BellHomeScreenWindow(app::Application *app, std::unique_ptr<app::home_screen::AbstractPresenter> presenter);
        BellHomeScreenWindow(app::ApplicationCommon *app,
                             std::unique_ptr<app::home_screen::AbstractPresenter> presenter);

      private:
        void buildInterface() override;

M products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.cpp => products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.cpp +2 -1
@@ 17,7 17,8 @@
namespace gui
{

    BellMainMenuWindow::BellMainMenuWindow(app::Application *app) : OptionWindow(app, gui::window::name::bell_main_menu)
    BellMainMenuWindow::BellMainMenuWindow(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::bell_main_menu)
    {
        addOptions(mainMenuOptionsList());
        buildInterface();

M products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.hpp => products/BellHybrid/apps/application-bell-main/windows/BellMainMenuWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class BellMainMenuWindow : public OptionWindow
    {
      public:
        BellMainMenuWindow(app::Application *app);
        BellMainMenuWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> mainMenuOptionsList();

M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp => products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.cpp +2 -1
@@ 11,7 11,8 @@

namespace gui
{
    BellMainSetHour::BellMainSetHour(app::Application *app) : AppWindow(app, gui::window::name::bell_main_set_hour)
    BellMainSetHour::BellMainSetHour(app::ApplicationCommon *app)
        : AppWindow(app, gui::window::name::bell_main_set_hour)
    {
        buildInterface();
    }

M products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.hpp => products/BellHybrid/apps/application-bell-main/windows/BellMainSetHour.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class BellMainSetHour : public AppWindow
    {
      public:
        explicit BellMainSetHour(app::Application *app);
        explicit BellMainSetHour(app::ApplicationCommon *app);

        void buildInterface() override;
        bool onInput(const InputEvent &inputEvent) override;

M products/BellHybrid/apps/application-bell-powernap/ApplicationBellPowerNap.cpp => products/BellHybrid/apps/application-bell-powernap/ApplicationBellPowerNap.cpp +12 -10
@@ 18,7 18,7 @@ namespace app
                                                     sys::phone_modes::PhoneMode mode,
                                                     sys::bluetooth::BluetoothMode bluetoothMode,
                                                     StartInBackground startInBackground)
        : ApplicationBell(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground),
        : Application(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground),
          alarm{std::make_unique<powernap::PowerNapAlarmImpl>(this)}
    {}



@@ 36,18 36,20 @@ namespace app

    void ApplicationBellPowerNap::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [this](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [this](ApplicationCommon *app, const std::string &name) {
            auto presenter = std::make_unique<powernap::PowerNapMainWindowPresenter>(app, settings.get());
            return std::make_unique<gui::PowerNapMainWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::powernapProgress, [this](Application *app, const std::string &name) {
            auto presenter = std::make_unique<powernap::PowerNapProgressPresenter>(app, settings.get(), *alarm);
            return std::make_unique<gui::PowerNapProgressWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(gui::window::name::powernapSessionEnded, [](Application *app, const std::string &name) {
            auto presenter = std::make_unique<powernap::PowerNapSessionEndPresenter>(app);
            return std::make_unique<gui::PowerNapSessionEndedWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(
            gui::window::name::powernapProgress, [this](ApplicationCommon *app, const std::string &name) {
                auto presenter = std::make_unique<powernap::PowerNapProgressPresenter>(app, settings.get(), *alarm);
                return std::make_unique<gui::PowerNapProgressWindow>(app, std::move(presenter));
            });
        windowsFactory.attach(gui::window::name::powernapSessionEnded,
                              [](ApplicationCommon *app, const std::string &name) {
                                  auto presenter = std::make_unique<powernap::PowerNapSessionEndPresenter>(app);
                                  return std::make_unique<gui::PowerNapSessionEndedWindow>(app, std::move(presenter));
                              });

        attachPopups({gui::popup::ID::AlarmActivated});
    }

M products/BellHybrid/apps/application-bell-powernap/CMakeLists.txt => products/BellHybrid/apps/application-bell-powernap/CMakeLists.txt +1 -0
@@ 44,6 44,7 @@ target_sources(application-bell-powernap

target_link_libraries(application-bell-powernap
    PRIVATE
        app
        bell::app-common
        bell::app-main


M products/BellHybrid/apps/application-bell-powernap/include/application-bell-powernap/ApplicationBellPowerNap.hpp => products/BellHybrid/apps/application-bell-powernap/include/application-bell-powernap/ApplicationBellPowerNap.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <common/ApplicationBell.hpp>
#include <Application.hpp>

namespace gui::window::name
{


@@ 19,7 19,7 @@ namespace app

    inline constexpr auto applicationBellPowerNapName = "ApplicationBellPowerNap";

    class ApplicationBellPowerNap : public ApplicationBell
    class ApplicationBellPowerNap : public Application
    {
        std::unique_ptr<powernap::PowerNapAlarmImpl> alarm;


M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.cpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.cpp +2 -2
@@ 5,13 5,13 @@
#include "models/PowerNapModel.hpp"
#include "data/PowerNapCommon.hpp"
#include <ApplicationBellPowerNap.hpp>
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-db/agents/settings/SystemSettings.hpp>
#include <service-db/Settings.hpp>

namespace app::powernap
{
    PowerNapMainWindowPresenter::PowerNapMainWindowPresenter(app::Application *app, settings::Settings *settings)
    PowerNapMainWindowPresenter::PowerNapMainWindowPresenter(app::ApplicationCommon *app, settings::Settings *settings)
        : app{app}, settings{settings}, model{std::make_shared<PowerNapModel>()}
    {}


M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.hpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapMainWindowPresenter.hpp +3 -3
@@ 13,7 13,7 @@ namespace gui

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace settings


@@ 45,12 45,12 @@ namespace app::powernap

    class PowerNapMainWindowPresenter : public PowerNapMainWindowContract::Presenter
    {
        app::Application *app        = nullptr;
        app::ApplicationCommon *app  = nullptr;
        settings::Settings *settings = nullptr;
        std::shared_ptr<PowerNapModel> model;

      public:
        PowerNapMainWindowPresenter(app::Application *app, settings::Settings *settings);
        PowerNapMainWindowPresenter(app::ApplicationCommon *app, settings::Settings *settings);
        auto getNapTimeProvider() -> std::shared_ptr<gui::ListItemProvider> override;

        void loadNapTimeList() override;

M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.cpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.cpp +1 -1
@@ 22,7 22,7 @@ namespace
} // namespace
namespace app::powernap
{
    PowerNapProgressPresenter::PowerNapProgressPresenter(app::Application *app,
    PowerNapProgressPresenter::PowerNapProgressPresenter(app::ApplicationCommon *app,
                                                         settings::Settings *settings,
                                                         PowerNapAlarm &alarm)
        : app{app}, settings{settings}, alarm{alarm},

M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.hpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.hpp +3 -3
@@ 9,7 9,7 @@
#include <memory>
namespace app
{
    class Application;
    class ApplicationCommon;
} // namespace app
namespace gui
{


@@ 47,7 47,7 @@ namespace app::powernap

    class PowerNapProgressPresenter : public PowerNapProgressContract::Presenter
    {
        app::Application *app        = nullptr;
        app::ApplicationCommon *app  = nullptr;
        settings::Settings *settings = nullptr;
        PowerNapAlarm &alarm;
        std::unique_ptr<app::ProgressTimer> timer;


@@ 62,6 62,6 @@ namespace app::powernap
        void onNapAlarmFinished();

      public:
        PowerNapProgressPresenter(app::Application *app, settings::Settings *settings, PowerNapAlarm &alarm);
        PowerNapProgressPresenter(app::ApplicationCommon *app, settings::Settings *settings, PowerNapAlarm &alarm);
    };
} // namespace app::powernap

M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.cpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.cpp +1 -1
@@ 9,7 9,7 @@

namespace app::powernap
{
    PowerNapSessionEndPresenter ::PowerNapSessionEndPresenter(app::Application *app) : app{app}
    PowerNapSessionEndPresenter ::PowerNapSessionEndPresenter(app::ApplicationCommon *app) : app{app}
    {}

    void PowerNapSessionEndPresenter::activate()

M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.hpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapSessionEndedPresenter.hpp +3 -3
@@ 7,7 7,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app::powernap


@@ 29,10 29,10 @@ namespace app::powernap

    class PowerNapSessionEndPresenter : public PowerNapSessionEndedContract::Presenter
    {
        app::Application *app{};
        app::ApplicationCommon *app{};
        void activate() override;

      public:
        explicit PowerNapSessionEndPresenter(app::Application *app);
        explicit PowerNapSessionEndPresenter(app::ApplicationCommon *app);
    };
} // namespace app::powernap

M products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.cpp => products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.cpp +1 -1
@@ 13,7 13,7 @@ namespace

namespace app::powernap
{
    PowerNapAlarmImpl::PowerNapAlarmImpl(app::Application *app) : app{app}
    PowerNapAlarmImpl::PowerNapAlarmImpl(app::ApplicationCommon *app) : app{app}
    {}

    void PowerNapAlarmImpl::start()

M products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.hpp => products/BellHybrid/apps/application-bell-powernap/widgets/PowerNapAlarm.hpp +3 -3
@@ 6,7 6,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app::powernap


@@ 22,14 22,14 @@ namespace app::powernap

    class PowerNapAlarmImpl : public PowerNapAlarm
    {
        app::Application *app{};
        app::ApplicationCommon *app{};
        audio::Token token;

        void start() override;
        void stop() override;

      public:
        explicit PowerNapAlarmImpl(app::Application *app);
        explicit PowerNapAlarmImpl(app::ApplicationCommon *app);
        void registerAudioStream(audio::Token _token);
    };


M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.cpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.cpp +2 -1
@@ 8,7 8,8 @@
namespace gui
{
    PowerNapMainWindow::PowerNapMainWindow(
        app::Application *app, std::unique_ptr<app::powernap::PowerNapMainWindowContract::Presenter> &&windowPresenter)
        app::ApplicationCommon *app,
        std::unique_ptr<app::powernap::PowerNapMainWindowContract::Presenter> &&windowPresenter)
        : AppWindow(app, gui::name::window::main_window), windowPresenter{std::move(windowPresenter)}
    {
        this->windowPresenter->attach(this);

M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.hpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapMainWindow.hpp +1 -1
@@ 19,7 19,7 @@ namespace gui
        status_bar::Configuration configureStatusBar(status_bar::Configuration appConfiguration) override;

      public:
        PowerNapMainWindow(app::Application *app,
        PowerNapMainWindow(app::ApplicationCommon *app,
                           std::unique_ptr<app::powernap::PowerNapMainWindowContract::Presenter> &&windowPresenter);
    };
} // namespace gui

M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.cpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.cpp +1 -1
@@ 50,7 50,7 @@ namespace
namespace gui
{
    PowerNapProgressWindow::PowerNapProgressWindow(
        app::Application *app, std::shared_ptr<app::powernap::PowerNapProgressContract::Presenter> presenter)
        app::ApplicationCommon *app, std::shared_ptr<app::powernap::PowerNapProgressContract::Presenter> presenter)
        : AppWindow(app, gui::window::name::powernapProgress), presenter{std::move(presenter)}
    {
        buildInterface();

M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.hpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapProgressWindow.hpp +1 -1
@@ 26,7 26,7 @@ namespace gui
        void napEnded() override;

      public:
        PowerNapProgressWindow(app::Application *app,
        PowerNapProgressWindow(app::ApplicationCommon *app,
                               std::shared_ptr<app::powernap::PowerNapProgressContract::Presenter> presenter);
    };
} // namespace gui

M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.cpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{
    PowerNapSessionEndedWindow::PowerNapSessionEndedWindow(
        app::Application *app, std::shared_ptr<app::powernap::PowerNapSessionEndedContract::Presenter> presenter)
        app::ApplicationCommon *app, std::shared_ptr<app::powernap::PowerNapSessionEndedContract::Presenter> presenter)
        : WindowWithTimer(app, gui::window::name::powernapSessionEnded), presenter{std::move(presenter)}
    {
        buildInterface();

M products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.hpp => products/BellHybrid/apps/application-bell-powernap/windows/PowerNapSessionEndedWindow.hpp +2 -1
@@ 17,6 17,7 @@ namespace gui

      public:
        explicit PowerNapSessionEndedWindow(
            app::Application *app, std::shared_ptr<app::powernap::PowerNapSessionEndedContract::Presenter> presenter);
            app::ApplicationCommon *app,
            std::shared_ptr<app::powernap::PowerNapSessionEndedContract::Presenter> presenter);
    };
} // namespace gui

M products/BellHybrid/apps/application-bell-settings/ApplicationBellSettings.cpp => products/BellHybrid/apps/application-bell-settings/ApplicationBellSettings.cpp +34 -29
@@ 35,7 35,7 @@ namespace app
                                                     sys::phone_modes::PhoneMode mode,
                                                     sys::bluetooth::BluetoothMode bluetoothMode,
                                                     StartInBackground startInBackground)
        : ApplicationBell(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground)
        : Application(std::move(name), std::move(parent), mode, bluetoothMode, startInBackground)
    {}

    sys::ReturnCodes ApplicationBellSettings::InitHandler()


@@ 51,49 51,54 @@ namespace app

    void ApplicationBellSettings::createUserInterface()
    {
        windowsFactory.attach(gui::name::window::main_window, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::name::window::main_window, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::BellSettingsWindow>(app);
        });

        // Advanced
        windowsFactory.attach(gui::window::name::bellSettingsAdvanced, [](Application *app, const std::string &name) {
            return std::make_unique<gui::BellSettingsAdvancedWindow>(app);
        });
        windowsFactory.attach(gui::window::name::bellSettingsAdvanced,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BellSettingsAdvancedWindow>(app);
                              });

        windowsFactory.attach(gui::window::name::bellSettingsTimeUnits, [](Application *app, const std::string &name) {
            auto temperatureUnitModel = std::make_unique<bell_settings::TemperatureUnitModel>(app);
            auto timeUnitsProvider    = std::make_shared<bell_settings::TimeUnitsModel>(app);
            auto presenter            = std::make_unique<bell_settings::TimeUnitsWindowPresenter>(timeUnitsProvider,
                                                                                       std::move(temperatureUnitModel));
            return std::make_unique<gui::BellSettingsTimeUnitsWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(
            gui::window::name::bellSettingsTimeUnits, [](ApplicationCommon *app, const std::string &name) {
                auto temperatureUnitModel = std::make_unique<bell_settings::TemperatureUnitModel>(app);
                auto timeUnitsProvider    = std::make_shared<bell_settings::TimeUnitsModel>(app);
                auto presenter            = std::make_unique<bell_settings::TimeUnitsWindowPresenter>(
                    timeUnitsProvider, std::move(temperatureUnitModel));
                return std::make_unique<gui::BellSettingsTimeUnitsWindow>(app, std::move(presenter));
            });

        windowsFactory.attach(gui::window::name::bellSettingsFrontlight, [](Application *app, const std::string &name) {
            auto model =
                std::make_shared<bell_settings::FrontlightModel>(app, static_cast<ApplicationBellSettings *>(app));
            auto presenter = std::make_unique<bell_settings::FrontlightWindowPresenter>(std::move(model));
            return std::make_unique<gui::BellSettingsFrontlightWindow>(app, std::move(presenter));
        });
        windowsFactory.attach(
            gui::window::name::bellSettingsFrontlight, [](ApplicationCommon *app, const std::string &name) {
                auto model =
                    std::make_shared<bell_settings::FrontlightModel>(app, static_cast<ApplicationBellSettings *>(app));
                auto presenter = std::make_unique<bell_settings::FrontlightWindowPresenter>(std::move(model));
                return std::make_unique<gui::BellSettingsFrontlightWindow>(app, std::move(presenter));
            });

        windowsFactory.attach(gui::BellFinishedWindow::name, [](Application *app, const std::string &name) {
        windowsFactory.attach(gui::BellFinishedWindow::name, [](ApplicationCommon *app, const std::string &name) {
            return std::make_unique<gui::BellFinishedWindow>(app);
        });

        windowsFactory.attach(gui::window::name::bellSettingsHomeView, [](Application *app, const std::string &name) {
            return std::make_unique<gui::BellSettingsHomeViewWindow>(app);
        });
        windowsFactory.attach(gui::window::name::bellSettingsHomeView,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BellSettingsHomeViewWindow>(app);
                              });

        windowsFactory.attach(gui::window::name::bellSettingsBedtimeTone,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BellSettingsBedtimeToneWindow>(app);
                              });

        windowsFactory.attach(gui::window::name::bellSettingsTurnOff, [](Application *app, const std::string &name) {
            return std::make_unique<gui::BellSettingsTurnOffWindow>(app);
        });
        windowsFactory.attach(gui::window::name::bellSettingsTurnOff,
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BellSettingsTurnOffWindow>(app);
                              });

        windowsFactory.attach(
            gui::window::name::bellSettingsAlarmSettingsPrewakeUp, [](Application *app, const std::string &name) {
            gui::window::name::bellSettingsAlarmSettingsPrewakeUp, [](ApplicationCommon *app, const std::string &name) {
                auto model     = std::make_shared<bell_settings::PrewakeUpModel>(app);
                auto presenter = std::make_unique<bell_settings::PrewakeUpWindowPresenter>(std::move(model));
                return std::make_unique<gui::BellSettingsPrewakeUpWindow>(app, std::move(presenter));


@@ 103,11 108,11 @@ namespace app

        // Alarm setup
        windowsFactory.attach(gui::BellSettingsAlarmSettingsWindow::name,
                              [](Application *app, const std::string &name) {
                              [](ApplicationCommon *app, const std::string &name) {
                                  return std::make_unique<gui::BellSettingsAlarmSettingsWindow>(app);
                              });
        windowsFactory.attach(
            gui::BellSettingsAlarmSettingsSnoozeWindow::name, [this](Application *app, const std::string &) {
            gui::BellSettingsAlarmSettingsSnoozeWindow::name, [this](ApplicationCommon *app, const std::string &) {
                auto model     = std::make_unique<bell_settings::SnoozeSettingsModel>(this);
                auto provider  = std::make_shared<bell_settings::SnoozeListItemProvider>(*model);
                auto presenter = std::make_unique<bell_settings::SnoozePresenter>(provider, std::move(model));

M products/BellHybrid/apps/application-bell-settings/CMakeLists.txt => products/BellHybrid/apps/application-bell-settings/CMakeLists.txt +1 -0
@@ 79,6 79,7 @@ target_sources(application-bell-settings

target_link_libraries(application-bell-settings
    PRIVATE
        app
        bellgui
        bell::app-common
        bell::db

M products/BellHybrid/apps/application-bell-settings/include/application-bell-settings/ApplicationBellSettings.hpp => products/BellHybrid/apps/application-bell-settings/include/application-bell-settings/ApplicationBellSettings.hpp +2 -2
@@ 3,7 3,7 @@

#pragma once

#include <common/ApplicationBell.hpp>
#include <Application.hpp>
#include <service-evtmgr/screen-light-control/ScreenLightControl.hpp>

namespace gui::window::name


@@ 44,7 44,7 @@ namespace app
        };
    }; // namespace settingsInterface

    class ApplicationBellSettings : public ApplicationBell, public settingsInterface::BellScreenLightSettings
    class ApplicationBellSettings : public Application, public settingsInterface::BellScreenLightSettings
    {
      public:
        ApplicationBellSettings(std::string name                            = applicationBellSettingsName,

M products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.cpp => products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.cpp +2 -1
@@ 22,7 22,8 @@ namespace

namespace app::bell_settings
{
    FrontlightModel::FrontlightModel(app::Application *app, app::settingsInterface::BellScreenLightSettings *slSettings)
    FrontlightModel::FrontlightModel(app::ApplicationCommon *app,
                                     app::settingsInterface::BellScreenLightSettings *slSettings)
        : application(app), screenLightSettings(slSettings)
    {
        settings.init(service::ServiceProxy{application->weak_from_this()});

M products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.hpp => products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.hpp +4 -3
@@ 8,14 8,15 @@
#include <widgets/Spinner.hpp>
#include <service-db/Settings.hpp>

class Application;
class ApplicationCommon;

namespace app::bell_settings
{
    class FrontlightModel
    {
      public:
        explicit FrontlightModel(app::Application *app, app::settingsInterface::BellScreenLightSettings *slSettings);
        explicit FrontlightModel(app::ApplicationCommon *app,
                                 app::settingsInterface::BellScreenLightSettings *slSettings);
        ~FrontlightModel();

        auto saveData() -> void;


@@ 25,7 26,7 @@ namespace app::bell_settings
        [[nodiscard]] auto getSpinner() -> gui::Spinner *;

      private:
        app::Application *application                                        = nullptr;
        app::ApplicationCommon *application                                  = nullptr;
        app::settingsInterface::BellScreenLightSettings *screenLightSettings = nullptr;
        gui::Spinner *frontlightSetSpinner                                   = nullptr;
        mutable settings::Settings settings;

M products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.cpp => products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.cpp +1 -1
@@ 9,7 9,7 @@

namespace app::bell_settings
{
    PrewakeUpModel::PrewakeUpModel(app::Application *app) : application(app)
    PrewakeUpModel::PrewakeUpModel(app::ApplicationCommon *app) : application(app)
    {}

    PrewakeUpModel::~PrewakeUpModel()

M products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.hpp => products/BellHybrid/apps/application-bell-settings/models/PrewakeUpModel.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/InternalModel.hpp>

namespace app::bell_settings


@@ 11,7 11,7 @@ namespace app::bell_settings
    class PrewakeUpModel : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
    {
      public:
        explicit PrewakeUpModel(app::Application *app);
        explicit PrewakeUpModel(app::ApplicationCommon *app);

        ~PrewakeUpModel();



@@ 32,6 32,6 @@ namespace app::bell_settings
        [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int override;

      private:
        app::Application *application{};
        app::ApplicationCommon *application{};
    };
} // namespace app::bell_settings

M products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.cpp => products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.cpp +2 -2
@@ 3,7 3,7 @@

#include "TemperatureUnitModel.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <service-db/Settings.hpp>
#include <db/SystemSettings.hpp>



@@ 14,7 14,7 @@ namespace

namespace app::bell_settings
{
    TemperatureUnitModel::TemperatureUnitModel(app::Application *app)
    TemperatureUnitModel::TemperatureUnitModel(app::ApplicationCommon *app)
    {
        settings.init(service::ServiceProxy{app->weak_from_this()});
    }

M products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.hpp => products/BellHybrid/apps/application-bell-settings/models/TemperatureUnitModel.hpp +2 -2
@@ 10,7 10,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app::bell_settings


@@ 28,7 28,7 @@ namespace app::bell_settings
    class TemperatureUnitModel : public AbstractTemperatureUnitModel
    {
      public:
        explicit TemperatureUnitModel(Application *app);
        explicit TemperatureUnitModel(ApplicationCommon *app);

        utils::temperature::Temperature::Unit get() const override;


M products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.cpp => products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.cpp +1 -1
@@ 18,7 18,7 @@

namespace app::bell_settings
{
    TimeUnitsModel::TimeUnitsModel(app::Application *app) : application(app)
    TimeUnitsModel::TimeUnitsModel(app::ApplicationCommon *app) : application(app)
    {}

    TimeUnitsModel::~TimeUnitsModel()

M products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.hpp => products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.hpp +3 -3
@@ 3,7 3,7 @@

#pragma once

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <apps-common/InternalModel.hpp>
#include <module-utils/Temperature.hpp>
#include <time/time_locale.hpp>


@@ 22,7 22,7 @@ namespace app::bell_settings
    class TimeUnitsModel : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
    {
      public:
        explicit TimeUnitsModel(app::Application *app);
        explicit TimeUnitsModel(app::ApplicationCommon *app);

        ~TimeUnitsModel();



@@ 45,7 45,7 @@ namespace app::bell_settings
        [[nodiscard]] auto getTemperatureUnit() -> utils::temperature::Temperature::Unit;

      private:
        app::Application *application{};
        app::ApplicationCommon *application{};
        gui::TimeSetListItem *timeSetListItem{};
        gui::TimeFormatSetListItem *timeFmtSetListItem{};
        gui::TemperatureUnitListItem *temperatureUnitListItem{};

M products/BellHybrid/apps/application-bell-settings/models/alarm_settings/SnoozeListItemProvider.cpp => products/BellHybrid/apps/application-bell-settings/models/alarm_settings/SnoozeListItemProvider.cpp +1 -1
@@ 5,7 5,7 @@
#include "SnoozeListItemProvider.hpp"
#include "SnoozeListItems.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <common/models/SnoozeSettingsModel.hpp>
#include <gui/widgets/ListViewEngine.hpp>


M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    BellSettingsBedtimeToneWindow::BellSettingsBedtimeToneWindow(app::Application *app, std::string name)
    BellSettingsBedtimeToneWindow::BellSettingsBedtimeToneWindow(app::ApplicationCommon *app, std::string name)
        : AppWindow(app, std::move(name))
    {
        buildInterface();

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsBedtimeToneWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class BellSettingsBedtimeToneWindow : public AppWindow
    {
      public:
        explicit BellSettingsBedtimeToneWindow(app::Application *app,
        explicit BellSettingsBedtimeToneWindow(app::ApplicationCommon *app,
                                               std::string name = gui::window::name::bellSettingsBedtimeTone);

        void buildInterface() override;

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.cpp +1 -1
@@ 14,7 14,7 @@
namespace gui
{
    BellSettingsFrontlightWindow::BellSettingsFrontlightWindow(
        app::Application *app,
        app::ApplicationCommon *app,
        std::unique_ptr<app::bell_settings::FrontlightWindowContract::Presenter> &&windowPresenter,
        std::string name)
        : AppWindow(app, std::move(name)), presenter{std::move(windowPresenter)}

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlight.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
    {
      public:
        explicit BellSettingsFrontlightWindow(
            app::Application *app,
            app::ApplicationCommon *app,
            std::unique_ptr<app::bell_settings::FrontlightWindowContract::Presenter> &&windowPresenter,
            std::string name = window::name::bellSettingsFrontlight);


M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    BellSettingsHomeViewWindow::BellSettingsHomeViewWindow(app::Application *app, std::string name)
    BellSettingsHomeViewWindow::BellSettingsHomeViewWindow(app::ApplicationCommon *app, std::string name)
        : AppWindow(app, std::move(name))
    {
        buildInterface();

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsHomeViewWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class BellSettingsHomeViewWindow : public AppWindow
    {
      public:
        explicit BellSettingsHomeViewWindow(app::Application *app,
        explicit BellSettingsHomeViewWindow(app::ApplicationCommon *app,
                                            std::string name = gui::window::name::bellSettingsHomeView);

        void buildInterface() override;

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{
    BellSettingsPrewakeUpWindow::BellSettingsPrewakeUpWindow(
        app::Application *app,
        app::ApplicationCommon *app,
        std::unique_ptr<app::bell_settings::PrewakeUpWindowContract::Presenter> &&windowPresenter,
        std::string name)
        : AppWindow(app, name), presenter{std::move(windowPresenter)}

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsPrewakeUpWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    {
      public:
        explicit BellSettingsPrewakeUpWindow(
            app::Application *app,
            app::ApplicationCommon *app,
            std::unique_ptr<app::bell_settings::PrewakeUpWindowContract::Presenter> &&windowPresenter,
            std::string name = gui::window::name::bellSettingsAlarmSettingsPrewakeUp);


M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.cpp +1 -1
@@ 7,7 7,7 @@

namespace gui
{
    BellSettingsTurnOffWindow::BellSettingsTurnOffWindow(app::Application *app, std::string name)
    BellSettingsTurnOffWindow::BellSettingsTurnOffWindow(app::ApplicationCommon *app, std::string name)
        : AppWindow(app, std::move(name))
    {
        buildInterface();

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsTurnOffWindow.hpp +1 -1
@@ 12,7 12,7 @@ namespace gui
    class BellSettingsTurnOffWindow : public AppWindow
    {
      public:
        explicit BellSettingsTurnOffWindow(app::Application *app,
        explicit BellSettingsTurnOffWindow(app::ApplicationCommon *app,
                                           std::string name = gui::window::name::bellSettingsTurnOff);

        void buildInterface() override;

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.cpp +2 -1
@@ 14,7 14,8 @@
namespace gui
{

    BellSettingsWindow::BellSettingsWindow(app::Application *app) : OptionWindow(app, gui::window::name::bellSettings)
    BellSettingsWindow::BellSettingsWindow(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::bellSettings)
    {
        addOptions(settingsOptionsList());
        buildInterface();

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class BellSettingsWindow : public OptionWindow
    {
      public:
        explicit BellSettingsWindow(app::Application *app);
        explicit BellSettingsWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> settingsOptionsList();

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{

    BellSettingsAdvancedWindow::BellSettingsAdvancedWindow(app::Application *app)
    BellSettingsAdvancedWindow::BellSettingsAdvancedWindow(app::ApplicationCommon *app)
        : OptionWindow(app, gui::window::name::bellSettingsAdvanced)
    {
        addOptions(settingsOptionsList());

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsAdvancedWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class BellSettingsAdvancedWindow : public OptionWindow
    {
      public:
        explicit BellSettingsAdvancedWindow(app::Application *app);
        explicit BellSettingsAdvancedWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> settingsOptionsList();

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.cpp +1 -1
@@ 13,7 13,7 @@
namespace gui
{
    BellSettingsTimeUnitsWindow::BellSettingsTimeUnitsWindow(
        app::Application *app,
        app::ApplicationCommon *app,
        std::unique_ptr<app::bell_settings::TimeUnitsWindowContract::Presenter> &&windowPresenter,
        std::string name)
        : AppWindow(app, name), presenter{std::move(windowPresenter)}

M products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/advanced/BellSettingsTimeUnitsWindow.hpp +1 -1
@@ 17,7 17,7 @@ namespace gui
    {
      public:
        explicit BellSettingsTimeUnitsWindow(
            app::Application *app,
            app::ApplicationCommon *app,
            std::unique_ptr<app::bell_settings::TimeUnitsWindowContract::Presenter> &&windowPresenter,
            std::string name = gui::window::name::bellSettingsTimeUnits);


M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.cpp +2 -2
@@ 7,7 7,7 @@
#include "models/alarm_settings/SnoozeListItemProvider.hpp"
#include "presenter/alarm_settings/SnoozePresenter.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <common/BellFinishedWindow.hpp>
#include <gui/input/InputEvent.hpp>
#include <widgets/SideListView.hpp>


@@ 16,7 16,7 @@ namespace gui
{

    BellSettingsAlarmSettingsSnoozeWindow::BellSettingsAlarmSettingsSnoozeWindow(
        app::Application *app, std::unique_ptr<app::bell_settings::SnoozePresenter> presenter)
        app::ApplicationCommon *app, std::unique_ptr<app::bell_settings::SnoozePresenter> presenter)
        : AppWindow(app, name), presenter{std::move(presenter)}
    {
        this->presenter->attach(this);

M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsSnoozeWindow.hpp +1 -1
@@ 15,7 15,7 @@ namespace gui
    {
      public:
        static constexpr auto name = "BellSettingsAlarmSettingsSnooze";
        BellSettingsAlarmSettingsSnoozeWindow(app::Application *app,
        BellSettingsAlarmSettingsSnoozeWindow(app::ApplicationCommon *app,
                                              std::unique_ptr<app::bell_settings::SnoozePresenter> presenter);

        void buildInterface() override;

M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp +2 -1
@@ 11,7 11,8 @@

namespace gui
{
    BellSettingsAlarmSettingsWindow::BellSettingsAlarmSettingsWindow(app::Application *app) : OptionWindow(app, name)
    BellSettingsAlarmSettingsWindow::BellSettingsAlarmSettingsWindow(app::ApplicationCommon *app)
        : OptionWindow(app, name)
    {
        addOptions(alarmSettingsOptionsList());
        buildInterface();

M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp +1 -1
@@ 14,7 14,7 @@ namespace gui
      public:
        static constexpr auto name = "BellSettingsAlarmSettingsWindow";

        explicit BellSettingsAlarmSettingsWindow(app::Application *app);
        explicit BellSettingsAlarmSettingsWindow(app::ApplicationCommon *app);

      private:
        std::list<Option> alarmSettingsOptionsList();

M products/BellHybrid/apps/common/CMakeLists.txt => products/BellHybrid/apps/common/CMakeLists.txt +1 -3
@@ 11,7 11,6 @@ target_include_directories(application-bell-common
target_sources(application-bell-common
    PRIVATE
        src/AlarmModel.cpp
        src/ApplicationBell.cpp
        src/TimeUtils.cpp
        src/popups/AlarmActivatedWindow.cpp
        src/SnoozeSettingsModel.cpp


@@ 19,10 18,9 @@ target_sources(application-bell-common
        src/BellSideListItemWithCallbacks.cpp
    PUBLIC
        include/common/BellFinishedWindow.hpp
        include/common/ApplicationBell.hpp
        include/common/TimeUtils.hpp
        include/common/models/AlarmModel.hpp
        include/common/models/AbstractAlarmModel.hpp
        include/common/models/AlarmModel.hpp
        include/common/models/SnoozeSettingsModel.hpp
        include/common/popups/AlarmActivatedWindow.hpp
        include/common/widgets/BellSideListItemWithCallbacks.hpp

M products/BellHybrid/apps/common/include/common/BellFinishedWindow.hpp => products/BellHybrid/apps/common/include/common/BellFinishedWindow.hpp +1 -1
@@ 40,7 40,7 @@ namespace gui

        static constexpr auto name = "BellFinishedWindow";

        explicit BellFinishedWindow(app::Application *app);
        explicit BellFinishedWindow(app::ApplicationCommon *app);

      private:
        void buildInterface() override;

M products/BellHybrid/apps/common/include/common/models/AlarmModel.hpp => products/BellHybrid/apps/common/include/common/models/AlarmModel.hpp +3 -3
@@ 13,7 13,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app


@@ 23,7 23,7 @@ namespace app
    class AlarmModel : public AbstractAlarmModel, public AsyncCallbackReceiver
    {
      public:
        explicit AlarmModel(Application *app);
        explicit AlarmModel(ApplicationCommon *app);

        bool isActive() const override;
        void setAlarmTime(time_t time) override;


@@ 47,7 47,7 @@ namespace app
        AlarmEventRecord generateDefaultAlarm() const;
        std::shared_ptr<AlarmEventRecord> getAlarmPtr() const;

        Application *app{};
        ApplicationCommon *app{};
        State state{State::Invalid};
        SingleEventRecord cachedRecord;
        std::uint32_t snoozeCount = 0;

M products/BellHybrid/apps/common/include/common/models/SnoozeSettingsModel.hpp => products/BellHybrid/apps/common/include/common/models/SnoozeSettingsModel.hpp +2 -2
@@ 8,7 8,7 @@

namespace app
{
    class Application;
    class ApplicationCommon;
}

namespace app::bell_settings


@@ 17,7 17,7 @@ namespace app::bell_settings
    class SnoozeSettingsModel : public AbstractSnoozeSettingsModel
    {
      public:
        explicit SnoozeSettingsModel(Application *app);
        explicit SnoozeSettingsModel(ApplicationCommon *app);
        void setSnooze(bool value) override;
        bool getSnooze() const override;


M products/BellHybrid/apps/common/include/common/popups/AlarmActivatedWindow.hpp => products/BellHybrid/apps/common/include/common/popups/AlarmActivatedWindow.hpp +1 -1
@@ 11,7 11,7 @@ namespace gui
    class AlarmActivatedWindow : public Dialog
    {
      public:
        explicit AlarmActivatedWindow(app::Application *app);
        explicit AlarmActivatedWindow(app::ApplicationCommon *app);
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
    };
} /* namespace gui */

M products/BellHybrid/apps/common/src/AlarmModel.cpp => products/BellHybrid/apps/common/src/AlarmModel.cpp +2 -2
@@ 3,7 3,7 @@

#include "models/AlarmModel.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <db/SystemSettings.hpp>
#include <module-db/Interface/AlarmEventRecord.hpp>
#include <time/dateCommon.hpp>


@@ 14,7 14,7 @@

namespace app
{
    AlarmModel::AlarmModel(Application *app) : app::AsyncCallbackReceiver{app}, app{app}
    AlarmModel::AlarmModel(ApplicationCommon *app) : app::AsyncCallbackReceiver{app}, app{app}
    {
        state = State::InitInProgress;
        settings.init(service::ServiceProxy{app->weak_from_this()});

M products/BellHybrid/apps/common/src/BellFinishedWindow.cpp => products/BellHybrid/apps/common/src/BellFinishedWindow.cpp +2 -2
@@ 2,7 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "common/BellFinishedWindow.hpp"
#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <gui/input/InputEvent.hpp>
#include <gui/widgets/Icon.hpp>
#include <i18n/i18n.hpp>


@@ 10,7 10,7 @@
namespace gui
{

    BellFinishedWindow::BellFinishedWindow(app::Application *app) : WindowWithTimer(app, name)
    BellFinishedWindow::BellFinishedWindow(app::ApplicationCommon *app) : WindowWithTimer(app, name)
    {
        buildInterface();


M products/BellHybrid/apps/common/src/SnoozeSettingsModel.cpp => products/BellHybrid/apps/common/src/SnoozeSettingsModel.cpp +2 -2
@@ 3,12 3,12 @@

#include "models/SnoozeSettingsModel.hpp"

#include <apps-common/Application.hpp>
#include <apps-common/ApplicationCommon.hpp>
#include <db/SystemSettings.hpp>

namespace app::bell_settings
{
    SnoozeSettingsModel::SnoozeSettingsModel(Application *app)
    SnoozeSettingsModel::SnoozeSettingsModel(ApplicationCommon *app)
    {
        settings.init(service::ServiceProxy{app->weak_from_this()});
    }

M products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp => products/BellHybrid/apps/common/src/popups/AlarmActivatedWindow.cpp +3 -2
@@ 1,14 1,15 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <common/popups/AlarmActivatedWindow.hpp>

#include <apps-common/messages/DialogMetadataMessage.hpp>
#include <common/TimeUtils.hpp>
#include <common/popups/AlarmActivatedWindow.hpp>
#include <popups/Popups.hpp>

namespace gui
{
    AlarmActivatedWindow::AlarmActivatedWindow(app::Application *app)
    AlarmActivatedWindow::AlarmActivatedWindow(app::ApplicationCommon *app)
        : Dialog(app, popup::window::alarm_activated_window)
    {}


R products/BellHybrid/apps/common/include/common/ApplicationBell.hpp => products/BellHybrid/apps/include/Application.hpp +3 -3
@@ 3,14 3,14 @@

#pragma once

#include <apps-common/Application.hpp>
#include <ApplicationCommon.hpp>

namespace app
{
    class ApplicationBell : public Application
    class Application : public ApplicationCommon
    {
      public:
        using Application::Application;
        using ApplicationCommon::ApplicationCommon;

      protected:
        void attachPopups(const std::vector<gui::popup::ID> &popupsList) override;

M products/PurePhone/CMakeLists.txt => products/PurePhone/CMakeLists.txt +2 -0
@@ 43,6 43,7 @@ set_target_properties(PurePhone

target_link_libraries(PurePhone
    PRIVATE
        app
        $<$<BOOL:${ENABLE_APP_ANTENNA}>:application-antenna>
        application-calculator
        application-calendar


@@ 109,6 110,7 @@ include(GitHubWorkerMessages)
github_message_standalone()
github_message_update()

add_subdirectory(apps)
add_subdirectory(services)
add_subdirectory(sys)


A products/PurePhone/apps/Application.cpp => products/PurePhone/apps/Application.cpp +4 -0
@@ 0,0 1,4 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <Application.hpp>

A products/PurePhone/apps/CMakeLists.txt => products/PurePhone/apps/CMakeLists.txt +19 -0
@@ 0,0 1,19 @@
add_library(app STATIC)

target_sources(app
    PRIVATE
        Application.cpp
    PUBLIC
        include/Application.hpp
)

target_include_directories(app
    PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)

target_link_libraries(app
    PRIVATE
        apps-common
)


A products/PurePhone/apps/include/Application.hpp => products/PurePhone/apps/include/Application.hpp +15 -0
@@ 0,0 1,15 @@
// 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 <ApplicationCommon.hpp>

namespace app
{
    class Application : public ApplicationCommon
    {
      public:
        using ApplicationCommon::ApplicationCommon;
    };
} // namespace app

M products/PurePhone/services/appmgr/ApplicationManager.cpp => products/PurePhone/services/appmgr/ApplicationManager.cpp +1 -1
@@ 500,7 500,7 @@ namespace app::manager

        if (targetApp->state() == ApplicationHandle::State::ACTIVE_FORGROUND ||
            targetApp->state() == ApplicationHandle::State::ACTIVE_BACKGROUND) {
            app::Application::requestAction(this, targetName, action.actionId, std::move(action.params));
            app::ApplicationCommon::requestAction(this, targetName, action.actionId, std::move(action.params));
            return ActionProcessStatus::Accepted;
        }
        return ActionProcessStatus::Skipped;

M products/PurePhone/test/test-settings/test-service-db-settings-api.cpp => products/PurePhone/test/test-settings/test-service-db-settings-api.cpp +6 -0
@@ 19,16 19,22 @@
#include "test-service-db-settings-testapps.hpp"
#include "Database.cpp"

#include <module-db/Databases/CalllogDB.hpp>
#include <module-db/Databases/CountryCodesDB.hpp>
#include <module-db/Databases/EventsDB.hpp>
#include <module-db/Databases/MultimediaFilesDB.hpp>
#include <module-db/Databases/NotesDB.hpp>
#include <module-db/Databases/NotificationsDB.hpp>
#include <module-db/Databases/SmsDB.hpp>
#include <module-db/Interface/AlarmEventRecord.hpp>
#include <module-db/Interface/CalllogRecord.hpp>
#include <module-db/Interface/CountryCodeRecord.hpp>
#include <module-db/Interface/MultimediaFilesRecord.hpp>
#include <module-db/Interface/NotesRecord.hpp>
#include <module-db/Interface/NotificationsRecord.hpp>
#include <module-db/Interface/SMSRecord.hpp>
#include <module-db/Interface/SMSTemplateRecord.hpp>
#include <module-db/Interface/ThreadRecord.hpp>
#include <service-db/agents/quotes/QuotesAgent.hpp>

TEST_CASE("SettingsApi")

M products/PurePhone/test/test-settings/test-service-db-settings-testapps.hpp => products/PurePhone/test/test-settings/test-service-db-settings-testapps.hpp +3 -0
@@ 1,6 1,9 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <iostream>
#include <mutex>

namespace app
{
    class UserPowerDownRequest : public sys::DataMessage

M products/PurePhone/test/test-settings/test-service-db-settings-testservices.hpp => products/PurePhone/test/test-settings/test-service-db-settings-testservices.hpp +1 -0
@@ 2,6 2,7 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include <memory>
#include <iostream>

namespace settings
{