mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-14 14:53:07 +02:00
Removed that tracks store count of the locations.
This commit is contained in:
@@ -19,7 +19,6 @@ public class TestDataUtil {
|
|||||||
Track track = new Track();
|
Track track = new Track();
|
||||||
track.setId(id);
|
track.setId(id);
|
||||||
track.setName("Test: " + id);
|
track.setName("Test: " + id);
|
||||||
track.setNumberOfPoints(numPoints);
|
|
||||||
for (int i = 0; i < numPoints; i++) {
|
for (int i = 0; i < numPoints; i++) {
|
||||||
track.addLocation(createLocation(i));
|
track.addLocation(createLocation(i));
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-9
@@ -135,7 +135,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
|
|
||||||
private List<Location> testIterator(long trackId, int numPoints, int batchSize, boolean descending, TrackPointFactory trackPointFactory) {
|
private List<Location> testIterator(long trackId, int numPoints, int batchSize, boolean descending, TrackPointFactory trackPointFactory) {
|
||||||
long lastPointId = initializeTrack(trackId, numPoints);
|
long lastPointId = initializeTrack(trackId, numPoints);
|
||||||
((ContentProviderUtils) contentProviderUtils).setDefaultCursorBatchSize(batchSize);
|
contentProviderUtils.setDefaultCursorBatchSize(batchSize);
|
||||||
List<Location> locations = new ArrayList<Location>(numPoints);
|
List<Location> locations = new ArrayList<Location>(numPoints);
|
||||||
try (TrackPointIterator it = contentProviderUtils.getTrackPointLocationIterator(trackId, -1L, descending, trackPointFactory)) {
|
try (TrackPointIterator it = contentProviderUtils.getTrackPointLocationIterator(trackId, -1L, descending, trackPointFactory)) {
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
@@ -155,7 +155,6 @@ public class CustomContentProviderUtilsTest {
|
|||||||
Track track = new Track();
|
Track track = new Track();
|
||||||
track.setId(id);
|
track.setId(id);
|
||||||
track.setName("Test: " + id);
|
track.setName("Test: " + id);
|
||||||
track.setNumberOfPoints(numPoints);
|
|
||||||
contentProviderUtils.insertTrack(track);
|
contentProviderUtils.insertTrack(track);
|
||||||
track = contentProviderUtils.getTrack(id);
|
track = contentProviderUtils.getTrack(id);
|
||||||
Assert.assertNotNull(track);
|
Assert.assertNotNull(track);
|
||||||
@@ -183,7 +182,6 @@ public class CustomContentProviderUtilsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Assert.assertTrue(numPoints == 0 || lastPointId > 0);
|
Assert.assertTrue(numPoints == 0 || lastPointId > 0);
|
||||||
Assert.assertEquals(numPoints, track.getNumberOfPoints());
|
|
||||||
Assert.assertEquals(numPoints, counter);
|
Assert.assertEquals(numPoints, counter);
|
||||||
|
|
||||||
return lastPointId;
|
return lastPointId;
|
||||||
@@ -616,8 +614,8 @@ public class CustomContentProviderUtilsTest {
|
|||||||
when(cursorMock.getBlob(index++)).thenReturn(sensor);
|
when(cursorMock.getBlob(index++)).thenReturn(sensor);
|
||||||
|
|
||||||
Location location = contentProviderUtils.createTrackPoint(cursorMock);
|
Location location = contentProviderUtils.createTrackPoint(cursorMock);
|
||||||
Assert.assertEquals((double) longitude, location.getLongitude(), 0.01);
|
Assert.assertEquals(longitude, location.getLongitude(), 0.01);
|
||||||
Assert.assertEquals((double) latitude, location.getLatitude(), 0.01);
|
Assert.assertEquals(latitude, location.getLatitude(), 0.01);
|
||||||
Assert.assertEquals(time, location.getTime(), 0.01);
|
Assert.assertEquals(time, location.getTime(), 0.01);
|
||||||
Assert.assertEquals(speed, location.getSpeed(), 0.01);
|
Assert.assertEquals(speed, location.getSpeed(), 0.01);
|
||||||
}
|
}
|
||||||
@@ -661,7 +659,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
Track track = TestDataUtil.getTrack(trackId, 10);
|
Track track = TestDataUtil.getTrack(trackId, 10);
|
||||||
contentProviderUtils.insertTrack(track);
|
contentProviderUtils.insertTrack(track);
|
||||||
|
|
||||||
long[] trackpointIds = new long[track.getNumberOfPoints()];
|
long[] trackpointIds = new long[track.getLocations().size()];
|
||||||
for (int i = 0; i < trackpointIds.length; i++) {
|
for (int i = 0; i < trackpointIds.length; i++) {
|
||||||
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
||||||
}
|
}
|
||||||
@@ -680,7 +678,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
Track track = TestDataUtil.getTrack(trackId, 10);
|
Track track = TestDataUtil.getTrack(trackId, 10);
|
||||||
contentProviderUtils.insertTrack(track);
|
contentProviderUtils.insertTrack(track);
|
||||||
|
|
||||||
long[] trackpointIds = new long[track.getNumberOfPoints()];
|
long[] trackpointIds = new long[track.getLocations().size()];
|
||||||
for (int i = 0; i < trackpointIds.length; i++) {
|
for (int i = 0; i < trackpointIds.length; i++) {
|
||||||
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
||||||
}
|
}
|
||||||
@@ -699,7 +697,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
Track track = TestDataUtil.getTrack(trackId, 10);
|
Track track = TestDataUtil.getTrack(trackId, 10);
|
||||||
contentProviderUtils.insertTrack(track);
|
contentProviderUtils.insertTrack(track);
|
||||||
|
|
||||||
long[] trackpointIds = new long[track.getNumberOfPoints()];
|
long[] trackpointIds = new long[track.getLocations().size()];
|
||||||
for (int i = 0; i < trackpointIds.length; i++) {
|
for (int i = 0; i < trackpointIds.length; i++) {
|
||||||
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
||||||
}
|
}
|
||||||
@@ -726,7 +724,7 @@ public class CustomContentProviderUtilsTest {
|
|||||||
Track track = TestDataUtil.getTrack(trackId, 10);
|
Track track = TestDataUtil.getTrack(trackId, 10);
|
||||||
contentProviderUtils.insertTrack(track);
|
contentProviderUtils.insertTrack(track);
|
||||||
|
|
||||||
long[] trackpointIds = new long[track.getNumberOfPoints()];
|
long[] trackpointIds = new long[track.getLocations().size()];
|
||||||
for (int i = 0; i < trackpointIds.length; i++) {
|
for (int i = 0; i < trackpointIds.length; i++) {
|
||||||
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,10 +38,6 @@ public class Track {
|
|||||||
private String description = "";
|
private String description = "";
|
||||||
private String category = "";
|
private String category = "";
|
||||||
|
|
||||||
/*
|
|
||||||
* The number of location points (present even if the points themselves are not loaded)
|
|
||||||
*/
|
|
||||||
private int numberOfPoints = 0;
|
|
||||||
private String icon = "";
|
private String icon = "";
|
||||||
|
|
||||||
private TripStatistics tripStatistics = new TripStatistics();
|
private TripStatistics tripStatistics = new TripStatistics();
|
||||||
@@ -84,14 +80,6 @@ public class Track {
|
|||||||
this.category = category;
|
this.category = category;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumberOfPoints() {
|
|
||||||
return numberOfPoints;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNumberOfPoints(int numberOfPoints) {
|
|
||||||
this.numberOfPoints = numberOfPoints;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIcon() {
|
public String getIcon() {
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ public interface TracksColumns extends BaseColumns {
|
|||||||
String CATEGORY = "category"; // track activity type
|
String CATEGORY = "category"; // track activity type
|
||||||
String STARTTIME = "starttime"; // track start time
|
String STARTTIME = "starttime"; // track start time
|
||||||
String STOPTIME = "stoptime"; // track stop time
|
String STOPTIME = "stoptime"; // track stop time
|
||||||
String NUMPOINTS = "numpoints"; // number of track points
|
@Deprecated
|
||||||
|
String NUMPOINTS = "numpoints"; // number of track points //TODO UNUSED
|
||||||
String TOTALDISTANCE = "totaldistance"; // total distance
|
String TOTALDISTANCE = "totaldistance"; // total distance
|
||||||
String TOTALTIME = "totaltime"; // total time
|
String TOTALTIME = "totaltime"; // total time
|
||||||
String MOVINGTIME = "movingtime"; // moving time
|
String MOVINGTIME = "movingtime"; // moving time
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ public class ContentProviderUtils {
|
|||||||
int categoryIndex = cursor.getColumnIndexOrThrow(TracksColumns.CATEGORY);
|
int categoryIndex = cursor.getColumnIndexOrThrow(TracksColumns.CATEGORY);
|
||||||
int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME);
|
int startTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STARTTIME);
|
||||||
int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME);
|
int stopTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.STOPTIME);
|
||||||
int numPointsIndex = cursor.getColumnIndexOrThrow(TracksColumns.NUMPOINTS);
|
|
||||||
int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE);
|
int totalDistanceIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALDISTANCE);
|
||||||
int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME);
|
int totalTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.TOTALTIME);
|
||||||
int movingTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MOVINGTIME);
|
int movingTimeIndex = cursor.getColumnIndexOrThrow(TracksColumns.MOVINGTIME);
|
||||||
@@ -141,9 +140,6 @@ public class ContentProviderUtils {
|
|||||||
if (!cursor.isNull(stopTimeIndex)) {
|
if (!cursor.isNull(stopTimeIndex)) {
|
||||||
tripStatistics.setStopTime(cursor.getLong(stopTimeIndex));
|
tripStatistics.setStopTime(cursor.getLong(stopTimeIndex));
|
||||||
}
|
}
|
||||||
if (!cursor.isNull(numPointsIndex)) {
|
|
||||||
track.setNumberOfPoints(cursor.getInt(numPointsIndex));
|
|
||||||
}
|
|
||||||
if (!cursor.isNull(totalDistanceIndex)) {
|
if (!cursor.isNull(totalDistanceIndex)) {
|
||||||
tripStatistics.setTotalDistance(cursor.getFloat(totalDistanceIndex));
|
tripStatistics.setTotalDistance(cursor.getFloat(totalDistanceIndex));
|
||||||
}
|
}
|
||||||
@@ -199,7 +195,6 @@ public class ContentProviderUtils {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes track points and waypoints of a track.
|
* Deletes track points and waypoints of a track.
|
||||||
* Assumes {@link TracksColumns#NUMPOINTS} will be updated by the caller.
|
|
||||||
*
|
*
|
||||||
* @param trackId the track id
|
* @param trackId the track id
|
||||||
*/
|
*/
|
||||||
@@ -324,7 +319,6 @@ public class ContentProviderUtils {
|
|||||||
values.put(TracksColumns.CATEGORY, track.getCategory());
|
values.put(TracksColumns.CATEGORY, track.getCategory());
|
||||||
values.put(TracksColumns.STARTTIME, tripStatistics.getStartTime());
|
values.put(TracksColumns.STARTTIME, tripStatistics.getStartTime());
|
||||||
values.put(TracksColumns.STOPTIME, tripStatistics.getStopTime());
|
values.put(TracksColumns.STOPTIME, tripStatistics.getStopTime());
|
||||||
values.put(TracksColumns.NUMPOINTS, track.getNumberOfPoints());
|
|
||||||
values.put(TracksColumns.TOTALDISTANCE, tripStatistics.getTotalDistance());
|
values.put(TracksColumns.TOTALDISTANCE, tripStatistics.getTotalDistance());
|
||||||
values.put(TracksColumns.TOTALTIME, tripStatistics.getTotalTime());
|
values.put(TracksColumns.TOTALTIME, tripStatistics.getTotalTime());
|
||||||
values.put(TracksColumns.MOVINGTIME, tripStatistics.getMovingTime());
|
values.put(TracksColumns.MOVINGTIME, tripStatistics.getMovingTime());
|
||||||
|
|||||||
@@ -108,4 +108,13 @@ public class TrackPointIterator implements Iterator<TrackPoint>, AutoCloseable {
|
|||||||
public void remove() {
|
public void remove() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getCount() {
|
||||||
|
if (cursor == null) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cursor.getCount();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -161,7 +161,7 @@ public class FileTrackExporter implements TrackExporter {
|
|||||||
// Write the current location
|
// Write the current location
|
||||||
trackWriter.writeLocation(location);
|
trackWriter.writeLocation(location);
|
||||||
if (trackExporterListener != null) {
|
if (trackExporterListener != null) {
|
||||||
trackExporterListener.onProgressUpdate(locationNumber, track.getNumberOfPoints());
|
trackExporterListener.onProgressUpdate(locationNumber, locationIterator.getCount());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (wroteSegment) {
|
if (wroteSegment) {
|
||||||
|
|||||||
@@ -262,7 +262,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
|
|||||||
trackData.tripStatisticsUpdater.updateTime(trackData.importTime);
|
trackData.tripStatisticsUpdater.updateTime(trackData.importTime);
|
||||||
}
|
}
|
||||||
trackData.track.setTripStatistics(trackData.tripStatisticsUpdater.getTripStatistics());
|
trackData.track.setTripStatistics(trackData.tripStatisticsUpdater.getTripStatistics());
|
||||||
trackData.track.setNumberOfPoints(trackData.numberOfLocations);
|
|
||||||
contentProviderUtils.updateTrack(trackData.track);
|
contentProviderUtils.updateTrack(trackData.track);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -439,7 +439,7 @@ public class TrackRecordingService extends Service {
|
|||||||
insertLocation(track, lastLocation, getLastValidTrackPointInCurrentSegment(trackId));
|
insertLocation(track, lastLocation, getLastValidTrackPointInCurrentSegment(trackId));
|
||||||
|
|
||||||
// Update the recording track time
|
// Update the recording track time
|
||||||
updateRecordingTrack(track, false);
|
updateRecordingTrack(track);
|
||||||
}
|
}
|
||||||
|
|
||||||
String trackName = TrackNameUtils.getTrackName(this, trackId, track.getTripStatistics().getStartTime());
|
String trackName = TrackNameUtils.getTrackName(this, trackId, track.getTripStatistics().getStartTime());
|
||||||
@@ -650,7 +650,7 @@ public class TrackRecordingService extends Service {
|
|||||||
try {
|
try {
|
||||||
contentProviderUtils.insertTrackPoint(location, track.getId());
|
contentProviderUtils.insertTrackPoint(location, track.getId());
|
||||||
trackTripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
|
trackTripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
|
||||||
updateRecordingTrack(track, LocationUtils.isValidLocation(location));
|
updateRecordingTrack(track);
|
||||||
} catch (SQLiteException e) {
|
} catch (SQLiteException e) {
|
||||||
/*
|
/*
|
||||||
* Insert failed, most likely because of SqlLite error code 5 (SQLite_BUSY).
|
* Insert failed, most likely because of SqlLite error code 5 (SQLite_BUSY).
|
||||||
@@ -663,16 +663,10 @@ public class TrackRecordingService extends Service {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the recording track time.
|
* Updates the recording track time.
|
||||||
* Increase the number of points if it is a new and valid track point.
|
|
||||||
*
|
*
|
||||||
* @param track the track
|
* @param track the track
|
||||||
* @param increaseNumberOfPoints true to increase the number of points
|
|
||||||
*/
|
*/
|
||||||
private void updateRecordingTrack(Track track, boolean increaseNumberOfPoints) {
|
private void updateRecordingTrack(Track track) {
|
||||||
if (increaseNumberOfPoints) {
|
|
||||||
track.setNumberOfPoints(track.getNumberOfPoints() + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
trackTripStatisticsUpdater.updateTime(System.currentTimeMillis());
|
trackTripStatisticsUpdater.updateTime(System.currentTimeMillis());
|
||||||
track.setTripStatistics(trackTripStatisticsUpdater.getTripStatistics());
|
track.setTripStatistics(trackTripStatisticsUpdater.getTripStatistics());
|
||||||
contentProviderUtils.updateTrack(track);
|
contentProviderUtils.updateTrack(track);
|
||||||
|
|||||||
Reference in New Issue
Block a user