From e67bb581e613e65e6baed512eee3b46bea19e0b7 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Tue, 9 Jul 2013 14:43:49 -0700 Subject: [PATCH] Change defaut recording distance interval to 10m --- .../res/values/arrays_do_not_translate.xml | 18 +++++++-------- MyTracks/res/values/keys.xml | 2 +- MyTracks/res/xml/recording_settings.xml | 4 ++-- .../apps/mytracks/content/TrackDataHub.java | 18 +++++++-------- .../mytracks/content/TrackDataListener.java | 6 ++--- .../mytracks/fragments/ChartFragment.java | 10 ++++----- .../fragments/MyTracksMapFragment.java | 2 +- .../mytracks/fragments/StatsFragment.java | 2 +- .../mytracks/io/file/AbstractImporter.java | 13 ++++++----- .../mytracks/io/maps/SendMapsAsyncTask.java | 7 +++--- .../services/TrackRecordingService.java | 22 +++++++++---------- .../settings/RecordingSettingsActivity.java | 18 +++++++-------- .../apps/mytracks/util/PreferencesUtils.java | 5 +++-- .../mytracks/content/TrackDataHubTest.java | 12 +++++----- .../services/TrackRecordingServiceTest.java | 6 ++--- .../stats/TripStatisticsUpdaterTest.java | 9 +++++--- 16 files changed, 80 insertions(+), 74 deletions(-) diff --git a/MyTracks/res/values/arrays_do_not_translate.xml b/MyTracks/res/values/arrays_do_not_translate.xml index 274ce4c26..ecce9d6bc 100644 --- a/MyTracks/res/values/arrays_do_not_translate.xml +++ b/MyTracks/res/values/arrays_do_not_translate.xml @@ -116,15 +116,6 @@ limitations under the License. 1000 5000 - - 1 - 2 - 3 - 4 - 5 - 10 - 100 - -2 -1 @@ -143,6 +134,15 @@ limitations under the License. 900 1800 + + 1 + 2 + 5 + 10 + 20 + 50 + 100 + 10 20 diff --git a/MyTracks/res/values/keys.xml b/MyTracks/res/values/keys.xml index ba427ba0d..bd8cc4e44 100644 --- a/MyTracks/res/values/keys.xml +++ b/MyTracks/res/values/keys.xml @@ -31,8 +31,8 @@ limitations under the License. exportType mapType maxRecordingDistance - minRecordingDistance minRecordingInterval + recordingDistanceInterval recordingGpsAccuracy reportSpeed sensorType diff --git a/MyTracks/res/xml/recording_settings.xml b/MyTracks/res/xml/recording_settings.xml index 3cea7be7b..76415a16c 100644 --- a/MyTracks/res/xml/recording_settings.xml +++ b/MyTracks/res/xml/recording_settings.xml @@ -38,8 +38,8 @@ limitations under the License. android:key="@string/min_recording_interval_key" android:title="@string/settings_recording_min_recording_interval_title" /> trackIds; private final List waypoints; @@ -143,8 +143,9 @@ abstract class AbstractImporter extends DefaultHandler { this.context = context; this.importTrackId = importTrackId; this.myTracksProviderUtils = myTracksProviderUtils; - this.minRecordingDistance = PreferencesUtils.getInt(context, - R.string.min_recording_distance_key, PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT); + this.recordingDistanceInterval = PreferencesUtils.getInt(context, + R.string.recording_distance_interval_key, + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT); trackIds = new ArrayList(); waypoints = new ArrayList(); } @@ -248,8 +249,8 @@ abstract class AbstractImporter extends DefaultHandler { // No more track points. Ignore the rest of the waypoints. return; } - trackTripStatisticstrackUpdater.addLocation(trackPoint, minRecordingDistance); - markerTripStatisticsUpdater.addLocation(trackPoint, minRecordingDistance); + trackTripStatisticstrackUpdater.addLocation(trackPoint, recordingDistanceInterval); + markerTripStatisticsUpdater.addLocation(trackPoint, recordingDistanceInterval); } if (waypoint.getLocation().getTime() > trackPoint.getTime()) { trackPoint = null; @@ -526,7 +527,7 @@ abstract class AbstractImporter extends DefaultHandler { trackData.tripStatisticsUpdater = new TripStatisticsUpdater( location.getTime() != -1L ? location.getTime() : trackData.importTime); } - trackData.tripStatisticsUpdater.addLocation(location, minRecordingDistance); + trackData.tripStatisticsUpdater.addLocation(location, recordingDistanceInterval); trackData.bufferedLocations[trackData.numBufferedLocations] = location; trackData.numBufferedLocations++; diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java index f0d8503c9..e4c7c3587 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/maps/SendMapsAsyncTask.java @@ -253,8 +253,9 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask { Vector elevations = new Vector(); TripStatisticsUpdater tripStatisticsUpdater = new TripStatisticsUpdater( track.getTripStatistics().getStartTime()); - int minRecordingDistance = PreferencesUtils.getInt(context, - R.string.min_recording_distance_key, PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT); + int recordingDistanceInterval = PreferencesUtils.getInt(context, + R.string.recording_distance_interval_key, + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT); for (int i = 0; i < count; i++) { cursor.moveToPosition(i); @@ -276,7 +277,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask { sentStartMarker = true; } - tripStatisticsUpdater.addLocation(location, minRecordingDistance); + tripStatisticsUpdater.addLocation(location, recordingDistanceInterval); if (i % elevationSamplingFrequency == 0) { distances.add(tripStatisticsUpdater.getTripStatistics().getTotalDistance()); elevations.add(tripStatisticsUpdater.getSmoothedElevation()); 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 6d15355ed..50fc379ec 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -114,7 +114,7 @@ public class TrackRecordingService extends Service { private long recordingTrackId; private boolean recordingTrackPaused; private LocationListenerPolicy locationListenerPolicy; - private int minRecordingDistance; + private int recordingDistanceInterval; private int maxRecordingDistance; private int recordingGpsAccuracy; private int autoResumeTrackTimeout; @@ -193,10 +193,10 @@ public class TrackRecordingService extends Service { } } if (key == null || key.equals( - PreferencesUtils.getKey(context, R.string.min_recording_distance_key))) { - minRecordingDistance = PreferencesUtils.getInt(context, - R.string.min_recording_distance_key, - PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT); + PreferencesUtils.getKey(context, R.string.recording_distance_interval_key))) { + recordingDistanceInterval = PreferencesUtils.getInt(context, + R.string.recording_distance_interval_key, + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT); } if (key == null || key.equals( PreferencesUtils.getKey(context, R.string.max_recording_distance_key))) { @@ -649,9 +649,9 @@ public class TrackRecordingService extends Service { if (cursor.moveToLast()) { do { Location location = myTracksProviderUtils.createTrackPoint(cursor); - trackTripStatisticsUpdater.addLocation(location, minRecordingDistance); + trackTripStatisticsUpdater.addLocation(location, recordingDistanceInterval); if (location.getTime() > markerStartTime) { - markerTripStatisticsUpdater.addLocation(location, minRecordingDistance); + markerTripStatisticsUpdater.addLocation(location, recordingDistanceInterval); } } while (cursor.moveToPrevious()); } @@ -932,8 +932,8 @@ public class TrackRecordingService extends Service { } double distanceToLastTrackLocation = location.distanceTo(lastValidTrackPoint); - if (distanceToLastTrackLocation < minRecordingDistance && sensorDataSet == null) { - Log.d(TAG, "Not recording location due to min recording distance."); + if (distanceToLastTrackLocation < recordingDistanceInterval && sensorDataSet == null) { + Log.d(TAG, "Not recording location due to recording distance interval."); } else if (distanceToLastTrackLocation > maxRecordingDistance) { insertLocation(track, lastLocation, lastValidTrackPoint); Location pause = new Location(LocationManager.GPS_PROVIDER); @@ -982,8 +982,8 @@ public class TrackRecordingService extends Service { try { Uri uri = myTracksProviderUtils.insertTrackPoint(location, track.getId()); long trackPointId = Long.parseLong(uri.getLastPathSegment()); - trackTripStatisticsUpdater.addLocation(location, minRecordingDistance); - markerTripStatisticsUpdater.addLocation(location, minRecordingDistance); + trackTripStatisticsUpdater.addLocation(location, recordingDistanceInterval); + markerTripStatisticsUpdater.addLocation(location, recordingDistanceInterval); updateRecordingTrack(track, trackPointId, LocationUtils.isValidLocation(location)); } catch (SQLiteException e) { /* diff --git a/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java b/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java index 505ff4427..506c6ad83 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/settings/RecordingSettingsActivity.java @@ -49,9 +49,9 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity { configListPreference(R.string.min_recording_interval_key, PreferencesUtils.MIN_RECORDING_INTERVAL_DEFAULT, R.array.min_recording_interval_values, metricUnits); - configListPreference(R.string.min_recording_distance_key, - PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT, R.array.min_recording_distance_values, - metricUnits); + configListPreference(R.string.recording_distance_interval_key, + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT, + R.array.recording_distance_interval_values, metricUnits); configListPreference(R.string.max_recording_distance_key, PreferencesUtils.MAX_RECORDING_DISTANCE_DEFAULT, R.array.max_recording_distance_values, metricUnits); @@ -115,8 +115,8 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity { case R.string.min_recording_interval_key: setMinRecordingIntervalSummaryAndOptions(summary, options, values); break; - case R.string.min_recording_distance_key: - setMinRecordingDistanceSummaryAndOptions(summary, options, values, metricUnits); + case R.string.recording_distance_interval_key: + setRecordingDistanceIntervalSummaryAndOptions(summary, options, values, metricUnits); break; case R.string.max_recording_distance_key: setMaxRecordingDistanceSummaryAndOptions(summary, options, values, metricUnits); @@ -167,14 +167,14 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity { } /** - * Sets the min recording distance summary and options. + * Sets the recording distance interval summary and options. * * @param summary the summary * @param options the options * @param values the values * @param metricUnits true for metric units */ - private void setMinRecordingDistanceSummaryAndOptions( + private void setRecordingDistanceIntervalSummaryAndOptions( String[] summary, String[] options, String[] values, boolean metricUnits) { for (int i = 0; i < values.length; i++) { int value = Integer.parseInt(values[i]); @@ -182,7 +182,7 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity { if (metricUnits) { displayValue = getString(R.string.value_integer_meter, value); switch (value) { - case PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT: + case PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT: options[i] = getString(R.string.value_integer_meter_recommended, value); break; default: @@ -192,7 +192,7 @@ public class RecordingSettingsActivity extends AbstractSettingsActivity { int feet = (int) (value * UnitConversions.M_TO_FT); displayValue = getString(R.string.value_integer_feet, feet); switch (value) { - case PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT: + case PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT: options[i] = getString(R.string.value_integer_feet_recommended, feet); break; default: diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java index 01b8134fa..4a3f5500b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/PreferencesUtils.java @@ -76,13 +76,14 @@ public class PreferencesUtils { public static final String GOOGLE_ACCOUNT_DEFAULT = ""; public static final int MAP_TYPE_DEFAUlT = 1; public static final int MAX_RECORDING_DISTANCE_DEFAULT = 200; - public static final int MIN_RECORDING_DISTANCE_DEFAULT = 5; - + // Values for min_recording_interval_key public static final int MIN_RECORDING_INTERVAL_ADAPT_ACCURACY = -1; public static final int MIN_RECORDING_INTERVAL_ADAPT_BATTERY_LIFE = -2; public static final int MIN_RECORDING_INTERVAL_DEFAULT = 0; + public static final int RECORDING_DISTANCE_INTERVAL_DEFAULT = 10; + // Values for recording_gps_accuracy public static final int RECORDING_GPS_ACCURACY_DEFAULT = 50; public static final int RECORDING_GPS_ACCURACY_EXCELLENT = 10; diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java index f0186bbe7..c60cf868e 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/content/TrackDataHubTest.java @@ -531,8 +531,8 @@ public class TrackDataHubTest extends AndroidTestCase { context, R.string.stats_units_key, PreferencesUtils.STATS_UNITS_DEFAULT); PreferencesUtils.setInt(context, R.string.recording_gps_accuracy_key, PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT); - PreferencesUtils.setInt(context, R.string.min_recording_distance_key, - PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT); + PreferencesUtils.setInt(context, R.string.recording_distance_interval_key, + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT); dataSource.registerOnSharedPreferenceChangeListener(capture(preferenceChangeListenerCapture)); expect(trackDataListener1.onMetricUnitsChanged(true)).andReturn(false); @@ -540,15 +540,15 @@ public class TrackDataHubTest extends AndroidTestCase { expect( trackDataListener1.onRecordingGpsAccuracy(PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT)) .andReturn(false); - expect(trackDataListener1.onMinRecordingDistanceChanged( - PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT)).andReturn(false); + expect(trackDataListener1.onRecordingDistanceIntervalChanged( + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT)).andReturn(false); expect(trackDataListener2.onMetricUnitsChanged(true)).andReturn(false); expect(trackDataListener2.onReportSpeedChanged(true)).andReturn(false); expect( trackDataListener2.onRecordingGpsAccuracy(PreferencesUtils.RECORDING_GPS_ACCURACY_DEFAULT)) .andReturn(false); - expect(trackDataListener2.onMinRecordingDistanceChanged( - PreferencesUtils.MIN_RECORDING_DISTANCE_DEFAULT)).andReturn(false); + expect(trackDataListener2.onRecordingDistanceIntervalChanged( + PreferencesUtils.RECORDING_DISTANCE_INTERVAL_DEFAULT)).andReturn(false); replay(); trackDataHub.start(); diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java index 6e9056403..c9c0a64f9 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/services/TrackRecordingServiceTest.java @@ -610,14 +610,14 @@ public class TrackRecordingServiceTest extends ServiceTestCase