diff --git a/Makefile b/Makefile index baa2d3734..82040ffdf 100644 --- a/Makefile +++ b/Makefile @@ -49,6 +49,7 @@ info: @echo "BUILD_DIR = $(BUILD_DIR)" @echo "PLATFORM" = $(PLATFORM) @echo "DEBUG" = $(DEBUG) + @echo "LEDS_CHOICE" = $(LEDS_CHOICE) @echo "EPSILON_GETOPT" = $(EPSILON_GETOPT) @echo "ESCHER_LOG_EVENTS_BINARY" = $(ESCHER_LOG_EVENTS_BINARY) @echo "QUIZ_USE_CONSOLE" = $(QUIZ_USE_CONSOLE) diff --git a/apps/exam_mode_configuration.h b/apps/exam_mode_configuration.h index af8a8e960..695c2b249 100644 --- a/apps/exam_mode_configuration.h +++ b/apps/exam_mode_configuration.h @@ -8,7 +8,11 @@ namespace ExamModeConfiguration { // Settings menu +#if LEDS_CHOICE extern const Shared::SettingsMessageTree s_modelExamChildren[3]; +#else +extern const Shared::SettingsMessageTree s_modelExamChildren[2]; +#endif int numberOfAvailableExamMode(); GlobalPreferences::ExamMode examModeAtIndex(int index); I18n::Message examModeActivationMessage(int index); diff --git a/apps/exam_mode_configuration_non_official.cpp b/apps/exam_mode_configuration_non_official.cpp index aceecdad6..01307ecec 100644 --- a/apps/exam_mode_configuration_non_official.cpp +++ b/apps/exam_mode_configuration_non_official.cpp @@ -2,12 +2,20 @@ using namespace Poincare; -constexpr Shared::SettingsMessageTree s_ledColorChildren[] = {Shared::SettingsMessageTree(I18n::Message::ColorRed), Shared::SettingsMessageTree(I18n::Message::ColorWhite), Shared::SettingsMessageTree(I18n::Message::ColorGreen), Shared::SettingsMessageTree(I18n::Message::ColorBlue), Shared::SettingsMessageTree(I18n::Message::ColorYellow), Shared::SettingsMessageTree(I18n::Message::ColorPurple), Shared::SettingsMessageTree(I18n::Message::ColorOrange)}; constexpr Shared::SettingsMessageTree s_examModeMode[] = {Shared::SettingsMessageTree(I18n::Message::ExamModeModeStandard), Shared::SettingsMessageTree(I18n::Message::ExamModeModeNoSym), Shared::SettingsMessageTree(I18n::Message::ExamModeModeNoSymNoText)}; +#if LEDS_CHOICE +constexpr Shared::SettingsMessageTree s_ledColorChildren[] = {Shared::SettingsMessageTree(I18n::Message::ColorRed), Shared::SettingsMessageTree(I18n::Message::ColorWhite), Shared::SettingsMessageTree(I18n::Message::ColorGreen), Shared::SettingsMessageTree(I18n::Message::ColorBlue), Shared::SettingsMessageTree(I18n::Message::ColorYellow), Shared::SettingsMessageTree(I18n::Message::ColorPurple), Shared::SettingsMessageTree(I18n::Message::ColorOrange)}; constexpr Shared::SettingsMessageTree ExamModeConfiguration::s_modelExamChildren[] = {Shared::SettingsMessageTree(I18n::Message::LEDColor, s_ledColorChildren), Shared::SettingsMessageTree(I18n::Message::ExamModeMode, s_examModeMode), Shared::SettingsMessageTree(I18n::Message::ActivateExamMode)}; +#else +constexpr Shared::SettingsMessageTree ExamModeConfiguration::s_modelExamChildren[] = {Shared::SettingsMessageTree(I18n::Message::ExamModeMode, s_examModeMode), Shared::SettingsMessageTree(I18n::Message::ActivateExamMode)}; +#endif int ExamModeConfiguration::numberOfAvailableExamMode() { +#if LEDS_CHOICE return 3; +#else + return 2; +#endif } GlobalPreferences::ExamMode ExamModeConfiguration::examModeAtIndex(int index) { diff --git a/apps/settings/sub_menu/exam_mode_controller.cpp b/apps/settings/sub_menu/exam_mode_controller.cpp index c88c95575..e47766266 100644 --- a/apps/settings/sub_menu/exam_mode_controller.cpp +++ b/apps/settings/sub_menu/exam_mode_controller.cpp @@ -19,7 +19,9 @@ ExamModeController::ExamModeController(Responder * parentResponder) : m_cell{}, m_ledController(this), m_examModeModeController(this), +#if LEDS_CHOICE m_ledColorCell(KDFont::LargeFont, KDFont::SmallFont), +#endif m_examModeCell(KDFont::LargeFont, KDFont::SmallFont) { for (int i = 0; i < k_maxNumberOfCells; i++) { @@ -30,17 +32,21 @@ ExamModeController::ExamModeController(Responder * parentResponder) : bool ExamModeController::handleEvent(Ion::Events::Event event) { if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) { - if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::LEDColor) { - (&m_ledController)->setMessageTreeModel(m_messageTreeModel->children(selectedRow())); - StackViewController * stack = stackController(); - stack->push(&m_ledController); - return true; - } else if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::ExamModeMode) { + if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::ExamModeMode) { (&m_examModeModeController)->setMessageTreeModel(m_messageTreeModel->children(selectedRow())); StackViewController * stack = stackController(); stack->push(&m_examModeModeController); return true; - } else { + } +#if LEDS_CHOICE + else if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::LEDColor) { + (&m_ledController)->setMessageTreeModel(m_messageTreeModel->children(selectedRow())); + StackViewController * stack = stackController(); + stack->push(&m_ledController); + return true; + } +#endif + else { AppsContainer::sharedAppsContainer()->displayExamModePopUp(examMode()); return true; } @@ -73,9 +79,11 @@ int ExamModeController::numberOfRows() const { HighlightCell * ExamModeController::reusableCell(int index, int type) { assert(type == 0); assert(index >= 0 && index < 3); +#if LEDS_CHOICE if (m_messageTreeModel->children(index)->label() == I18n::Message::LEDColor) { return &m_ledColorCell; } +#endif if (m_messageTreeModel->children(index)->label() == I18n::Message::ExamModeMode) { return &m_examModeCell; } @@ -99,11 +107,13 @@ void ExamModeController::willDisplayCellForIndex(HighlightCell * cell, int index MessageTableCell * myCell = (MessageTableCell *)cell; myCell->setMessage(I18n::Message::ExamModeActive); } +#if LEDS_CHOICE if (thisLabel == I18n::Message::LEDColor) { MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell; I18n::Message message = (I18n::Message) m_messageTreeModel->children(index)->children((int)preferences->colorOfLED())->label(); myTextCell->setSubtitle(message); } +#endif if (thisLabel == I18n::Message::ExamModeMode) { MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell; I18n::Message message = (I18n::Message) m_messageTreeModel->children(index)->children((uint8_t)GlobalPreferences::sharedGlobalPreferences()->tempExamMode() - 1)->label(); diff --git a/apps/settings/sub_menu/exam_mode_controller.h b/apps/settings/sub_menu/exam_mode_controller.h index f614e025f..e81563da3 100644 --- a/apps/settings/sub_menu/exam_mode_controller.h +++ b/apps/settings/sub_menu/exam_mode_controller.h @@ -30,7 +30,9 @@ private: MessageTableCell m_cell[k_maxNumberOfCells]; PreferencesController m_ledController; PreferencesController m_examModeModeController; +#if LEDS_CHOICE MessageTableCellWithChevronAndMessage m_ledColorCell; +#endif MessageTableCellWithChevronAndMessage m_examModeCell; }; diff --git a/apps/settings/sub_menu/preferences_controller.cpp b/apps/settings/sub_menu/preferences_controller.cpp index d5603c290..c0b4b973d 100644 --- a/apps/settings/sub_menu/preferences_controller.cpp +++ b/apps/settings/sub_menu/preferences_controller.cpp @@ -267,9 +267,11 @@ int PreferencesController::valueIndexForPreference(I18n::Message message) const if (message == I18n::Message::ComplexFormat) { return (int)preferences->complexFormat(); } +#if LEDS_CHOICE if (message == I18n::Message::LEDColor) { return (int)preferences->colorOfLED(); } +#endif if (message == I18n::Message::SymbolMultiplication) { return (int)preferences->symbolofMultiplication(); } diff --git a/build/config.mak b/build/config.mak index 2d0c1d60f..184b09252 100644 --- a/build/config.mak +++ b/build/config.mak @@ -2,6 +2,7 @@ PLATFORM ?= device DEBUG ?= 0 +LEDS_CHOICE ?= 0 include build/defaults.mak include build/platform.$(PLATFORM).mak @@ -26,6 +27,7 @@ endif include build/toolchain.$(TOOLCHAIN).mak SFLAGS += -DDEBUG=$(DEBUG) +SFLAGS += -DLEDS_CHOICE=$(LEDS_CHOICE) ifdef USERNAME SFLAGS += -DUSERNAME="$(USERNAME)" endif