From 1d666318ae18a20108dbce9b5384c0e4af5134d7 Mon Sep 17 00:00:00 2001 From: Bartlomiej Niechwiej Date: Wed, 29 Sep 2010 00:33:28 -0700 Subject: [PATCH] Fix a bug in maybeResumeTrack. Still not sure if it works correctly (need to verify on real device). --- .../mytracks/services/TrackRecordingService.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java index 835630498..88a2d16db 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -753,7 +753,9 @@ public class TrackRecordingService extends Service implements LocationListener { } private boolean maybeResumeTrack(Track track) { - List locations = track.getLocations(); + Log.d(MyTracksConstants.TAG, + "maybeResumeTrack: autoResumeTrackTimeout = " + autoResumeTrackTimeout); + if (autoResumeTrackTimeout == 0) { // Never resume. return false; @@ -763,9 +765,15 @@ public class TrackRecordingService extends Service implements LocationListener { } // Check if the last recorded point's time is within acceptable range. - return System.currentTimeMillis() + List locations = track.getLocations(); + Log.d(MyTracksConstants.TAG, + "maybeResumeTrack: Found " + (locations != null ? locations.size() : 0) + + " locations in the previous track"); + + return locations != null && !locations.isEmpty() && + System.currentTimeMillis() - locations.get(locations.size() - 1).getTime() <= - autoResumeTrackTimeout * 60 * 1000; + autoResumeTrackTimeout * 60 * 1000; } public boolean isRecording() {