diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/FilterableRace.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/FilterableRace.java index 051e3a0f74c..22fdb378312 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/FilterableRace.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/racegroup/FilterableRace.java @@ -3,6 +3,7 @@ package com.sap.sailing.domain.base.racegroup; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.SeriesBase; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; +import com.sap.sse.common.Util; /** * Describes the properties by which races may be filtered. This encompasses, in particular, the race's place @@ -22,4 +23,19 @@ public interface FilterableRace { */ RaceLogRaceStatus getStatus(); + /** + * A Series offers a sequence of RaceColumns, each of them split according to the Fleets modeled for the Series. A + * {@link RaceCell} describes a "slot" in this grid, defined by the series, the fleet and the race column. While + * this object's {@link #getName() name} represents the race column's name, this doesn't tell anything about the + * "horizontal" position in the "grid" or in other words what the index is of the race column in which this cell + * lies. + *
+ *
+ * Indices returned by this method start with zero, meaning the first race column in the series. This corresponds to
+ * what one would get by asking {@link Util#indexOf(Iterable, Object) Util.indexOf(series.getRaceColumns(),
+ * thisCellsRaceColumn)}, except in case the first race column is a "virtual" one that holds a non-discardable
+ * carry-forward result. In this case, the second Race Column, which is the first "non-virtual" one, receives
+ * index 0.
+ */
+ int getZeroBasedIndexInFleet();
}
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
index 71683a1d6cc..95c0ab1b65c 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java
@@ -111,7 +111,8 @@ public class OfflineDataManager extends DataManager {
AppPreferences.on(context).getAuthor(), 1, RaceLogRaceStatus.FINISHING));
ManagedRace q1 = new ManagedRaceImpl(new ManagedRaceIdentifierImpl("A.B", new FleetImpl("A"), qualifying, raceGroup),
- RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration));
+ RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration),
+ /* zeroBasedIndexInFleet */ 0);
log = new RaceLogImpl(UUID.randomUUID());
/*
@@ -120,7 +121,8 @@ public class OfflineDataManager extends DataManager {
*/
ManagedRace q2 = new ManagedRaceImpl(new ManagedRaceIdentifierImpl("B", new FleetImpl("A.A"), qualifying, raceGroup),
- RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration));
+ RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration),
+ /* zeroBasedIndexInFleet */ 1);
log = new RaceLogImpl(UUID.randomUUID());
/*
@@ -128,7 +130,8 @@ public class OfflineDataManager extends DataManager {
* RaceLogRaceStatus.FINISHED));
*/
ManagedRace q3 = new ManagedRaceImpl(new ManagedRaceIdentifierImpl("Q3", new FleetImpl("Default"), qualifying, raceGroup),
- RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration));
+ RaceStateImpl.create(new AndroidRaceLogResolver(), log, AppPreferences.on(context).getAuthor(), configuration),
+ /* zeroBasedIndexInFleet */ 2);
/*
* ManagedRace m1 = new ManagedRaceImpl( new ManagedRaceIdentifierImpl( "M1", new FleetImpl("Default"), medal,
* raceGroup), null);
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java
index 920d04267aa..0b0789dc0ef 100755
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java
@@ -64,7 +64,8 @@ public class ManagedRacesDataParser implements DataParser