From 828226546c387027a8544ea079619044b685bd90 Mon Sep 17 00:00:00 2001 From: Armin Zamani Date: Sat, 6 Apr 2013 00:55:18 +0200 Subject: [PATCH] the positioning confirmation event is issued when the blue flag down button is pressed (race is finished, last competitor has finished or time limit is reached) --- .../racecommittee/app/domain/state/RaceState.java | 5 +++++ .../app/domain/state/impl/RaceStateImpl.java | 8 ++++++++ .../ui/fragments/raceinfo/FinishingRaceFragment.java | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java index e2d04b9d97b..d7c36243094 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/RaceState.java @@ -88,6 +88,11 @@ public interface RaceState { * @param competitors the current finishing list */ void setFinishPositioningListChanged(List competitors); + + /** + * Sets a confirmation event for the finish positionings + */ + void setFinishPositioningConfirmed(); /** * Updates the race's status. diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java index 97cd2746034..9989a033c5c 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java @@ -177,5 +177,13 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener { public List getFinishPositioningList() { return finishPositioningListFinder.getFinishPositioningList(); } + + @Override + public void setFinishPositioningConfirmed() { + TimePoint eventTime = MillisecondsTimePoint.now(); + + RaceLogEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(eventTime, raceLog.getCurrentPassId()); + this.raceLog.add(event); + } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java index 5918f4a5ca1..2540c84189c 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/FinishingRaceFragment.java @@ -10,6 +10,7 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; @@ -100,6 +101,15 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener } }); + positioningListView.setOnLongClickListener(new OnLongClickListener() { + + @Override + public boolean onLongClick(View arg0) { + return false; + } + + }); + dragSortController = buildDragSortController(positioningListView); positioningListView.setFloatViewManager(dragSortController); positioningListView.setOnTouchListener(dragSortController); @@ -249,6 +259,7 @@ public class FinishingRaceFragment extends RaceFragment implements TickListener public void onClick(DialogInterface dialog, int id) { ExLog.i(ExLog.FLAG_BLUE_REMOVE, getRace().getId().toString(), getActivity()); getRace().getState().onRaceFinished(MillisecondsTimePoint.now()); + getRace().getState().setFinishPositioningConfirmed(); } }) .setNegativeButton(getActivity().getResources().getString(R.string.no), new DialogInterface.OnClickListener() {