From a4d79332ea9da7aefe102ebfd0c9b24cc2ce6b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Fri, 14 Sep 2018 17:59:14 +0200 Subject: [PATCH] [poincare] Fix Warning message exit on special keys We want the memory full warning to be exited only on OK, EXE, ... but Syntax warning (for instance) to be exited on any key pressed --- apps/apps_container.cpp | 2 +- escher/include/escher/app.h | 2 +- escher/include/escher/warning_controller.h | 3 +-- escher/src/app.cpp | 4 ++-- escher/src/warning_controller.cpp | 9 ++------- 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/apps/apps_container.cpp b/apps/apps_container.cpp index 050183f80..5136bf9b4 100644 --- a/apps/apps_container.cpp +++ b/apps/apps_container.cpp @@ -179,7 +179,7 @@ void AppsContainer::run() { if (!ExceptionRun(ecp)) { activeApp()->snapshot()->reset(); switchTo(appSnapshotAtIndex(0)); - activeApp()->displayWarning(I18n::Message::AppMemoryFull); + activeApp()->displayWarning(I18n::Message::AppMemoryFull, true); } Container::run(); switchTo(nullptr); diff --git a/escher/include/escher/app.h b/escher/include/escher/app.h index b86eeabfe..256e6924b 100644 --- a/escher/include/escher/app.h +++ b/escher/include/escher/app.h @@ -53,7 +53,7 @@ public: void displayModalViewController(ViewController * vc, float verticalAlignment, float horizontalAlignment, KDCoordinate topMargin = 0, KDCoordinate leftMargin = 0, KDCoordinate bottomMargin = 0, KDCoordinate rightMargin = 0); void dismissModalViewController(); - void displayWarning(I18n::Message warningMessage); + void displayWarning(I18n::Message warningMessage, bool specialExitKeys = false); const Container * container() const; uint8_t m_magic; // Poor man's RTTI diff --git a/escher/include/escher/warning_controller.h b/escher/include/escher/warning_controller.h index f89f9ffc6..a187d7263 100644 --- a/escher/include/escher/warning_controller.h +++ b/escher/include/escher/warning_controller.h @@ -9,8 +9,7 @@ class WarningController : public ViewController { public: WarningController(Responder * parentResponder, I18n::Message warningMessage); - void setLabel(I18n::Message message); - void setLabelAndSpecialExitKeys(I18n::Message message); + void setLabel(I18n::Message message, bool specialExitKeys); const char * title() override; View * view() override; bool handleEvent(Ion::Events::Event event) override; diff --git a/escher/src/app.cpp b/escher/src/app.cpp index 638cace85..59cbab7f3 100644 --- a/escher/src/app.cpp +++ b/escher/src/app.cpp @@ -96,8 +96,8 @@ void App::dismissModalViewController() { m_modalViewController.dismissModalViewController(); } -void App::displayWarning(I18n::Message warningMessage) { - m_warningController.setLabelAndSpecialExitKeys(warningMessage); +void App::displayWarning(I18n::Message warningMessage, bool specialExitKeys) { + m_warningController.setLabel(warningMessage, specialExitKeys); m_modalViewController.displayModalViewController(&m_warningController, 0.5f, 0.5f); } diff --git a/escher/src/warning_controller.cpp b/escher/src/warning_controller.cpp index cd36ec22f..5d9936d19 100644 --- a/escher/src/warning_controller.cpp +++ b/escher/src/warning_controller.cpp @@ -36,14 +36,9 @@ WarningController::WarningController(Responder * parentResponder, I18n::Message { } -void WarningController::setLabel(I18n::Message label) { +void WarningController::setLabel(I18n::Message label, bool specialExitKeys) { m_contentView.setLabel(label); - m_exitOnOKBackEXE = false; -} - -void WarningController::setLabelAndSpecialExitKeys(I18n::Message message) { - setLabel(message); - m_exitOnOKBackEXE = true; + m_exitOnOKBackEXE = specialExitKeys; } const char * WarningController::title() {