49 lines
1.3 KiB
C++
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;
|
|
}
|
|
}
|