Files
Upsilon/apps/on_boarding/localization_controller.cpp
Gabriel Ozouf df6383d2d8 [apps/i18n] Added default country for languages
After choosing a language at onboarding, the country menu now has a
specific country selected by default (Spain for Spanish, Italy for
Italian...)
Default countries are specified in apps/language_preferences.csv

Change-Id: Ia6392aceb9bebf7e62a692c5a79eb8c4d7b71a9d
2020-11-04 15:11:45 +01:00

41 lines
1.2 KiB
C++

#include "localization_controller.h"
#include <algorithm>
#include <apps/apps_container.h>
#include <apps/global_preferences.h>
namespace OnBoarding {
int LocalizationController::indexOfCellToSelectOnReset() const {
return mode() == Mode::Language ?
0 :
IndexOfCountry(I18n::DefaultCountryForLanguage[static_cast<uint8_t>(GlobalPreferences::sharedGlobalPreferences()->language())]);
}
bool LocalizationController::handleEvent(Ion::Events::Event event) {
if (Shared::LocalizationController::handleEvent(event)) {
if (mode() == Mode::Language) {
setMode(Mode::Country);
viewWillAppear();
} else {
assert(mode() == Mode::Country);
AppsContainer * appsContainer = AppsContainer::sharedAppsContainer();
if (appsContainer->promptController()) {
Container::activeApp()->displayModalViewController(appsContainer->promptController(), 0.5f, 0.5f);
} else {
appsContainer->switchTo(appsContainer->appSnapshotAtIndex(0));
}
}
return true;
}
if (event == Ion::Events::Back) {
if (mode() == Mode::Country) {
setMode(Mode::Language);
viewWillAppear();
}
return true;
}
return false;
}
}