mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
use for RRS26 and SWC Racing Procedure the LineStart base class
This commit is contained in:
1 parent
d9a95b8a31
commit
5ba4b43e12
3 files changed
+29
-73
No files matched your search
+2
-3
@@ -30,8 +30,8 @@ import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.BaseFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.CourseFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.GateStartPathFinderFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.GateStartTimingFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.StartModeFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.RaceFactorFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.StartModeFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.StartProcedureFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.WindFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.utils.FlagsResources;
|
||||
@@ -474,8 +474,7 @@ public class SetupPanelFragment extends BasePanelFragment {
|
||||
break;
|
||||
|
||||
case PanelButton.LEVEL_TOGGLED:
|
||||
replaceFragment(StartModeFragment
|
||||
.newInstance(StartModeFragment.START_MODE_PLANNED, getRaceState().getTypedRacingProcedure().getType().toString()));
|
||||
replaceFragment(StartModeFragment.newInstance(StartModeFragment.START_MODE_PLANNED));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
+19
-35
@@ -19,13 +19,12 @@ import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier;
|
||||
import com.sap.sailing.domain.abstractlog.race.scoring.AdditionalScoringInformationType;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.ReadonlyRaceState;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.impl.BaseRaceStateChangedListener;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.RacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.ess.ESSRacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.gate.GateStartRacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.RRS26RacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.SWCRacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.LineStartRacingProcedure;
|
||||
import com.sap.sailing.domain.common.Wind;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.data.DataManager;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
@@ -60,7 +59,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
|
||||
private SimpleRaceLogIdentifier mRaceId;
|
||||
private TimePoint mStartTime;
|
||||
private Duration mStartTimeDiff;
|
||||
private RacingProcedureType mRacingProcedureType;
|
||||
private RacingProcedure mRacingProcedure;
|
||||
private TimePoint lastTick;
|
||||
|
||||
private Calendar mCalendar;
|
||||
@@ -147,41 +146,27 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
|
||||
}
|
||||
|
||||
private void initStartMode() {
|
||||
mRacingProcedureType = getRaceState().getRacingProcedure().getType();
|
||||
if (mRacingProcedureType != null) {
|
||||
mRacingProcedure = getRaceState().getRacingProcedure();
|
||||
if (mRacingProcedure != null) {
|
||||
Runnable runnableProcedure = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
openFragment(StartProcedureFragment.newInstance(START_MODE_PRESETUP));
|
||||
}
|
||||
};
|
||||
mItems.add(new SelectionItem(getString(R.string.start_procedure), mRacingProcedureType.toString(), null, false, false, runnableProcedure));
|
||||
if (RacingProcedureType.RRS26.equals(mRacingProcedureType)) {
|
||||
// LineStart
|
||||
final RRS26RacingProcedure procedure = getRaceState().getTypedRacingProcedure();
|
||||
mItems.add(new SelectionItem(getString(R.string.start_procedure), mRacingProcedure.getType().toString(), null, false, false, runnableProcedure));
|
||||
if (mRacingProcedure instanceof LineStartRacingProcedure) {
|
||||
final LineStartRacingProcedure procedure = getRaceState().getTypedRacingProcedure();
|
||||
Flags flag = procedure.getStartModeFlag();
|
||||
Runnable runnableMode = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
openFragment(StartModeFragment.newInstance(START_MODE_PRESETUP, mRacingProcedureType.toString()));
|
||||
openFragment(StartModeFragment.newInstance(START_MODE_PRESETUP));
|
||||
}
|
||||
};
|
||||
Drawable drawable = FlagsResources.getFlagDrawable(getActivity(), flag.name(), mFlagSize);
|
||||
mItems.add(new SelectionItem(getString(R.string.start_mode), flag.name(), drawable, false, false, runnableMode));
|
||||
} else if (RacingProcedureType.SWC.equals(mRacingProcedureType)) {
|
||||
// Sailing World Cup Start
|
||||
final SWCRacingProcedure procedure = getRaceState().getTypedRacingProcedure();
|
||||
Flags flag = procedure.getStartModeFlag();
|
||||
Runnable runnableMode = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
openFragment(StartModeFragment.newInstance(START_MODE_PRESETUP, mRacingProcedureType.toString()));
|
||||
}
|
||||
};
|
||||
Drawable drawable = FlagsResources.getFlagDrawable(getActivity(), flag.name(), mFlagSize);
|
||||
mItems.add(new SelectionItem(getString(R.string.start_mode), flag.name(), drawable, false, false, runnableMode));
|
||||
} else if (RacingProcedureType.GateStart.equals(mRacingProcedureType)) {
|
||||
// GateStart
|
||||
} else if (mRacingProcedure instanceof GateStartRacingProcedure) {
|
||||
GateStartRacingProcedure procedure = getRaceState().getTypedRacingProcedure();
|
||||
if (procedure != null) {
|
||||
Runnable runnablePathfinder = new Runnable() {
|
||||
@@ -200,8 +185,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
|
||||
};
|
||||
mItems.add(new SelectionItem(getString(R.string.gate_start_timing), RaceHelper.getGateTiming(getActivity(), procedure, getRace().getRaceGroup()), null, false, false, runnableTiming));
|
||||
}
|
||||
} else if (RacingProcedureType.ESS.equals(mRacingProcedureType)) {
|
||||
// Extreme Sailing Series
|
||||
} else if (mRacingProcedure instanceof ESSRacingProcedure) {
|
||||
ESSRacingProcedure procedure = getRaceState().getTypedRacingProcedure();
|
||||
if (procedure != null) {
|
||||
boolean checked = getArguments().getBoolean(RACE_GROUP, getRaceState().isAdditionalScoringInformationEnabled(AdditionalScoringInformationType.MAX_POINTS_DECREASE_MAX_SCORE));
|
||||
@@ -266,16 +250,16 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
|
||||
}
|
||||
|
||||
private void startRace() {
|
||||
RRS26RacingProcedure rrs26Procedure = null;
|
||||
LineStartRacingProcedure lineStartRacingProcedure = null;
|
||||
|
||||
Flags flag = null;
|
||||
if (RacingProcedureType.RRS26.equals(getRaceState().getRacingProcedure().getType())) {
|
||||
rrs26Procedure = getRaceState().getTypedRacingProcedure();
|
||||
flag = rrs26Procedure.getStartModeFlag();
|
||||
if (getRaceState().getRacingProcedure() instanceof LineStartRacingProcedure) {
|
||||
lineStartRacingProcedure = getRaceState().getTypedRacingProcedure();
|
||||
flag = lineStartRacingProcedure.getStartModeFlag();
|
||||
}
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
getRaceState().setRacingProcedure(now, mRacingProcedureType);
|
||||
if (RacingProcedureType.ESS.equals(mRacingProcedureType) && mItemRaceGroup != null) {
|
||||
getRaceState().setRacingProcedure(now, mRacingProcedure.getType());
|
||||
if (mRacingProcedure instanceof ESSRacingProcedure && mItemRaceGroup != null) {
|
||||
getRaceState().setAdditionalScoringInformationEnabled(MillisecondsTimePoint.now(), /*enable*/ mItemRaceGroup.isChecked(),
|
||||
AdditionalScoringInformationType.MAX_POINTS_DECREASE_MAX_SCORE);
|
||||
}
|
||||
@@ -284,8 +268,8 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
|
||||
} else {
|
||||
getRaceState().forceNewDependentStartTime(now, mStartTimeDiff, mRaceId);
|
||||
}
|
||||
if (rrs26Procedure != null) {
|
||||
rrs26Procedure.setStartModeFlag(MillisecondsTimePoint.now(), flag);
|
||||
if (lineStartRacingProcedure != null) {
|
||||
lineStartRacingProcedure.setStartModeFlag(MillisecondsTimePoint.now(), flag);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-35
@@ -14,10 +14,8 @@ import android.widget.AdapterView;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.sap.sailing.android.shared.util.AppUtils;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.RRS26RacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.SWCRacingProcedure;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.LineStartRacingProcedure;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.racecommittee.app.AppConstants;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.ui.adapters.checked.CheckedItemAdapter;
|
||||
@@ -28,18 +26,14 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
public class StartModeFragment extends BaseFragment {
|
||||
|
||||
private static final String PROCEDURE = "procedure";
|
||||
|
||||
private ListView mListView;
|
||||
private RRS26RacingProcedure mRRS26Procedure = null;
|
||||
private SWCRacingProcedure mSWCProcedure = null;
|
||||
private LineStartRacingProcedure mLineStartProcedure;
|
||||
private int mFlagSize;
|
||||
|
||||
public static StartModeFragment newInstance(@START_MODE_VALUES int startMode, String procedure) {
|
||||
public static StartModeFragment newInstance(@START_MODE_VALUES int startMode) {
|
||||
StartModeFragment fragment = new StartModeFragment();
|
||||
Bundle args = new Bundle();
|
||||
args.putInt(START_MODE, startMode);
|
||||
args.putString(PROCEDURE, procedure);
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
@@ -64,12 +58,7 @@ public class StartModeFragment extends BaseFragment {
|
||||
}
|
||||
}
|
||||
|
||||
String procedure = getArguments().getString(PROCEDURE, "");
|
||||
if (procedure.equals(RacingProcedureType.RRS26.toString())) {
|
||||
mRRS26Procedure = getRaceState().getTypedRacingProcedure();
|
||||
} else if (procedure.equals(RacingProcedureType.SWC.toString())) {
|
||||
mSWCProcedure = getRaceState().getTypedRacingProcedure();
|
||||
}
|
||||
mLineStartProcedure = getRaceState().getTypedRacingProcedure();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,12 +87,7 @@ public class StartModeFragment extends BaseFragment {
|
||||
super.onResume();
|
||||
|
||||
ArrayList<StartModeItem> startModes = new ArrayList<>();
|
||||
List<Flags> flags = null;
|
||||
if (mRRS26Procedure != null) {
|
||||
flags = mRRS26Procedure.getConfiguration().getStartModeFlags();
|
||||
} else if (mSWCProcedure != null) {
|
||||
flags = mSWCProcedure.getConfiguration().getStartModeFlags();
|
||||
}
|
||||
List<Flags> flags = mLineStartProcedure.getConfiguration().getStartModeFlags();
|
||||
if (flags != null) {
|
||||
int position = 0;
|
||||
int selected = -1;
|
||||
@@ -114,12 +98,7 @@ public class StartModeFragment extends BaseFragment {
|
||||
}
|
||||
Collections.sort(startModes, new StartModeComparator());
|
||||
for (StartModeItem startModeItem : startModes) {
|
||||
Flags flag = null;
|
||||
if (mRRS26Procedure != null) {
|
||||
flag = mRRS26Procedure.getStartModeFlag();
|
||||
} else if (mSWCProcedure != null) {
|
||||
flag = mSWCProcedure.getStartModeFlag();
|
||||
}
|
||||
Flags flag = mLineStartProcedure.getStartModeFlag();
|
||||
if (startModeItem.getFlag().equals(flag)) {
|
||||
selected = position;
|
||||
}
|
||||
@@ -152,14 +131,8 @@ public class StartModeFragment extends BaseFragment {
|
||||
|
||||
public void onClick(StartModeItem startMode) {
|
||||
boolean sameFlag = false;
|
||||
Flags flag = null;
|
||||
if (mRRS26Procedure != null) {
|
||||
flag = mRRS26Procedure.getStartModeFlag();
|
||||
mRRS26Procedure.setStartModeFlag(MillisecondsTimePoint.now(), startMode.getFlag());
|
||||
} else if (mSWCProcedure != null) {
|
||||
flag = mSWCProcedure.getStartModeFlag();
|
||||
mSWCProcedure.setStartModeFlag(MillisecondsTimePoint.now(), startMode.getFlag());
|
||||
}
|
||||
Flags flag = mLineStartProcedure.getStartModeFlag();
|
||||
mLineStartProcedure.setStartModeFlag(MillisecondsTimePoint.now(), startMode.getFlag());
|
||||
if (startMode.getFlag().equals(flag)) {
|
||||
sameFlag = true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user