Fix phones that do not always set the location time correctly.

This commit is contained in:
Jimmy Shih
2013-03-04 15:07:06 -08:00
parent c3c773eac6
commit 88cb5dd4ca
@@ -828,9 +828,16 @@ public class TrackRecordingService extends Service {
return; return;
} }
// Fix for phones that do not set the time field
if (location.getTime() == 0L) {
location.setTime(System.currentTimeMillis());
}
Location lastValidTrackPoint = getLastValidTrackPointInCurrentSegment(track.getId()); Location lastValidTrackPoint = getLastValidTrackPointInCurrentSegment(track.getId());
long idleTime = lastValidTrackPoint != null ? location.getTime() - lastValidTrackPoint.getTime() long idleTime = 0L;
: 0L; if (lastValidTrackPoint != null && location.getTime() > lastValidTrackPoint.getTime()) {
idleTime = location.getTime() - lastValidTrackPoint.getTime();
}
locationListenerPolicy.updateIdleTime(idleTime); locationListenerPolicy.updateIdleTime(idleTime);
if (currentRecordingInterval != locationListenerPolicy.getDesiredPollingInterval()) { if (currentRecordingInterval != locationListenerPolicy.getDesiredPollingInterval()) {
registerLocationListener(); registerLocationListener();