package pl.llp.aircasting.activity; import com.google.inject.Singleton; /** * Created by ags on 17/04/2013 at 07:19 */ @Singleton public class ApplicationState { public final SavingState saving = new SavingState(); public final RecordingState recording = new RecordingState(); public final SensorState sensorState = new SensorState(); public RecordingState recording() { return recording; } public SavingState saving() { return saving; } @Override public String toString() { return "ApplicationState{" + "saving=" + saving + ", recording=" + recording + '}'; } public SensorState sensors() { return sensorState; } public static class SensorState { States state; public void start() { state = States.STARTED; } public boolean started() { return States.STARTED.equals(state); } public void stop() { this.state = States.STOPPED; } enum States { STARTED, STOPPED, } } public static class RecordingState { CurrentSessionState state = CurrentSessionState.SHOWING_LIVE_DATA; public boolean isJustShowingCurrentValues() { return state == CurrentSessionState.SHOWING_LIVE_DATA; } public boolean isShowingASession() { return !isJustShowingCurrentValues(); } public void startShowingOldSession() { state = CurrentSessionState.PLAYBACK; } public void stopRecording() { state = CurrentSessionState.SHOWING_LIVE_DATA; } public void startRecording() { state = CurrentSessionState.RECORDING; } enum CurrentSessionState { RECORDING, PLAYBACK, SHOWING_LIVE_DATA; } public boolean isShowingOldSession() { return state == CurrentSessionState.PLAYBACK; } public boolean isRecording() { return state == CurrentSessionState.RECORDING; } @Override public String toString() { return "RecordingState{" + "state=" + state + '}'; } } }