From 5ba4b43e12bb7956062d6dc7ab88d4dc0f213b16 Mon Sep 17 00:00:00 2001 From: Peter Siegmund Date: Wed, 16 Nov 2016 09:07:34 +0100 Subject: [PATCH] use for RRS26 and SWC Racing Procedure the LineStart base class --- .../fragments/panels/SetupPanelFragment.java | 5 +- .../raceinfo/MainScheduleFragment.java | 54 +++++++------------ .../fragments/raceinfo/StartModeFragment.java | 43 +++------------ 3 files changed, 29 insertions(+), 73 deletions(-) diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/panels/SetupPanelFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/panels/SetupPanelFragment.java index dd7a38aee1b..26306b34358 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/panels/SetupPanelFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/panels/SetupPanelFragment.java @@ -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: diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java index 961a4f7b724..1b59bbb3a4c 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java @@ -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); } } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/StartModeFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/StartModeFragment.java index b3610477b5a..763bfc1ad1a 100755 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/StartModeFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/StartModeFragment.java @@ -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 startModes = new ArrayList<>(); - List flags = null; - if (mRRS26Procedure != null) { - flags = mRRS26Procedure.getConfiguration().getStartModeFlags(); - } else if (mSWCProcedure != null) { - flags = mSWCProcedure.getConfiguration().getStartModeFlags(); - } + List 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; }