diff --git a/apps/settings/sub_menu/preferences_controller.cpp b/apps/settings/sub_menu/preferences_controller.cpp index f335a2b32..1417a1c0a 100644 --- a/apps/settings/sub_menu/preferences_controller.cpp +++ b/apps/settings/sub_menu/preferences_controller.cpp @@ -130,6 +130,22 @@ Layout PreferencesController::layoutForPreferences(I18n::Message message) { return LayoutHelper::String(text, strlen(text), k_layoutFont); } + // Symbol controller + case I18n::Message::SymbolMultiplicationCross: // × and · aren't single characters, so they cannot be constructed into codepoints..? + { + const char * text = "×"; + return LayoutHelper::String(text, strlen(text), k_layoutFont); + } + case I18n::Message::SymbolMultiplicationMiddleDot: + { + const char * text = "·"; + return LayoutHelper::String(text, strlen(text), k_layoutFont); + } + case I18n::Message::SymbolMultiplicationStar: + return CodePointLayout::Builder('*', k_layoutFont); + case I18n::Message::SymbolMultiplicationAutoSymbol: + return CodePointLayout::Builder(' ', k_layoutFont); + default: assert(false); return Layout(); @@ -167,6 +183,8 @@ void PreferencesController::setPreferenceWithValueIndex(I18n::Message message, i preferences->setComplexFormat((Preferences::ComplexFormat)valueIndex); } else if (message == I18n::Message::LEDColor) { preferences->setColorOfLED((Preferences::LEDColor)valueIndex); + } else if (message == I18n::Message::SymbolMultiplication) { + preferences->setSymbolMultiplication((Preferences::SymbolMultiplication)valueIndex); } } @@ -187,6 +205,9 @@ int PreferencesController::valueIndexForPreference(I18n::Message message) { if (message == I18n::Message::LEDColor) { return (int)preferences->colorOfLED(); } + if (message == I18n::Message::SymbolMultiplication) { + return (int)preferences->symbolofMultiplication(); + } return 0; }