From 64e7057d5055969729c845d8e814b0deeb9c9acf Mon Sep 17 00:00:00 2001 From: Gabriel Ozouf Date: Fri, 25 Sep 2020 11:52:04 +0200 Subject: [PATCH] [apps/on_boarding] Remember language choice When choosing a language and then pressing back from the country menu to get back to the language menu, the previously selected language remains selected. Change-Id: I018c51cce09d47b15bb4864c135d381a94b2a72f --- apps/on_boarding/localization_controller.cpp | 2 +- apps/settings/sub_menu/localization_controller.cpp | 2 +- apps/shared/localization_controller.cpp | 5 +++++ apps/shared/localization_controller.h | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/on_boarding/localization_controller.cpp b/apps/on_boarding/localization_controller.cpp index 059d03a28..91f8b81cd 100644 --- a/apps/on_boarding/localization_controller.cpp +++ b/apps/on_boarding/localization_controller.cpp @@ -7,7 +7,7 @@ namespace OnBoarding { int LocalizationController::indexOfCellToSelectOnReset() const { return mode() == Mode::Language ? - 0 : + Shared::LocalizationController::indexOfCellToSelectOnReset() : IndexOfCountry(I18n::DefaultCountryForLanguage[static_cast(GlobalPreferences::sharedGlobalPreferences()->language())]); } diff --git a/apps/settings/sub_menu/localization_controller.cpp b/apps/settings/sub_menu/localization_controller.cpp index 5088289db..047fee4a7 100644 --- a/apps/settings/sub_menu/localization_controller.cpp +++ b/apps/settings/sub_menu/localization_controller.cpp @@ -6,7 +6,7 @@ namespace Settings { int LocalizationController::indexOfCellToSelectOnReset() const { return mode() == Mode::Language ? - static_cast(GlobalPreferences::sharedGlobalPreferences()->language()) : + Shared::LocalizationController::indexOfCellToSelectOnReset() : IndexOfCountry(GlobalPreferences::sharedGlobalPreferences()->country()); } diff --git a/apps/shared/localization_controller.cpp b/apps/shared/localization_controller.cpp index 781bd1070..fc655badf 100644 --- a/apps/shared/localization_controller.cpp +++ b/apps/shared/localization_controller.cpp @@ -142,6 +142,11 @@ void LocalizationController::setMode(LocalizationController::Mode mode) { m_contentView.modeHasChanged(); } +int LocalizationController::indexOfCellToSelectOnReset() const { + assert(mode() == Mode::Language); + return static_cast(GlobalPreferences::sharedGlobalPreferences()->language()); +} + const char * LocalizationController::title() { if (mode() == Mode::Language) { return I18n::translate(I18n::Message::Language); diff --git a/apps/shared/localization_controller.h b/apps/shared/localization_controller.h index e0dce2286..c011df59e 100644 --- a/apps/shared/localization_controller.h +++ b/apps/shared/localization_controller.h @@ -22,7 +22,7 @@ public: Mode mode() const { return m_mode; } void setMode(Mode mode); - virtual int indexOfCellToSelectOnReset() const = 0; + virtual int indexOfCellToSelectOnReset() const; virtual bool shouldDisplayTitle() const = 0; bool shouldDisplayWarning() const { return mode() == Mode::Country; }