VoiceAnnouncementManager should close TrackPointIterator to avoid memory leaks.

This commit is contained in:
Dennis Guse
2025-10-29 21:57:22 +01:00
parent 11f1b6e72d
commit 58655814b2
@@ -149,8 +149,7 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe
startTrackPointId = null; startTrackPointId = null;
} }
//TODO wrap in try {} try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), startTrackPointId)) {
AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), startTrackPointId);
startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator); startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator);
IntervalStatisticsUpdater.Interval lastInterval = intervalStatistics.getLastInterval(); IntervalStatisticsUpdater.Interval lastInterval = intervalStatistics.getLastInterval();
SensorStatistics sensorStatistics = null; SensorStatistics sensorStatistics = null;
@@ -160,6 +159,7 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe
return VoiceAnnouncementUtils.createStatistics(context, track, sensorDataSet, PreferencesUtils.getUnitSystem(), PreferencesUtils.isReportSpeed(track), lastInterval, sensorStatistics); return VoiceAnnouncementUtils.createStatistics(context, track, sensorDataSet, PreferencesUtils.getUnitSystem(), PreferencesUtils.isReportSpeed(track), lastInterval, sensorStatistics);
} }
}
public void stop() { public void stop() {
if (voiceAnnouncement != null) { if (voiceAnnouncement != null) {