diff --git a/apps/settings/sub_menu/exam_mode_controller.cpp b/apps/settings/sub_menu/exam_mode_controller.cpp index 3c00bc174..49042b2ce 100644 --- a/apps/settings/sub_menu/exam_mode_controller.cpp +++ b/apps/settings/sub_menu/exam_mode_controller.cpp @@ -5,7 +5,6 @@ #include #include #include -#include using namespace Poincare; using namespace Shared; @@ -14,11 +13,10 @@ namespace Settings { ExamModeController::ExamModeController(Responder * parentResponder) : GenericSubController(parentResponder), - m_preferencesController(this) + m_preferencesController(this), + m_examModeCell(I18n::Message::Default, KDFont::LargeFont), + m_ledCell(KDFont::LargeFont, KDFont::SmallFont) { - for (int i = 0; i < k_totalNumberOfCell; i++) { - m_cells[i].setMessageFont(KDFont::LargeFont); - } } void ExamModeController::didEnterResponderChain(Responder * previousFirstResponder) { @@ -47,13 +45,23 @@ bool ExamModeController::handleEvent(Ion::Events::Event event) { } HighlightCell * ExamModeController::reusableCell(int index, int type) { - assert(type == 0); - assert(index >= 0 && index < k_totalNumberOfCell); - return &m_cells[index]; + assert(index == 0); + if (type == 0) { + return &m_ledCell; + } + return &m_examModeCell; } int ExamModeController::reusableCellCount(int type) { - return k_totalNumberOfCell; + switch (type) { + case 0: + return 1; + case 1: + return 1; + default: + assert(false); + return 0; + } } void ExamModeController::willDisplayCellForIndex(HighlightCell * cell, int index) { @@ -67,9 +75,21 @@ void ExamModeController::willDisplayCellForIndex(HighlightCell * cell, int index } if (thisLabel == I18n::Message::LEDColor) { MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell; - I18n::Message message = m_messageTreeModel->children(ledIndex)->children((int)preferences->colorOfLED())->label(); + I18n::Message message = (I18n::Message) m_messageTreeModel->children(index)->children((int)preferences->colorOfLED())->label(); myTextCell->setSubtitle(message); } } +int ExamModeController::typeAtLocation(int i, int j) { + switch (j) { + case 0: + return 0; + case 1: + return 1; + default: + assert(false); + return 0; + } +} + } diff --git a/apps/settings/sub_menu/exam_mode_controller.h b/apps/settings/sub_menu/exam_mode_controller.h index c475f76f4..de9b9f9ef 100644 --- a/apps/settings/sub_menu/exam_mode_controller.h +++ b/apps/settings/sub_menu/exam_mode_controller.h @@ -14,9 +14,10 @@ public: HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; + int typeAtLocation(int i, int j) override; private: - constexpr static int k_totalNumberOfCell = 2; - MessageTableCellWithBuffer m_cells[k_totalNumberOfCell]; + MessageTableCell m_examModeCell; + MessageTableCellWithChevronAndMessage m_ledCell; PreferencesController m_preferencesController; };