steering-wheel/TouchGFX/gui/src/missionselect_screen/MissionSelectPresenter.cpp

49 lines
1.3 KiB
C++

#include "gui/common/FrontendApplication.hpp"
#include "touchgfx/Application.hpp"
#include <gui/missionselect_screen/MissionSelectPresenter.hpp>
#include <gui/missionselect_screen/MissionSelectView.hpp>
#include "stw_defines.h"
#include "vehicle_state.h"
MissionSelectPresenter::MissionSelectPresenter(MissionSelectView &v)
: view(v) {}
void MissionSelectPresenter::activate() {
initialMission = vehicle_state.active_mission;
}
void MissionSelectPresenter::deactivate() {}
void MissionSelectPresenter::vehicleStateUpdated() {
FrontendApplication *app =
static_cast<FrontendApplication *>(FrontendApplication::getInstance());
if (app->getBackToMissionSelect() &&
vehicle_state.active_mission == initialMission) {
return;
}
switch (vehicle_state.active_mission) {
case MISSION_NONE:
// Do nothing
break;
case MISSION_MANUAL:
app->gotoDriverViewScreenNoTransition();
break;
default:
app->gotoAMIScreenNoTransition();
}
}
void MissionSelectPresenter::nextScreen() {
FrontendApplication *app =
static_cast<FrontendApplication *>(FrontendApplication::getInstance());
if (app->getBackToMissionSelect()) {
if (vehicle_state.active_mission == MISSION_MANUAL) {
app->gotoDriverViewScreenNoTransition();
} else {
app->gotoAMIScreenNoTransition();
}
return;
}
}