diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/CsvTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/CsvTrackWriter.java index 22797b4af..4cfcdbe4f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/CsvTrackWriter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/CsvTrackWriter.java @@ -23,6 +23,7 @@ import android.location.Location; import java.io.OutputStream; import java.io.PrintWriter; +import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; @@ -44,9 +45,13 @@ import java.util.TimeZone; * @author Rodrigo Damazio */ public class CsvTrackWriter implements TrackFormatWriter { + + static final NumberFormat SHORT_FORMAT = NumberFormat.getInstance(); static final SimpleDateFormat TIMESTAMP_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + static { + SHORT_FORMAT.setMaximumFractionDigits(4); TIMESTAMP_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); } @@ -94,8 +99,8 @@ public class CsvTrackWriter implements TrackFormatWriter { Double.toString(location.getLongitude()), Double.toString(location.getAltitude()), Double.toString(location.getBearing()), - Double.toString(location.getAccuracy()), - Double.toString(location.getSpeed()), + SHORT_FORMAT.format(location.getAccuracy()), + SHORT_FORMAT.format(location.getSpeed()), null, null, Integer.toString(segmentIdx)); } @@ -110,8 +115,8 @@ public class CsvTrackWriter implements TrackFormatWriter { Double.toString(location.getLongitude()), Double.toString(location.getAltitude()), Double.toString(location.getBearing()), - Double.toString(location.getAccuracy()), - Double.toString(location.getSpeed()), + SHORT_FORMAT.format(location.getAccuracy()), + SHORT_FORMAT.format(location.getSpeed()), waypoint.getName(), waypoint.getDescription(), null); 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 26ad9beb3..d6571b1aa 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -420,6 +420,7 @@ public class TrackRecordingService extends Service implements LocationListener { TripStatistics stats = track.getStatistics(); statsBuilder = new TripStatisticsBuilder(stats.getStartTime()); + statsBuilder.setMinRecordingDistance(minRecordingDistance); setUpAnnouncer(); splitManager.restore(); @@ -436,6 +437,7 @@ public class TrackRecordingService extends Service implements LocationListener { waypointStatsBuilder = new TripStatisticsBuilder(stats.getStartTime()); currentWaypointId = -1; } + waypointStatsBuilder.setMinRecordingDistance(minRecordingDistance); Cursor cursor = null; try { @@ -1077,7 +1079,9 @@ public class TrackRecordingService extends Service implements LocationListener { providerUtils.updateTrack(track); statsBuilder = new TripStatisticsBuilder(startTime); + statsBuilder.setMinRecordingDistance(minRecordingDistance); waypointStatsBuilder = new TripStatisticsBuilder(startTime); + waypointStatsBuilder.setMinRecordingDistance(minRecordingDistance); currentWaypointId = insertWaypoint(WaypointCreationRequest.DEFAULT_STATISTICS); setUpAnnouncer(); length = 0; @@ -1195,8 +1199,10 @@ public class TrackRecordingService extends Service implements LocationListener { public void setMinRecordingDistance(int minRecordingDistance) { this.minRecordingDistance = minRecordingDistance; - this.statsBuilder.setMinRecordingDistance(minRecordingDistance); - this.waypointStatsBuilder.setMinRecordingDistance(minRecordingDistance); + if (statsBuilder != null && waypointStatsBuilder != null) { + statsBuilder.setMinRecordingDistance(minRecordingDistance); + waypointStatsBuilder.setMinRecordingDistance(minRecordingDistance); + } } public int getMinRequiredAccuracy() {