mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
added forced dialogs for pathfinder and gatelineopening time in the app, if the race is started into the past to ensure that we collect all relevant information.
This commit is contained in:
1 parent
f36de39205
commit
7b0ccf74de
3 files changed
+41
-7
No files matched your search
+7
-1
@@ -180,7 +180,9 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
public void onRaceStarted(TimePoint eventTime) {
|
||||
RaceLogEvent statusEvent = RaceLogEventFactory.INSTANCE.createRaceStatusEvent(eventTime, raceLog.getCurrentPassId(), RaceLogRaceStatus.RUNNING);
|
||||
this.raceLog.add(statusEvent);
|
||||
notifyListenersAboutGateLineOpeningTimeTrigger();
|
||||
if(getGateLineOpeningTime()!=null){
|
||||
notifyListenersAboutGateLineOpeningTimeTrigger();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -308,6 +310,9 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
|
||||
this.raceLog.add(event);
|
||||
notifyListenersAboutGateLineOpeningTimeChanged();
|
||||
if(eventTime.after(getStartTime()) && getStatus().equals(RaceLogRaceStatus.RUNNING)){
|
||||
notifyListenersAboutGateLineOpeningTimeTrigger();
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyListenersAboutGateLineOpeningTimeChanged() {
|
||||
@@ -319,6 +324,7 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
private void notifyListenersAboutGateLineOpeningTimeTrigger() {
|
||||
for (RaceStateChangedListener listener : stateChangedListeners) {
|
||||
Long gateLineOpeningTime = GateStartProcedure.startPhaseGolfDownStandardInterval;
|
||||
//this should not happen
|
||||
if(this.getGateLineOpeningTime()!=null){
|
||||
gateLineOpeningTime = this.getGateLineOpeningTime();
|
||||
}
|
||||
|
||||
+9
-6
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.fragments.dialogs;
|
||||
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.domain.startprocedure.impl.GateStartProcedure;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
@@ -11,6 +12,7 @@ import android.view.ViewGroup;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
public class RaceChooseLineOpeningTimeDialog extends RaceDialogFragment {
|
||||
|
||||
@@ -38,6 +40,7 @@ public class RaceChooseLineOpeningTimeDialog extends RaceDialogFragment {
|
||||
getDialog().setTitle(getString(R.string.set_gate_line_opening_time_title));
|
||||
|
||||
lineOpeningTimeEditText = (EditText) getView().findViewById(R.id.lineOpeningTimeText);
|
||||
lineOpeningTimeEditText.setText(String.valueOf((GateStartProcedure.startPhaseGolfDownStandardInterval/(60*1000))));
|
||||
chooseButton = (Button) getDialog().findViewById(R.id.chooseLineOpeningTimeButton);
|
||||
|
||||
chooseButton.setOnClickListener(new OnClickListener() {
|
||||
@@ -48,18 +51,18 @@ public class RaceChooseLineOpeningTimeDialog extends RaceDialogFragment {
|
||||
}
|
||||
|
||||
protected void onChooseClicked(View view) {
|
||||
int lineOpeningTime = convertToInteger(lineOpeningTimeEditText.getText().toString());
|
||||
try{
|
||||
Integer lineOpeningTime = convertToInteger(lineOpeningTimeEditText.getText().toString());
|
||||
this.getRace().getState().setGateLineOpeningTime(Long.valueOf(60 * 1000 * lineOpeningTime));
|
||||
Log.i("RACE_SET_GATELINE_OPENING_TIME", String.valueOf(lineOpeningTime));
|
||||
dismiss();
|
||||
} catch(NumberFormatException nfe){
|
||||
Toast.makeText(getActivity(), "Please enter a valid number of minutes", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
protected Integer convertToInteger(String text) {
|
||||
try {
|
||||
protected Integer convertToInteger(String text) throws NumberFormatException{
|
||||
return Integer.parseInt(text);
|
||||
} catch (NumberFormatException ex) {
|
||||
throw new IllegalStateException("An NumberFormatException occured");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+25
@@ -20,6 +20,8 @@ import com.sap.sailing.racecommittee.app.domain.startprocedure.impl.GateStartRun
|
||||
import com.sap.sailing.racecommittee.app.logging.ExLog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.AbortTypeSelectionDialog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceChooseLineOpeningTimeDialog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceChoosePathFinderDialog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.dialogs.RaceDialogFragment;
|
||||
|
||||
public class GateStartRunningRaceFragment extends RaceFragment implements GateStartRunningRaceEventListener {
|
||||
@@ -72,6 +74,13 @@ public class GateStartRunningRaceFragment extends RaceFragment implements GateSt
|
||||
displayGolfFlag(!golfFlagTakenDown);
|
||||
|
||||
getRace().getState().getStartProcedure().setRunningRaceEventListener(this);
|
||||
|
||||
if(getRace().getState().getPathfinder()==null){
|
||||
showPathFinderDialog();
|
||||
}
|
||||
if(getRace().getState().getGateLineOpeningTime()==null){
|
||||
showLineOpeningTimeDialog();
|
||||
}
|
||||
}
|
||||
|
||||
private void displayGolfFlag(boolean golfFlagDisplayed) {
|
||||
@@ -172,5 +181,21 @@ public class GateStartRunningRaceFragment extends RaceFragment implements GateSt
|
||||
public void onGolfDown() {
|
||||
displayGolfFlag(false);
|
||||
}
|
||||
|
||||
private void showPathFinderDialog() {
|
||||
FragmentManager fragmentManager = getFragmentManager();
|
||||
RaceDialogFragment fragment = new RaceChoosePathFinderDialog();
|
||||
Bundle args = getParameterBundle();
|
||||
fragment.setArguments(args);
|
||||
fragment.show(fragmentManager, null);
|
||||
}
|
||||
|
||||
private void showLineOpeningTimeDialog() {
|
||||
FragmentManager fragmentManager = getFragmentManager();
|
||||
RaceDialogFragment fragment = new RaceChooseLineOpeningTimeDialog();
|
||||
Bundle args = getParameterBundle();
|
||||
fragment.setArguments(args);
|
||||
fragment.show(fragmentManager, null);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user