Add AMI screen

This commit is contained in:
2023-03-07 22:35:12 +01:00
parent d26339e265
commit 81b7a23a34
43 changed files with 1447 additions and 45 deletions

View File

@ -0,0 +1,10 @@
#include <gui/ami_screen/AMIPresenter.hpp>
#include <gui/ami_screen/AMIView.hpp>
#include "main.h"
AMIPresenter::AMIPresenter(AMIView &v) : view(v) {}
void AMIPresenter::activate() { view.setMission(model->getMission()); }
void AMIPresenter::deactivate() {}

View File

@ -0,0 +1,40 @@
#include "stw_defines.h"
#include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Color.hpp"
#include "touchgfx/TypedText.hpp"
#include <gui/ami_screen/AMIView.hpp>
AMIView::AMIView() {}
void AMIView::setupScreen() { AMIViewBase::setupScreen(); }
void AMIView::tearDownScreen() { AMIViewBase::tearDownScreen(); }
void AMIView::setMission(Mission mission) {
switch (mission) {
case MISSION_ACCEL:
currentMission.setTypedText(TypedText(T_ACCEL_HUGE));
break;
case MISSION_SKIDPAD:
currentMission.setTypedText(TypedText(T_SKIDPAD_HUGE));
break;
case MISSION_AUTOX:
currentMission.setTypedText(TypedText(T_AUTOX_HUGE));
break;
case MISSION_TRACKDRIVE:
currentMission.setTypedText(TypedText(T_TRACKDRIVE_HUGE));
break;
case MISSION_EBS:
currentMission.setTypedText(TypedText(T_EBS_HUGE));
break;
case MISSION_INSPECTION:
currentMission.setTypedText(TypedText(T_INSPECTION_HUGE));
break;
case MISSION_MANUAL:
case MISSION_NONE:
default:
currentMission.setTypedText(TypedText(T_INVALID_HUGE));
currentMission.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
break;
}
}

View File

@ -7,3 +7,7 @@ MissionSelectPresenter::MissionSelectPresenter(MissionSelectView &v)
void MissionSelectPresenter::activate() {}
void MissionSelectPresenter::deactivate() {}
void MissionSelectPresenter::confirmMission(Mission mission) {
model->setMission(mission);
}

View File

@ -1,3 +1,4 @@
#include "gui/missionselect_screen/MissionSelectPresenter.hpp"
#include "stw_defines.h"
#include "texts/TextKeysAndLanguages.hpp"
#include <gui/missionselect_screen/MissionSelectView.hpp>
@ -44,6 +45,15 @@ void MissionSelectView::decMission() {
setSelectedMission(static_cast<Mission>(mission_int));
}
void MissionSelectView::confirmMission() {
if (selectedMission == MISSION_NONE) {
// Can't confirm if we haven't selected a mission yet
return;
}
presenter->confirmMission(selectedMission);
application().gotoAMIScreenNoTransition();
}
void MissionSelectView::setSelectedMission(Mission mission) {
if (selected != nullptr) {
selected->setSelected(false);