mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-24 04:53:54 +00:00
Avoid potential NPE in RaceBoard start analysis mode on mobile devices,
where the competitor chart is used
This commit is contained in:
1 parent
c073f312c4
commit
11d1f137f5
1 file changed
+16
-8
+16
-8
@@ -116,7 +116,9 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
setLeaderboard(result);
|
||||
getLeaderboardPanel().updateLeaderboard(result);
|
||||
updateCompetitorSelection();
|
||||
getRaceBoardPanel().setCompetitorChartVisible(true);
|
||||
if (isCompetitorChartEnabled()) {
|
||||
getRaceBoardPanel().setCompetitorChartVisible(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
|
||||
@@ -126,13 +128,15 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
// settings is largely more successful because
|
||||
boolean result = getRaceBoardPanel().getMap().getSimulationOverlay() == null;
|
||||
if (!result) {
|
||||
final MultiCompetitorRaceChartSettings newCompetitorChartSettings = new MultiCompetitorRaceChartSettings(
|
||||
new ChartSettings(/* stepSizeInMillis */ 1000), DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS,
|
||||
/* no second series */ null);
|
||||
competitorChart.updateSettings(newCompetitorChartSettings);
|
||||
getRaceTimePanel().getTimeRangeProvider().setTimeZoom(
|
||||
new MillisecondsTimePoint(raceTimesInfo.startOfRace).minus(DURATION_BEFORE_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate(),
|
||||
new MillisecondsTimePoint(raceTimesInfo.startOfRace).plus(DURATION_AFTER_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate());
|
||||
if (isCompetitorChartEnabled()) {
|
||||
final MultiCompetitorRaceChartSettings newCompetitorChartSettings = new MultiCompetitorRaceChartSettings(
|
||||
new ChartSettings(/* stepSizeInMillis */ 1000), DetailType.RACE_CURRENT_SPEED_OVER_GROUND_IN_KNOTS,
|
||||
/* no second series */ null);
|
||||
competitorChart.updateSettings(newCompetitorChartSettings);
|
||||
getRaceTimePanel().getTimeRangeProvider().setTimeZoom(
|
||||
new MillisecondsTimePoint(raceTimesInfo.startOfRace).minus(DURATION_BEFORE_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate(),
|
||||
new MillisecondsTimePoint(raceTimesInfo.startOfRace).plus(DURATION_AFTER_START_TO_INCLUDE_IN_CHART_TIME_RANGE).asDate());
|
||||
}
|
||||
final RaceMapSettings existingMapSettings = getRaceBoardPanel().getMap().getSettings();
|
||||
final RaceMapSettings newMapSettings = new RaceMapSettings(
|
||||
new RaceMapZoomSettings(Collections.singleton(ZoomTypes.BOATS), /* zoomToSelected */ false),
|
||||
@@ -212,5 +216,9 @@ public class StartAnalysisMode extends RaceBoardModeWithPerRaceCompetitors {
|
||||
showCompetitorChartIfAllDataReceived();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isCompetitorChartEnabled() {
|
||||
return competitorChart != null;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user