diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/AbstractTestFileTrackImporter.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/AbstractTestFileTrackImporter.java index e0d85daf9..f5f1634bc 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/AbstractTestFileTrackImporter.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/AbstractTestFileTrackImporter.java @@ -128,7 +128,5 @@ public abstract class AbstractTestFileTrackImporter { if (time != -1L) { Assert.assertEquals(time, track.getTripStatistics().getStartTime()); } - Assert.assertNotSame(-1, track.getStartId()); - Assert.assertNotSame(-1, track.getStopId()); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/content/ContentProviderUtils.java index 338716a48..c8abd1491 100644 --- a/src/main/java/de/dennisguse/opentracks/content/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/content/ContentProviderUtils.java @@ -142,12 +142,6 @@ public class ContentProviderUtils { if (!cursor.isNull(categoryIndex)) { track.setCategory(cursor.getString(categoryIndex)); } - if (!cursor.isNull(startIdIndex)) { - track.setStartId(cursor.getLong(startIdIndex)); - } - if (!cursor.isNull(stopIdIndex)) { - track.setStopId(cursor.getLong(stopIdIndex)); - } if (!cursor.isNull(startTimeIndex)) { tripStatistics.setStartTime(cursor.getLong(startTimeIndex)); } @@ -224,20 +218,16 @@ public class ContentProviderUtils { } /** - * Deletes track points and waypoints of a track. Assumes - * {@link TracksColumns#STARTID}, {@link TracksColumns#STOPID}, and - * {@link TracksColumns#NUMPOINTS} will be updated by the caller. + * Deletes track points and waypoints of a track. + * Assumes {@link TracksColumns#NUMPOINTS} will be updated by the caller. * * @param trackId the track id */ private void deleteTrackPointsAndWaypoints(Context context, long trackId) { - Track track = getTrack(trackId); - if (track != null) { - String where = TrackPointsColumns._ID + ">=? AND " + TrackPointsColumns._ID + "<=?"; - String[] selectionArgs = new String[]{ - Long.toString(track.getStartId()), Long.toString(track.getStopId())}; - contentResolver.delete(TrackPointsColumns.CONTENT_URI, where, selectionArgs); - } + String where = TrackPointsColumns.TRACKID + "=?"; + String[] selectionArgs = new String[]{Long.toString(trackId)}; + contentResolver.delete(TrackPointsColumns.CONTENT_URI, where, selectionArgs); + contentResolver.delete(WaypointsColumns.CONTENT_URI, WaypointsColumns.TRACKID + "=?", new String[]{Long.toString(trackId)}); deleteDirectoryRecurse(context, FileUtils.getPhotoDir(trackId)); @@ -354,8 +344,6 @@ public class ContentProviderUtils { values.put(TracksColumns.NAME, track.getName()); values.put(TracksColumns.DESCRIPTION, track.getDescription()); values.put(TracksColumns.CATEGORY, track.getCategory()); - values.put(TracksColumns.STARTID, track.getStartId()); - values.put(TracksColumns.STOPID, track.getStopId()); values.put(TracksColumns.STARTTIME, tripStatistics.getStartTime()); values.put(TracksColumns.STOPTIME, tripStatistics.getStopTime()); values.put(TracksColumns.NUMPOINTS, track.getNumberOfPoints()); @@ -743,6 +731,7 @@ public class ContentProviderUtils { * * @param trackId the track id */ + @Deprecated public long getFirstTrackPointId(long trackId) { if (trackId < 0) { return -1L; @@ -765,6 +754,7 @@ public class ContentProviderUtils { * * @param trackId the track id */ + @Deprecated public long getLastTrackPointId(long trackId) { if (trackId < 0) { return -1L; diff --git a/src/main/java/de/dennisguse/opentracks/content/CustomContentProvider.java b/src/main/java/de/dennisguse/opentracks/content/CustomContentProvider.java index 298b8e21d..58914eae9 100644 --- a/src/main/java/de/dennisguse/opentracks/content/CustomContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/content/CustomContentProvider.java @@ -334,8 +334,7 @@ public abstract class CustomContentProvider extends ContentProvider { */ private Uri insertTrack(Uri url, ContentValues contentValues) { boolean hasStartTime = contentValues.containsKey(TracksColumns.STARTTIME); - boolean hasStartId = contentValues.containsKey(TracksColumns.STARTID); - if (!hasStartTime || !hasStartId) { + if (!hasStartTime) { throw new IllegalArgumentException("Both start time and start id values are required."); } long rowId = db.insert(TracksColumns.TABLE_NAME, TracksColumns._ID, contentValues); diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Track.java b/src/main/java/de/dennisguse/opentracks/content/data/Track.java index c2fb000c0..c18ff745a 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Track.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/Track.java @@ -35,8 +35,6 @@ public class Track { private String name = ""; private String description = ""; private String category = ""; - private long startId = -1L; - private long stopId = -1L; /* * The number of location points (present even if the points themselves are not loaded) @@ -84,22 +82,6 @@ public class Track { this.category = category; } - public long getStartId() { - return startId; - } - - public void setStartId(long startId) { - this.startId = startId; - } - - public long getStopId() { - return stopId; - } - - public void setStopId(long stopId) { - this.stopId = stopId; - } - public int getNumberOfPoints() { return numberOfPoints; } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java b/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java index 173d795ac..15bc27b7e 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java @@ -38,8 +38,10 @@ public interface TracksColumns extends BaseColumns { String NAME = "name"; // track name String DESCRIPTION = "description"; // track description String CATEGORY = "category"; // track activity type - String STARTID = "startid"; // first track point id - String STOPID = "stopid"; // last track point id + @Deprecated + String STARTID = "startid"; // first track point id // TODO UNUSED + @Deprecated + String STOPID = "stopid"; // last track point id // TODO UNUSED String STARTTIME = "starttime"; // track start time String STOPTIME = "stoptime"; // track stop time String NUMPOINTS = "numpoints"; // number of track points diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java index 1a4db5a23..5c093c0b6 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java @@ -357,11 +357,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track */ protected void insertTrackPoint(Location location) { insertLocation(location); - - if (trackData.track.getStartId() == -1L) { - // Flush the location to set the track start id and the track end id - flushLocations(trackData); - } } /** @@ -479,10 +474,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track } contentProviderUtils.bulkInsertTrackPoint(data.bufferedLocations, data.numBufferedLocations, data.track.getId()); data.numBufferedLocations = 0; - if (data.track.getStartId() == -1L) { - data.track.setStartId(contentProviderUtils.getFirstTrackPointId(data.track.getId())); - } - data.track.setStopId(contentProviderUtils.getLastTrackPointId(data.track.getId())); } /** diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 34ebff4cf..51efb98dc 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -463,7 +463,7 @@ public class TrackRecordingService extends Service { insertLocation(track, lastLocation, getLastValidTrackPointInCurrentSegment(trackId)); // Update the recording track time - updateRecordingTrack(track, contentProviderUtils.getLastTrackPointId(trackId), false); + updateRecordingTrack(track, false); } String trackName = TrackNameUtils.getTrackName(this, trackId, track.getTripStatistics().getStartTime()); @@ -687,9 +687,8 @@ public class TrackRecordingService extends Service { try { Uri uri = contentProviderUtils.insertTrackPoint(location, track.getId()); - long trackPointId = Long.parseLong(uri.getLastPathSegment()); trackTripStatisticsUpdater.addLocation(location, recordingDistanceInterval); - updateRecordingTrack(track, trackPointId, LocationUtils.isValidLocation(location)); + updateRecordingTrack(track, LocationUtils.isValidLocation(location)); } catch (SQLiteException e) { /* * Insert failed, most likely because of SqlLite error code 5 (SQLite_BUSY). @@ -705,16 +704,9 @@ public class TrackRecordingService extends Service { * Increase the number of points if it is a new and valid track point. * * @param track the track - * @param lastTrackPointId the last track point id * @param increaseNumberOfPoints true to increase the number of points */ - private void updateRecordingTrack(Track track, long lastTrackPointId, boolean increaseNumberOfPoints) { - if (lastTrackPointId >= 0) { - if (track.getStartId() < 0) { - track.setStartId(lastTrackPointId); - } - track.setStopId(lastTrackPointId); - } + private void updateRecordingTrack(Track track, boolean increaseNumberOfPoints) { if (increaseNumberOfPoints) { track.setNumberOfPoints(track.getNumberOfPoints() + 1); }