From c2e45b07992bce2ed817bc09b8cecf7ed56f23a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Ta=C5=84ski?= Date: Fri, 2 Jul 2021 15:44:05 +0200 Subject: [PATCH] [EGD-7024] Keep the state of SMS on phone lock The SMS is not deleted on manual or automatic phone lock. --- .../windows/NewMessage.cpp | 8 +++++++- .../windows/NewMessage.hpp | 4 ++-- .../windows/SMSThreadViewWindow.cpp | 2 +- .../windows/SMSThreadViewWindow.hpp | 2 +- .../windows/NoteEditWindow.cpp | 2 +- .../windows/NoteEditWindow.hpp | 2 +- .../windows/PhonebookContactDetails.cpp | 2 +- .../windows/PhonebookContactDetails.hpp | 4 ++-- .../windows/AddDeviceWindow.cpp | 2 +- .../windows/AddDeviceWindow.hpp | 2 +- module-apps/apps-common/Application.cpp | 20 +++++++++++++------ module-apps/apps-common/Application.hpp | 9 ++++++++- .../apps-common/messages/AppMessage.hpp | 10 ++++++++-- .../apps-common/popups/WindowWithTimer.cpp | 2 +- .../apps-common/popups/WindowWithTimer.hpp | 2 +- .../apps-common/windows/OptionWindow.cpp | 2 +- .../apps-common/windows/OptionWindow.hpp | 2 +- module-gui/gui/widgets/Window.cpp | 2 +- module-gui/gui/widgets/Window.hpp | 10 ++++++++-- 19 files changed, 61 insertions(+), 28 deletions(-) diff --git a/module-apps/application-messages/windows/NewMessage.cpp b/module-apps/application-messages/windows/NewMessage.cpp index 2ded3f8ac..f34444108 100644 --- a/module-apps/application-messages/windows/NewMessage.cpp +++ b/module-apps/application-messages/windows/NewMessage.cpp @@ -290,12 +290,18 @@ namespace gui setFocusItem(body); } - void NewMessageWindow::onClose() + void NewMessageWindow::onClose(CloseReason reason) { if (message->getText().empty()) { // Nothing to do if text is empty. return; } + + if (reason == CloseReason::PhoneLock) { + memento->setState(message); + message->clear(); + return; + } if (const auto handled = handleMessageText(); !handled) { message->clear(); } diff --git a/module-apps/application-messages/windows/NewMessage.hpp b/module-apps/application-messages/windows/NewMessage.hpp index 75b48e8af..53255d1fb 100644 --- a/module-apps/application-messages/windows/NewMessage.hpp +++ b/module-apps/application-messages/windows/NewMessage.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -23,7 +23,7 @@ namespace gui bool onInput(const InputEvent &inputEvent) override; void onBeforeShow(ShowMode mode, SwitchData *data) override; void buildInterface() override; - void onClose() override; + void onClose(CloseReason reason) override; private: bool selectContact(); diff --git a/module-apps/application-messages/windows/SMSThreadViewWindow.cpp b/module-apps/application-messages/windows/SMSThreadViewWindow.cpp index be2910c92..aac45f0d6 100644 --- a/module-apps/application-messages/windows/SMSThreadViewWindow.cpp +++ b/module-apps/application-messages/windows/SMSThreadViewWindow.cpp @@ -93,7 +93,7 @@ namespace gui return AppWindow::onInput(inputEvent); } - void SMSThreadViewWindow::onClose() + void SMSThreadViewWindow::onClose([[maybe_unused]] CloseReason reason) { smsModel->handleDraftMessage(); } diff --git a/module-apps/application-messages/windows/SMSThreadViewWindow.hpp b/module-apps/application-messages/windows/SMSThreadViewWindow.hpp index fb1570a92..ce6c81d2c 100644 --- a/module-apps/application-messages/windows/SMSThreadViewWindow.hpp +++ b/module-apps/application-messages/windows/SMSThreadViewWindow.hpp @@ -29,7 +29,7 @@ namespace gui bool onInput(const InputEvent &inputEvent) override; void onBeforeShow(ShowMode mode, SwitchData *data) override; - void onClose() override; + void onClose(CloseReason reason) override; bool onDatabaseMessage(sys::Message *msgl) override; void rebuild() override; void buildInterface() override; diff --git a/module-apps/application-notes/windows/NoteEditWindow.cpp b/module-apps/application-notes/windows/NoteEditWindow.cpp index a06240eff..ac45ae461 100644 --- a/module-apps/application-notes/windows/NoteEditWindow.cpp +++ b/module-apps/application-notes/windows/NoteEditWindow.cpp @@ -120,7 +120,7 @@ namespace app::notes setNoteText(notesRecord->snippet); } - void NoteEditWindow::onClose() + void NoteEditWindow::onClose([[maybe_unused]] CloseReason reason) { if (presenter->isAutoSaveApproved()) { saveNote(); diff --git a/module-apps/application-notes/windows/NoteEditWindow.hpp b/module-apps/application-notes/windows/NoteEditWindow.hpp index c3f7fa2b3..aeed81858 100644 --- a/module-apps/application-notes/windows/NoteEditWindow.hpp +++ b/module-apps/application-notes/windows/NoteEditWindow.hpp @@ -24,7 +24,7 @@ namespace app::notes ~NoteEditWindow() noexcept override; void onBeforeShow(gui::ShowMode mode, gui::SwitchData *data) override; - void onClose() override; + void onClose(CloseReason reason) override; bool onInput(const gui::InputEvent &inputEvent) override; void rebuild() override; diff --git a/module-apps/application-phonebook/windows/PhonebookContactDetails.cpp b/module-apps/application-phonebook/windows/PhonebookContactDetails.cpp index 75dce1cea..9e316fdf4 100644 --- a/module-apps/application-phonebook/windows/PhonebookContactDetails.cpp +++ b/module-apps/application-phonebook/windows/PhonebookContactDetails.cpp @@ -46,7 +46,7 @@ namespace gui erase(); } - void PhonebookContactDetails::onClose() + void PhonebookContactDetails::onClose([[maybe_unused]] CloseReason reason) { contactDetailsModel->clearData(); } diff --git a/module-apps/application-phonebook/windows/PhonebookContactDetails.hpp b/module-apps/application-phonebook/windows/PhonebookContactDetails.hpp index 3f8a64035..55bdcfa9c 100644 --- a/module-apps/application-phonebook/windows/PhonebookContactDetails.hpp +++ b/module-apps/application-phonebook/windows/PhonebookContactDetails.hpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once @@ -22,7 +22,7 @@ namespace gui auto onInput(const InputEvent &inputEvent) -> bool override; void onBeforeShow(ShowMode mode, SwitchData *data) override; auto handleSwitchData(SwitchData *data) -> bool override; - void onClose() override; + void onClose(CloseReason reason) override; void rebuild() override; void buildInterface() override; void destroyInterface() override; diff --git a/module-apps/application-settings-new/windows/AddDeviceWindow.cpp b/module-apps/application-settings-new/windows/AddDeviceWindow.cpp index 8d63b466d..9e9e29aee 100644 --- a/module-apps/application-settings-new/windows/AddDeviceWindow.cpp +++ b/module-apps/application-settings-new/windows/AddDeviceWindow.cpp @@ -30,7 +30,7 @@ namespace gui refreshOptionsList(); } - void AddDeviceWindow::onClose() + void AddDeviceWindow::onClose([[maybe_unused]] CloseReason reason) { bluetoothSettingsModel->stopScan(); } diff --git a/module-apps/application-settings-new/windows/AddDeviceWindow.hpp b/module-apps/application-settings-new/windows/AddDeviceWindow.hpp index 6ebedd260..65ba63459 100644 --- a/module-apps/application-settings-new/windows/AddDeviceWindow.hpp +++ b/module-apps/application-settings-new/windows/AddDeviceWindow.hpp @@ -17,7 +17,7 @@ namespace gui private: void onBeforeShow(ShowMode mode, SwitchData *data) override; - void onClose() override; + void onClose(CloseReason reason) override; auto buildOptionsList() -> std::list