mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[scripts] Remove EPSILON_BOOT_PROMPT flag
This commit is contained in:
9
Makefile
9
Makefile
@@ -31,7 +31,6 @@ endef
|
||||
.PHONY: info
|
||||
info:
|
||||
@echo "EPSILON_VERSION = $(EPSILON_VERSION)"
|
||||
@echo "EPSILON_BOOT_PROMPT = $(EPSILON_BOOT_PROMPT)"
|
||||
@echo "EPSILON_APPS = $(EPSILON_APPS)"
|
||||
@echo "EPSILON_I18N = $(EPSILON_I18N)"
|
||||
|
||||
@@ -81,13 +80,15 @@ all_objs = $(call object_for,$(all_src))
|
||||
# but allows correct yet optimal incremental builds.
|
||||
-include $(all_objs:.o=.d)
|
||||
|
||||
executables = epsilon epsilon.on-boarding test
|
||||
executables = epsilon epsilon.on-boarding epsilon.on-boarding.update epsilon.on-boarding.beta test
|
||||
|
||||
#define platform generic targets
|
||||
|
||||
$(BUILD_DIR)/epsilon.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_default_src))
|
||||
$(BUILD_DIR)/epsilon.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_default_src) $(apps_prompt_none_src))
|
||||
|
||||
$(BUILD_DIR)/epsilon.on-boarding.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_none_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.update.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_update_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.beta.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_beta_src))
|
||||
|
||||
$(BUILD_DIR)/test.$(EXE): $(BUILD_DIR)/quiz/src/tests_symbols.o $(call object_for,$(src) $(ion_device_dfu_relocated_src) $(tests) $(runner_src))
|
||||
|
||||
|
||||
@@ -30,8 +30,11 @@ app_src += $(addprefix apps/,\
|
||||
variable_box_empty_controller.cpp \
|
||||
)
|
||||
|
||||
apps_launch_on_boarding_src = apps/apps_container_launch_on_boarding.cpp
|
||||
apps_launch_default_src = apps/apps_container_launch_default.cpp
|
||||
apps_launch_on_boarding_src += apps/apps_container_launch_on_boarding.cpp
|
||||
apps_launch_default_src += apps/apps_container_launch_default.cpp
|
||||
apps_prompt_none_src += apps/apps_container_prompt_none.cpp
|
||||
apps_prompt_beta_src += apps/apps_container_prompt_beta.cpp
|
||||
apps_prompt_update_src += apps/apps_container_prompt_update.cpp
|
||||
|
||||
snapshots_declaration = $(foreach i,$(apps),$(i)::Snapshot m_snapshot$(subst :,,$(i))Snapshot;)
|
||||
apps_declaration = $(foreach i,$(apps),$(i) m_$(subst :,,$(i));)
|
||||
@@ -92,7 +95,7 @@ epsilon_src += $(addprefix apps/, \
|
||||
i18n.py \
|
||||
)
|
||||
|
||||
all_app_src = $(app_src) $(epsilon_src) $(apps_launch_on_boarding_src) $(apps_launch_default_src)
|
||||
all_app_src = $(app_src) $(epsilon_src) $(apps_launch_on_boarding_src) $(apps_launch_default_src) $(apps_prompt_none_src) $(apps_container_prompt_update) $(apps_prompt_beta_src)
|
||||
|
||||
$(call object_for,$(all_app_src)): $(BUILD_DIR)/apps/i18n.h
|
||||
$(call object_for,$(all_app_src)): $(BUILD_DIR)/python/port/genhdr/qstrdefs.generated.h
|
||||
|
||||
@@ -11,48 +11,6 @@ extern "C" {
|
||||
|
||||
using namespace Shared;
|
||||
|
||||
#if EPSILON_BOOT_PROMPT == EPSILON_BETA_PROMPT
|
||||
|
||||
static I18n::Message sPromptMessages[] = {
|
||||
I18n::Message::BetaVersion,
|
||||
I18n::Message::BetaVersionMessage1,
|
||||
I18n::Message::BetaVersionMessage2,
|
||||
I18n::Message::BetaVersionMessage3,
|
||||
I18n::Message::BlankMessage,
|
||||
I18n::Message::BetaVersionMessage4,
|
||||
I18n::Message::BetaVersionMessage5,
|
||||
I18n::Message::BetaVersionMessage6};
|
||||
|
||||
static KDColor sPromptColors[] = {
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorWhite,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
Palette::YellowDark};
|
||||
|
||||
#elif EPSILON_BOOT_PROMPT == EPSILON_UPDATE_PROMPT
|
||||
|
||||
static I18n::Message sPromptMessages[] = {
|
||||
I18n::Message::UpdateAvailable,
|
||||
I18n::Message::UpdateMessage1,
|
||||
I18n::Message::UpdateMessage2,
|
||||
I18n::Message::BlankMessage,
|
||||
I18n::Message::UpdateMessage3,
|
||||
I18n::Message::UpdateMessage4};
|
||||
|
||||
static KDColor sPromptColors[] = {
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorWhite,
|
||||
KDColorBlack,
|
||||
Palette::YellowDark};
|
||||
|
||||
#endif
|
||||
|
||||
AppsContainer * AppsContainer::sharedAppsContainer() {
|
||||
static AppsContainerStorage appsContainerStorage;
|
||||
return &appsContainerStorage;
|
||||
@@ -65,11 +23,7 @@ AppsContainer::AppsContainer() :
|
||||
m_globalContext(),
|
||||
m_variableBoxController(),
|
||||
m_examPopUpController(this),
|
||||
#if EPSILON_BOOT_PROMPT == EPSILON_BETA_PROMPT
|
||||
m_promptController(sPromptMessages, sPromptColors, 8),
|
||||
#elif EPSILON_BOOT_PROMPT == EPSILON_UPDATE_PROMPT
|
||||
m_promptController(sPromptMessages, sPromptColors, 6),
|
||||
#endif
|
||||
m_promptController(k_promptMessages, k_promptColors, k_promptNumberOfMessages),
|
||||
m_batteryTimer(),
|
||||
m_suspendTimer(),
|
||||
m_backlightDimmingTimer(),
|
||||
@@ -137,11 +91,10 @@ VariableBoxController * AppsContainer::variableBoxController() {
|
||||
void AppsContainer::suspend(bool checkIfOnOffKeyReleased) {
|
||||
resetShiftAlphaStatus();
|
||||
GlobalPreferences * globalPreferences = GlobalPreferences::sharedGlobalPreferences();
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
if (s_activeApp->snapshot()!= onBoardingAppSnapshot() && s_activeApp->snapshot() != hardwareTestAppSnapshot() && globalPreferences->showPopUp()) {
|
||||
s_activeApp->displayModalViewController(&m_promptController, 0.f, 0.f);
|
||||
// Display the prompt if it has a message to display
|
||||
if (promptController() != nullptr && s_activeApp->snapshot()!= onBoardingAppSnapshot() && s_activeApp->snapshot() != hardwareTestAppSnapshot() && globalPreferences->showPopUp()) {
|
||||
s_activeApp->displayModalViewController(promptController(), 0.f, 0.f);
|
||||
}
|
||||
#endif
|
||||
Ion::Power::suspend(checkIfOnOffKeyReleased);
|
||||
/* Ion::Power::suspend() completely shuts down the LCD controller. Therefore
|
||||
* the frame memory is lost. That's why we need to force a window redraw
|
||||
@@ -352,11 +305,12 @@ bool AppsContainer::updateAlphaLock() {
|
||||
return m_window.updateAlphaLock();
|
||||
}
|
||||
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
OnBoarding::PopUpController * AppsContainer::promptController() {
|
||||
if (k_promptNumberOfMessages == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
return &m_promptController;
|
||||
}
|
||||
#endif
|
||||
|
||||
void AppsContainer::redrawWindow() {
|
||||
m_window.redraw();
|
||||
|
||||
@@ -15,10 +15,7 @@
|
||||
#include "suspend_timer.h"
|
||||
#include "backlight_dimming_timer.h"
|
||||
#include "shared/global_context.h"
|
||||
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
#include "on_boarding/pop_up_controller.h"
|
||||
#endif
|
||||
|
||||
#include <ion/events.h>
|
||||
|
||||
@@ -47,9 +44,7 @@ public:
|
||||
void displayExamModePopUp(bool activate);
|
||||
void shutdownDueToLowBattery();
|
||||
void setShiftAlphaStatus(Ion::Events::ShiftAlphaStatus newStatus);
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
OnBoarding::PopUpController * promptController();
|
||||
#endif
|
||||
void redrawWindow();
|
||||
// Exam pop-up controller delegate
|
||||
void examDeactivatingPopUpIsDismissed() override;
|
||||
@@ -66,15 +61,16 @@ private:
|
||||
void resetShiftAlphaStatus();
|
||||
bool updateAlphaLock();
|
||||
|
||||
static I18n::Message k_promptMessages[];
|
||||
static KDColor k_promptColors[];
|
||||
static int k_promptNumberOfMessages;
|
||||
AppsWindow m_window;
|
||||
EmptyBatteryWindow m_emptyBatteryWindow;
|
||||
Shared::GlobalContext m_globalContext;
|
||||
MathToolbox m_mathToolbox;
|
||||
VariableBoxController m_variableBoxController;
|
||||
ExamPopUpController m_examPopUpController;
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
OnBoarding::PopUpController m_promptController;
|
||||
#endif
|
||||
BatteryTimer m_batteryTimer;
|
||||
SuspendTimer m_suspendTimer;
|
||||
BacklightDimmingTimer m_backlightDimmingTimer;
|
||||
|
||||
23
apps/apps_container_prompt_beta.cpp
Normal file
23
apps/apps_container_prompt_beta.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#include "apps_container.h"
|
||||
|
||||
I18n::Message AppsContainer::k_promptMessages[] = {
|
||||
I18n::Message::BetaVersion,
|
||||
I18n::Message::BetaVersionMessage1,
|
||||
I18n::Message::BetaVersionMessage2,
|
||||
I18n::Message::BetaVersionMessage3,
|
||||
I18n::Message::BlankMessage,
|
||||
I18n::Message::BetaVersionMessage4,
|
||||
I18n::Message::BetaVersionMessage5,
|
||||
I18n::Message::BetaVersionMessage6};
|
||||
|
||||
KDColor AppsContainer::k_promptColors[] = {
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorWhite,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
Palette::YellowDark};
|
||||
|
||||
int AppsContainer::k_promptNumberOfMessages = 8;
|
||||
8
apps/apps_container_prompt_none.cpp
Normal file
8
apps/apps_container_prompt_none.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
#include "apps_container.h"
|
||||
|
||||
I18n::Message AppsContainer::k_promptMessages[] = {};
|
||||
|
||||
KDColor AppsContainer::k_promptColors[] = {};
|
||||
|
||||
int AppsContainer::k_promptNumberOfMessages = 0;
|
||||
|
||||
19
apps/apps_container_prompt_update.cpp
Normal file
19
apps/apps_container_prompt_update.cpp
Normal file
@@ -0,0 +1,19 @@
|
||||
#include "apps_container.h"
|
||||
|
||||
I18n::Message AppsContainer::k_promptMessages[] = {
|
||||
I18n::Message::UpdateAvailable,
|
||||
I18n::Message::UpdateMessage1,
|
||||
I18n::Message::UpdateMessage2,
|
||||
I18n::Message::BlankMessage,
|
||||
I18n::Message::UpdateMessage3,
|
||||
I18n::Message::UpdateMessage4};
|
||||
|
||||
KDColor AppsContainer::k_promptColors[] = {
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorBlack,
|
||||
KDColorWhite,
|
||||
KDColorBlack,
|
||||
Palette::YellowDark};
|
||||
|
||||
int AppsContainer::k_promptNumberOfMessages = 6;
|
||||
@@ -14,10 +14,8 @@ public:
|
||||
void setLanguage(I18n::Language language) { m_language = language; }
|
||||
ExamMode examMode() const { return m_examMode; }
|
||||
void setExamMode(ExamMode examMode) { m_examMode = examMode; }
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
bool showPopUp() const { return m_showPopUp; }
|
||||
void setShowPopUp(bool showPopUp) { m_showPopUp = showPopUp; }
|
||||
#endif
|
||||
int brightnessLevel() const { return m_brightnessLevel; }
|
||||
void setBrightnessLevel(int brightnessLevel);
|
||||
constexpr static int NumberOfBrightnessStates = 5;
|
||||
@@ -25,15 +23,11 @@ private:
|
||||
GlobalPreferences() :
|
||||
m_language(I18n::Language::EN),
|
||||
m_examMode(ExamMode::Deactivate),
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
m_showPopUp(true),
|
||||
#endif
|
||||
m_brightnessLevel(Ion::Backlight::MaxBrightness) {}
|
||||
I18n::Language m_language;
|
||||
ExamMode m_examMode;
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
bool m_showPopUp;
|
||||
#endif
|
||||
int m_brightnessLevel;
|
||||
};
|
||||
|
||||
|
||||
@@ -12,11 +12,11 @@ LanguageController::LanguageController(Responder * parentResponder) :
|
||||
bool LanguageController::handleEvent(Ion::Events::Event event) {
|
||||
if (Shared::LanguageController::handleEvent(event)) {
|
||||
AppsContainer * appsContainer = AppsContainer::sharedAppsContainer();
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
Container::activeApp()->displayModalViewController(appsContainer->promptController(), 0.5f, 0.5f);
|
||||
#else
|
||||
appsContainer->switchTo(appsContainer->appSnapshotAtIndex(0));
|
||||
#endif
|
||||
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) {
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
namespace OnBoarding {
|
||||
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
|
||||
PopUpController::MessageViewWithSkip::MessageViewWithSkip(I18n::Message * messages, KDColor * colors, uint8_t numberOfMessages) :
|
||||
MessageView(messages, colors, numberOfMessages),
|
||||
m_skipView(KDFont::SmallFont, I18n::Message::Skip, 1.0f, 0.5f),
|
||||
@@ -64,6 +62,4 @@ bool PopUpController::handleEvent(Ion::Events::Event event) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
namespace OnBoarding {
|
||||
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
|
||||
class PopUpController : public ViewController {
|
||||
public:
|
||||
PopUpController(I18n::Message * messages, KDColor * colors, uint8_t numberOfMessages);
|
||||
@@ -33,8 +31,6 @@ private:
|
||||
MessageViewWithSkip m_messageViewWithSkip;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,6 +14,10 @@ app_src += $(addprefix apps/settings/,\
|
||||
sub_menu/preferences_controller.cpp \
|
||||
)
|
||||
|
||||
apps_prompt_none_src += apps/settings/main_controller_prompt_none.cpp
|
||||
apps_prompt_beta_src += apps/settings/main_controller_prompt_beta.cpp
|
||||
apps_prompt_update_src += apps/settings/main_controller_prompt_update.cpp
|
||||
|
||||
i18n_files += $(addprefix apps/settings/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
|
||||
@@ -7,45 +7,11 @@ using namespace Poincare;
|
||||
|
||||
namespace Settings {
|
||||
|
||||
const SettingsMessageTree angleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)};
|
||||
const SettingsMessageTree editionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
|
||||
const SettingsMessageTree floatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)};
|
||||
const SettingsMessageTree complexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
|
||||
const SettingsMessageTree examChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)};
|
||||
const SettingsMessageTree aboutChildren[3] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId)};
|
||||
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
const SettingsMessageTree menu[9] =
|
||||
#else
|
||||
const SettingsMessageTree menu[8] =
|
||||
#endif
|
||||
{SettingsMessageTree(I18n::Message::AngleUnit, angleChildren, 2),
|
||||
SettingsMessageTree(I18n::Message::DisplayMode, floatDisplayModeChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::EditionMode, editionModeChildren, 2),
|
||||
SettingsMessageTree(I18n::Message::ComplexFormat, complexFormatChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, examChildren, 1),
|
||||
#if EPSILON_BOOT_PROMPT == EPSILON_BETA_PROMPT
|
||||
SettingsMessageTree(I18n::Message::BetaPopUp),
|
||||
#elif EPSILON_BOOT_PROMPT == EPSILON_UPDATE_PROMPT
|
||||
SettingsMessageTree(I18n::Message::UpdatePopUp),
|
||||
#endif
|
||||
SettingsMessageTree(I18n::Message::About, aboutChildren, 3)};
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
const SettingsMessageTree model = SettingsMessageTree(I18n::Message::SettingsApp, menu, 9);
|
||||
#else
|
||||
const SettingsMessageTree model = SettingsMessageTree(I18n::Message::SettingsApp, menu, 8);
|
||||
#endif
|
||||
|
||||
MainController::MainController(Responder * parentResponder, InputEventHandlerDelegate * inputEventHandlerDelegate) :
|
||||
ViewController(parentResponder),
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
m_popUpCell(I18n::Message::Default, KDFont::LargeFont),
|
||||
#endif
|
||||
m_brightnessCell(I18n::Message::Default, KDFont::LargeFont),
|
||||
m_popUpCell(I18n::Message::Default, KDFont::LargeFont),
|
||||
m_selectableTableView(this),
|
||||
m_messageTreeModel((MessageTree *)&model),
|
||||
m_preferencesController(this),
|
||||
m_displayModeController(this, inputEventHandlerDelegate),
|
||||
m_languageController(this, 13),
|
||||
@@ -70,13 +36,8 @@ void MainController::didBecomeFirstResponder() {
|
||||
|
||||
bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
GlobalPreferences * globalPreferences = GlobalPreferences::sharedGlobalPreferences();
|
||||
if (m_messageTreeModel->children(selectedRow())->numberOfChildren() == 0) {
|
||||
#if EPSILON_BOOT_PROMPT == EPSILON_BETA_PROMPT
|
||||
if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::BetaPopUp) {
|
||||
#elif EPSILON_BOOT_PROMPT == EPSILON_UPDATE_PROMPT
|
||||
if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::UpdatePopUp) {
|
||||
#endif
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
if (model()->children(selectedRow())->numberOfChildren() == 0) {
|
||||
if (model()->children(selectedRow())->label() == promptMessage()) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
|
||||
globalPreferences->setShowPopUp(!globalPreferences->showPopUp());
|
||||
m_selectableTableView.reloadCellAtLocation(m_selectableTableView.selectedColumn(), m_selectableTableView.selectedRow());
|
||||
@@ -84,8 +45,7 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::Brightness) {
|
||||
if (model()->children(selectedRow())->label() == I18n::Message::Brightness) {
|
||||
if (event == Ion::Events::Right || event == Ion::Events::Left || event == Ion::Events::Plus || event == Ion::Events::Minus) {
|
||||
int delta = Ion::Backlight::MaxBrightness/GlobalPreferences::NumberOfBrightnessStates;
|
||||
int direction = (event == Ion::Events::Right || event == Ion::Events::Plus) ? delta : -delta;
|
||||
@@ -95,7 +55,7 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (m_messageTreeModel->children(selectedRow())->label() == I18n::Message::Language) {
|
||||
if (model()->children(selectedRow())->label() == I18n::Message::Language) {
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) {
|
||||
stackController()->push(&m_languageController);
|
||||
return true;
|
||||
@@ -105,27 +65,19 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
if (event == Ion::Events::OK || event == Ion::Events::EXE || event == Ion::Events::Right) {
|
||||
GenericSubController * subController = nullptr;
|
||||
switch (selectedRow()) {
|
||||
case 1:
|
||||
subController = &m_displayModeController;
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
assert(false);
|
||||
case 6:
|
||||
subController = &m_examModeController;
|
||||
break;
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
case 8:
|
||||
#else
|
||||
case 7:
|
||||
#endif
|
||||
subController = &m_aboutController;
|
||||
break;
|
||||
default:
|
||||
subController = &m_preferencesController;
|
||||
int rowIndex = selectedRow();
|
||||
if (rowIndex == 1) {
|
||||
subController = &m_displayModeController;
|
||||
} else if (rowIndex == 4 || rowIndex == 5) {
|
||||
assert(false);
|
||||
} else if (rowIndex == 6) {
|
||||
subController = &m_examModeController;
|
||||
} else if (rowIndex == 7 + hasPrompt()) {
|
||||
subController = &m_aboutController;
|
||||
} else {
|
||||
subController = &m_preferencesController;
|
||||
}
|
||||
subController->setMessageTreeModel(m_messageTreeModel->children(selectedRow()));
|
||||
subController->setMessageTreeModel(model()->children(selectedRow()));
|
||||
StackViewController * stack = stackController();
|
||||
stack->push(subController);
|
||||
return true;
|
||||
@@ -134,7 +86,7 @@ bool MainController::handleEvent(Ion::Events::Event event) {
|
||||
}
|
||||
|
||||
int MainController::numberOfRows() {
|
||||
return m_messageTreeModel->numberOfChildren();
|
||||
return model()->numberOfChildren();
|
||||
};
|
||||
|
||||
KDCoordinate MainController::rowHeight(int j) {
|
||||
@@ -156,11 +108,9 @@ HighlightCell * MainController::reusableCell(int index, int type) {
|
||||
return &m_cells[index];
|
||||
}
|
||||
assert(index == 0);
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
if (type == 2) {
|
||||
return &m_popUpCell;
|
||||
}
|
||||
#endif
|
||||
assert(type == 1);
|
||||
return &m_brightnessCell;
|
||||
}
|
||||
@@ -176,11 +126,9 @@ int MainController::typeAtLocation(int i, int j) {
|
||||
if (j == 4) {
|
||||
return 1;
|
||||
}
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
if (j == 7) {
|
||||
if (hasPrompt() && j == 7) {
|
||||
return 2;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -188,7 +136,7 @@ void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
GlobalPreferences * globalPreferences = GlobalPreferences::sharedGlobalPreferences();
|
||||
Preferences * preferences = Preferences::sharedPreferences();
|
||||
MessageTableCell * myCell = (MessageTableCell *)cell;
|
||||
myCell->setMessage(m_messageTreeModel->children(index)->label());
|
||||
myCell->setMessage(model()->children(index)->label());
|
||||
if (index == 4) {
|
||||
MessageTableCellWithGauge * myGaugeCell = (MessageTableCellWithGauge *)cell;
|
||||
GaugeView * myGauge = (GaugeView *)myGaugeCell->accessoryView();
|
||||
@@ -200,14 +148,12 @@ void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
static_cast<MessageTableCellWithChevronAndMessage *>(cell)->setSubtitle(I18n::LanguageNames[index]);
|
||||
return;
|
||||
}
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
if (index == 7) {
|
||||
if (hasPrompt() && index == 7) {
|
||||
MessageTableCellWithSwitch * mySwitchCell = (MessageTableCellWithSwitch *)cell;
|
||||
SwitchView * mySwitch = (SwitchView *)mySwitchCell->accessoryView();
|
||||
mySwitch->setState(globalPreferences->showPopUp());
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell;
|
||||
int childIndex = -1;
|
||||
switch (index) {
|
||||
@@ -224,7 +170,7 @@ void MainController::willDisplayCellForIndex(HighlightCell * cell, int index) {
|
||||
childIndex = (int)preferences->complexFormat();
|
||||
break;
|
||||
}
|
||||
I18n::Message message = childIndex >= 0 ? m_messageTreeModel->children(index)->children(childIndex)->label() : I18n::Message::Default;
|
||||
I18n::Message message = childIndex >= 0 ? model()->children(index)->children(childIndex)->label() : I18n::Message::Default;
|
||||
myTextCell->setSubtitle(message);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,18 +27,15 @@ public:
|
||||
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
|
||||
void viewWillAppear() override;
|
||||
private:
|
||||
static const SettingsMessageTree * model();
|
||||
StackViewController * stackController() const;
|
||||
#ifdef EPSILON_BOOT_PROMPT
|
||||
constexpr static int k_totalNumberOfCell = 9;
|
||||
MessageTableCellWithSwitch m_popUpCell;
|
||||
#else
|
||||
constexpr static int k_totalNumberOfCell = 8;
|
||||
#endif
|
||||
I18n::Message promptMessage() const;
|
||||
bool hasPrompt() const { return promptMessage() != I18n::Message::Default; }
|
||||
constexpr static int k_numberOfSimpleChevronCells = 7;
|
||||
MessageTableCellWithChevronAndMessage m_cells[k_numberOfSimpleChevronCells];
|
||||
MessageTableCellWithGauge m_brightnessCell;
|
||||
MessageTableCellWithSwitch m_popUpCell;
|
||||
SelectableTableView m_selectableTableView;
|
||||
MessageTree * m_messageTreeModel;
|
||||
PreferencesController m_preferencesController;
|
||||
DisplayModeController m_displayModeController;
|
||||
LanguageController m_languageController;
|
||||
|
||||
35
apps/settings/main_controller_prompt_beta.cpp
Normal file
35
apps/settings/main_controller_prompt_beta.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "main_controller.h"
|
||||
#include <apps/i18n.h>
|
||||
|
||||
namespace Settings {
|
||||
|
||||
constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)};
|
||||
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
|
||||
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)};
|
||||
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
|
||||
constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)};
|
||||
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, 2),
|
||||
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
|
||||
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 1),
|
||||
SettingsMessageTree(I18n::Message::BetaPopUp),
|
||||
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
|
||||
|
||||
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 9);
|
||||
|
||||
|
||||
I18n::Message MainController::promptMessage() const {
|
||||
return I18n::Message::BetaPopUp;
|
||||
}
|
||||
|
||||
const SettingsMessageTree * MainController::model() {
|
||||
return &s_model;
|
||||
}
|
||||
|
||||
}
|
||||
36
apps/settings/main_controller_prompt_none.cpp
Normal file
36
apps/settings/main_controller_prompt_none.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "main_controller.h"
|
||||
#include <apps/i18n.h>
|
||||
|
||||
namespace Settings {
|
||||
|
||||
// TODO: factorize most parts of the final models with main_controller_prompt_beta and main_controller_prompt_update
|
||||
constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)};
|
||||
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
|
||||
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)};
|
||||
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
|
||||
constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)};
|
||||
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, 2),
|
||||
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
|
||||
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 1),
|
||||
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
|
||||
|
||||
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 8);
|
||||
|
||||
|
||||
I18n::Message MainController::promptMessage() const {
|
||||
return I18n::Message::Default;
|
||||
}
|
||||
|
||||
const SettingsMessageTree * MainController::model() {
|
||||
return &s_model;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
40
apps/settings/main_controller_prompt_update.cpp
Normal file
40
apps/settings/main_controller_prompt_update.cpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "main_controller.h"
|
||||
#include <apps/i18n.h>
|
||||
|
||||
namespace Settings {
|
||||
#include "main_controller.h"
|
||||
#include <apps/i18n.h>
|
||||
|
||||
namespace Settings {
|
||||
|
||||
constexpr SettingsMessageTree s_modelAngleChildren[2] = {SettingsMessageTree(I18n::Message::Degres), SettingsMessageTree(I18n::Message::Radian)};
|
||||
constexpr SettingsMessageTree s_modelEditionModeChildren[2] = {SettingsMessageTree(I18n::Message::Edition2D), SettingsMessageTree(I18n::Message::EditionLinear)};
|
||||
constexpr SettingsMessageTree s_modelFloatDisplayModeChildren[3] = {SettingsMessageTree(I18n::Message::Decimal), SettingsMessageTree(I18n::Message::Scientific), SettingsMessageTree(I18n::Message::SignificantFigures)};
|
||||
constexpr SettingsMessageTree s_modelComplexFormatChildren[3] = {SettingsMessageTree(I18n::Message::Real), SettingsMessageTree(I18n::Message::Cartesian), SettingsMessageTree(I18n::Message::Polar)};
|
||||
constexpr SettingsMessageTree s_modelExamChildren[1] = {SettingsMessageTree(I18n::Message::ActivateExamMode)};
|
||||
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, 2),
|
||||
SettingsMessageTree(I18n::Message::DisplayMode, s_modelFloatDisplayModeChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::EditionMode, s_modelEditionModeChildren, 2),
|
||||
SettingsMessageTree(I18n::Message::ComplexFormat, s_modelComplexFormatChildren, 3),
|
||||
SettingsMessageTree(I18n::Message::Brightness),
|
||||
SettingsMessageTree(I18n::Message::Language),
|
||||
SettingsMessageTree(I18n::Message::ExamMode, s_modelExamChildren, 1),
|
||||
SettingsMessageTree(I18n::Message::UpdatePopUp),
|
||||
SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 3)};
|
||||
|
||||
constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 9);
|
||||
|
||||
|
||||
I18n::Message MainController::promptMessage() const {
|
||||
return I18n::Message::UpdatePopUp;
|
||||
|
||||
}
|
||||
|
||||
const SettingsMessageTree * MainController::model() {
|
||||
return &s_model;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
MODEL ?= n0110
|
||||
USE_LIBA = 1
|
||||
EXE = elf
|
||||
EPSILON_BOOT_PROMPT = update
|
||||
|
||||
BUILD_DIR = build/$(PLATFORM)/$(MODEL)
|
||||
|
||||
|
||||
@@ -71,7 +71,6 @@ $(BUILD_DIR)/bench.ram.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/shared/ram.ld
|
||||
$(BUILD_DIR)/bench.flash.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/$(MODEL)/internal_flash.ld
|
||||
$(BUILD_DIR)/bench.%.$(EXE): $(call object_for,$(src) $(bench_src) $(ion_device_dfu_xip_src))
|
||||
|
||||
ifeq ($(EPSILON_BOOT_PROMPT),update)
|
||||
.PHONY: %.two_binaries
|
||||
%.two_binaries: %.elf
|
||||
@echo "Building an internal and an external binary for $<"
|
||||
@@ -80,10 +79,6 @@ ifeq ($(EPSILON_BOOT_PROMPT),update)
|
||||
@echo "Padding $(basename $<).external.bin and $(basename $<).internal.bin"
|
||||
$(Q) printf "\xFF\xFF\xFF\xFF" >> $(basename $<).external.bin
|
||||
$(Q) printf "\xFF\xFF\xFF\xFF" >> $(basename $<).internal.bin
|
||||
else
|
||||
%_two_binaries:
|
||||
@echo "Error: two_binaries requires EPSILON_BOOT_PROMPT=update"
|
||||
endif
|
||||
|
||||
.PHONY: binpack
|
||||
binpack:
|
||||
@@ -97,8 +92,8 @@ binpack:
|
||||
make -j8 $(BUILD_DIR)/bench.ram.bin
|
||||
cp $(BUILD_DIR)/bench.ram.bin $(BUILD_DIR)/bench.flash.bin build/binpack
|
||||
make clean
|
||||
make -j8 EPSILON_BOOT_PROMPT=update $(BUILD_DIR)/epsilon.on-boarding.two_binaries
|
||||
cp $(BUILD_DIR)/epsilon.on-boarding.internal.bin $(BUILD_DIR)/epsilon.on-boarding.external.bin build/binpack
|
||||
make -j8 $(BUILD_DIR)/epsilon.on-boarding.update.two_binaries
|
||||
cp $(BUILD_DIR)/epsilon.on-boarding.update.internal.bin $(BUILD_DIR)/epsilon.on-boarding.update.external.bin build/binpack
|
||||
make clean
|
||||
cd build && for binary in flasher.light.bin bench.flash.bin bench.ram.bin epsilon.on-boarding.internal.bin epsilon.on-boarding.external.bin; do shasum -a 256 -b binpack/$${binary} > binpack/$${binary}.sha256;done
|
||||
cd build && tar cvfz binpack-`git rev-parse HEAD | head -c 7`.tgz binpack
|
||||
|
||||
Reference in New Issue
Block a user