[apps/settings] Factorize SettingsMessageTree model definition between

different targets (none/beta/update)
This commit is contained in:
Émilie Feral
2020-02-07 14:40:11 +01:00
committed by Léa Saviot
parent 672a1a3967
commit 541acb6a7c
7 changed files with 55 additions and 65 deletions

View File

@@ -7,6 +7,14 @@ using namespace Poincare;
namespace Settings {
constexpr SettingsMessageTree s_modelAngleChildren[3] = {SettingsMessageTree(I18n::Message::Degrees), SettingsMessageTree(I18n::Message::Radian), SettingsMessageTree(I18n::Message::Gradians)};
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)};
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
constexpr SettingsMessageTree s_modelExamChildren[2] = {SettingsMessageTree(I18n::Message::ActivateExamMode), SettingsMessageTree(I18n::Message::ActivateDutchExamMode)};
constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)};
MainController::MainController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate) :
ViewController(parentResponder),
m_brightnessCell(I18n::Message::Default, KDFont::LargeFont),
@@ -193,6 +201,10 @@ void MainController::viewWillAppear() {
m_selectableTableView.reloadData();
}
const SettingsMessageTree * MainController::model() {
return &s_model;
}
StackViewController * MainController::stackController() const {
return (StackViewController *)parentResponder();
}

View File

@@ -12,6 +12,15 @@
namespace Settings {
extern const SettingsMessageTree s_modelAngleChildren[3];
extern const SettingsMessageTree s_modelEditionModeChildren[2];
extern const SettingsMessageTree s_modelFloatDisplayModeChildren[4];
extern const SettingsMessageTree s_modelComplexFormatChildren[3];
extern const SettingsMessageTree s_modelFontChildren[2];
extern const SettingsMessageTree s_modelExamChildren[2];
extern const SettingsMessageTree s_modelAboutChildren[3];
extern const SettingsMessageTree s_model;
class MainController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource {
public:
MainController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate);

View File

@@ -3,34 +3,22 @@
namespace Settings {
constexpr SettingsMessageTree s_modelAngleChildren[3] = {SettingsMessageTree(I18n::Message::Degrees), SettingsMessageTree(I18n::Message::Radian), SettingsMessageTree(I18n::Message::Gradians)};
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)};
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
constexpr SettingsMessageTree s_modelExamChildren[2] = {SettingsMessageTree(I18n::Message::ActivateExamMode), SettingsMessageTree(I18n::Message::ActivateDutchExamMode)};
constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)};
constexpr SettingsMessageTree s_modelMenu[] =
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 3),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren),
SettingsMessageTree(I18n::Message::Brightness),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren, 2),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
SettingsMessageTree(I18n::Message::Language),
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 2),
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren),
SettingsMessageTree(I18n::Message::BetaPopUp),
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren)};
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 10);
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu);
I18n::Message MainController::promptMessage() const {
return I18n::Message::BetaPopUp;
}
const SettingsMessageTree * MainController::model() {
return &s_model;
}
}

View File

@@ -3,34 +3,21 @@
namespace Settings {
// TODO: factorize most parts of the final models with main_controller_prompt_beta and main_controller_prompt_update
constexpr SettingsMessageTree s_modelAngleChildren[3] = {SettingsMessageTree(I18n::Message::Degrees), SettingsMessageTree(I18n::Message::Radian), SettingsMessageTree(I18n::Message::Gradians)};
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)};
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
constexpr SettingsMessageTree s_modelExamChildren[2] = {SettingsMessageTree(I18n::Message::ActivateExamMode), SettingsMessageTree(I18n::Message::ActivateDutchExamMode)};
constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)};
constexpr SettingsMessageTree s_modelMenu[] =
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 3),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren),
SettingsMessageTree(I18n::Message::Brightness),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren, 2),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
SettingsMessageTree(I18n::Message::Language),
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 2),
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren),
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren)};
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 9);
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu);
I18n::Message MainController::promptMessage() const {
return I18n::Message::Default;
}
const SettingsMessageTree * MainController::model() {
return &s_model;
}
}

View File

@@ -3,34 +3,22 @@
namespace Settings {
constexpr SettingsMessageTree s_modelAngleChildren[3] = {SettingsMessageTree(I18n::Message::Degrees), SettingsMessageTree(I18n::Message::Radian), SettingsMessageTree(I18n::Message::Gradians)};
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[4] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::Engineering), SettingsMessageTree(I18n::Message::SignificantFigures)};
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
constexpr SettingsMessageTree s_modelFontChildren[2] = {SettingsMessageTree(I18n::Message::LargeFont), SettingsMessageTree(I18n::Message::SmallFont)};
constexpr SettingsMessageTree s_modelExamChildren[2] = {SettingsMessageTree(I18n::Message::ActivateExamMode), SettingsMessageTree(I18n::Message::ActivateDutchExamMode)};
constexpr SettingsMessageTree s_modelAboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)};
constexpr SettingsMessageTree s_modelMenu[] =
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren, 3),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 4),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
{SettingsMessageTree(I18n::Message::AngleUnit, s_modelAngleChildren),
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren),
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren),
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren),
SettingsMessageTree(I18n::Message::Brightness),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren, 2),
SettingsMessageTree(I18n::Message::FontSizes, s_modelFontChildren),
SettingsMessageTree(I18n::Message::Language),
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 2),
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren),
SettingsMessageTree(I18n::Message::UpdatePopUp),
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren)};
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 10);
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu);
I18n::Message MainController::promptMessage() const {
return I18n::Message::UpdatePopUp;
}
const SettingsMessageTree * MainController::model() {
return &s_model;
}
}

View File

@@ -7,8 +7,14 @@ namespace Settings {
class SettingsMessageTree : public MessageTree {
public:
constexpr SettingsMessageTree(I18n::Message label = I18n::Message::Default, const SettingsMessageTree * children = nullptr, int numberOfChildren = 0) :
MessageTree(label, numberOfChildren),
constexpr SettingsMessageTree(I18n::Message label = I18n::Message::Default) :
MessageTree(label, 0),
m_children(nullptr)
{
};
template <int N>
constexpr SettingsMessageTree(I18n::Message label, const SettingsMessageTree (&children)[N] = nullptr) :
MessageTree(label, N),
m_children(children)
{
};

View File

@@ -5,7 +5,7 @@
class MessageTree {
public:
constexpr MessageTree(I18n::Message label = (I18n::Message)0, int numberOfChildren = 0) :
constexpr MessageTree(I18n::Message label = (I18n::Message)0, const int numberOfChildren = 0) :
m_label(label),
m_numberOfChildren(numberOfChildren)
{
@@ -16,7 +16,7 @@ public:
bool isNull() const { return (m_label == (I18n::Message)0); }
protected:
I18n::Message m_label;
int m_numberOfChildren;
const int m_numberOfChildren;
};
#endif