From 686a2a9b8fb1f3ae50871fe1f8fde1892007f088 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Tue, 25 Nov 2025 19:34:41 +0100 Subject: [PATCH] Cleanup: removed method that was only used for testing in ContentProviderUtils. --- .../data/CustomContentProviderUtilsTest.java | 64 ++++++++++--------- .../opentracks/data/ContentProviderUtils.java | 25 +------- .../opentracks/data/models/TrackPoint.java | 1 + 3 files changed, 37 insertions(+), 53 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java index e19a36bb1..4d3a96ef3 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java @@ -222,7 +222,7 @@ public class CustomContentProviderUtilsTest { Track.Id trackId = new Track.Id(System.currentTimeMillis()); TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); - Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker = new Marker(trackId, getLastValidTrackPoint(trackId)); contentProviderUtils.insertMarker(marker); assertCount(1, 10, 1); @@ -243,7 +243,7 @@ public class CustomContentProviderUtilsTest { Track.Id trackId = new Track.Id(System.currentTimeMillis()); Track track = TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); - TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); + TrackPoint trackPoint = getLastValidTrackPoint(trackId); Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); contentProviderUtils.insertMarker(marker); @@ -278,7 +278,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId2, 10); TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId3, 10); - Marker marker = new Marker(trackId1, contentProviderUtils.getLastValidTrackPoint(trackId2)); + Marker marker = new Marker(trackId1, getLastValidTrackPoint(trackId2)); contentProviderUtils.insertMarker(marker); assertCount(3, 30, 1); @@ -306,12 +306,12 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId3, 10); // Insert a marker in tracks trackId and trackId + 1. - TrackPoint trackPoint1 = contentProviderUtils.getLastValidTrackPoint(trackId1); + TrackPoint trackPoint1 = getLastValidTrackPoint(trackId1); Marker marker1 = TestDataUtil.createMarkerWithPhoto(context, trackId1, trackPoint1); contentProviderUtils.insertMarker(marker1); File dir1 = FileUtils.getPhotoDir(context, trackId1); - TrackPoint trackPoint2 = contentProviderUtils.getLastValidTrackPoint(trackId2); + TrackPoint trackPoint2 = getLastValidTrackPoint(trackId2); Marker marker2 = TestDataUtil.createMarkerWithPhoto(context, trackId2, trackPoint2); contentProviderUtils.insertMarker(marker2); File dir2 = FileUtils.getPhotoDir(context, trackId2); @@ -448,7 +448,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert at first. - Marker marker1 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker1 = new Marker(trackId, getLastValidTrackPoint(trackId)); marker1.setDescription(TEST_DESC); contentProviderUtils.insertMarker(marker1); @@ -475,7 +475,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert at first. - TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); + TrackPoint trackPoint = getLastValidTrackPoint(trackId); Marker marker1 = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); contentProviderUtils.insertMarker(marker1); @@ -525,11 +525,11 @@ public class CustomContentProviderUtilsTest { // TestDataUtil.insertTrackWithLocations(contentProviderUtils, track); // Insert at first. - Marker marker1 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker1 = new Marker(trackId, getLastValidTrackPoint(trackId)); marker1.setDescription(MOCK_DESC); Marker.Id marker1Id = contentProviderUtils.insertMarker(marker1); - Marker marker2 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker2 = new Marker(trackId, getLastValidTrackPoint(trackId)); marker2.setDescription(MOCK_DESC); Marker.Id marker2Id = contentProviderUtils.insertMarker(marker2); @@ -549,10 +549,10 @@ public class CustomContentProviderUtilsTest { Track.Id trackId = new Track.Id(System.currentTimeMillis()); TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); - Marker marker1 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); - Marker marker2 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); - Marker marker3 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); - Marker marker4 = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker1 = new Marker(trackId, getLastValidTrackPoint(trackId)); + Marker marker2 = new Marker(trackId, getLastValidTrackPoint(trackId)); + Marker marker3 = new Marker(trackId, getLastValidTrackPoint(trackId)); + Marker marker4 = new Marker(trackId, getLastValidTrackPoint(trackId)); contentProviderUtils.insertMarker(marker1); contentProviderUtils.insertMarker(marker2); contentProviderUtils.insertMarker(marker3); @@ -570,7 +570,7 @@ public class CustomContentProviderUtilsTest { Track.Id trackId = new Track.Id(System.currentTimeMillis()); TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); - Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker = new Marker(trackId, getLastValidTrackPoint(trackId)); marker.setDescription(TEST_DESC); Marker.Id markerId = contentProviderUtils.insertMarker(marker); @@ -586,7 +586,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert at first. - Marker marker = new Marker(trackId, contentProviderUtils.getLastValidTrackPoint(trackId)); + Marker marker = new Marker(trackId, getLastValidTrackPoint(trackId)); marker.setDescription(TEST_DESC); Marker.Id markerId = contentProviderUtils.insertMarker(marker); @@ -609,7 +609,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert at first. - TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); + TrackPoint trackPoint = getLastValidTrackPoint(trackId); Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); marker.setDescription(TEST_DESC); Marker.Id markerId = contentProviderUtils.insertMarker(marker); @@ -644,7 +644,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert at first. - TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); + TrackPoint trackPoint = getLastValidTrackPoint(trackId); Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); marker.setDescription(TEST_DESC); Marker.Id markerId = contentProviderUtils.insertMarker(marker); @@ -678,7 +678,7 @@ public class CustomContentProviderUtilsTest { TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); // Insert two markers with photos. - TrackPoint trackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); + TrackPoint trackPoint = getLastValidTrackPoint(trackId); Marker marker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); marker.setDescription(TEST_DESC); Marker otherMarker = TestDataUtil.createMarkerWithPhoto(context, trackId, trackPoint); @@ -812,19 +812,6 @@ public class CustomContentProviderUtilsTest { assertEquals(trackPoint.getPower(), trackPoints.get(10).getPower()); } - /** - * Tests the method {@link ContentProviderUtils#getLastValidTrackPoint(Track.Id)}. - */ - @Test - public void testGetLastValidTrackPoint() { - // Insert track, points at first. - Track.Id trackId = new Track.Id(System.currentTimeMillis()); - Track track = TestDataUtil.createTrackAndInsert(contentProviderUtils, trackId, 10); - - TrackPoint lastTrackPoint = contentProviderUtils.getLastValidTrackPoint(trackId); - checkLocation(9, lastTrackPoint.getLocation()); - } - @Test public void testGetTrackPointCursor_asc() { // given @@ -1222,4 +1209,19 @@ public class CustomContentProviderUtilsTest { public void testGetSensorStats_withSeveralRandomStartSegments() { testGetSensorStats_randomData(5000, true); } + + private TrackPoint getLastValidTrackPoint(Track.Id trackId) { + try (AutoCloseableIterator trackPointsCursor = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { + List trackpoints = new ArrayList<>(); + while (trackPointsCursor.hasNext()) + trackpoints.add(trackPointsCursor.next()); + trackpoints = trackpoints.reversed(); + + return trackpoints.reversed() + .stream() + .filter(it -> List.of(TrackPoint.Type.TRACKPOINT, TrackPoint.Type.SEGMENT_START_AUTOMATIC).contains(it.getType())) + .findFirst().orElseThrow(); + + } + } } diff --git a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java index 9675097db..43bb39fab 100644 --- a/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java @@ -634,32 +634,13 @@ public class ContentProviderUtils { return contentResolver.bulkInsert(MarkerColumns.CONTENT_URI, values); } - /** - * Gets the last valid location for a track. - * Returns null if it doesn't exist. - * - * @param trackId the track id - */ - @VisibleForTesting - @Deprecated // Use TrackPointIterator to fetch all TrackPoints and use the last. - public TrackPoint getLastValidTrackPoint(Track.Id trackId) { - String selection = TrackPointsColumns._ID + "=(SELECT MAX(" + TrackPointsColumns._ID + ") FROM " + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID + "=? AND " + TrackPointsColumns.TYPE + " IN (" + TrackPoint.Type.SEGMENT_START_AUTOMATIC.type_db + "," + TrackPoint.Type.TRACKPOINT.type_db + "))"; - String[] selectionArgs = new String[]{Long.toString(trackId.id())}; - - try (Cursor cursor = getTrackPointCursor(null, selection, selectionArgs, TrackPointsColumns._ID)) { - if (cursor != null && cursor.moveToNext()) { - return createTrackPoint(cursor); - } - } - return null; - } - /** * Creates a {@link TrackPoint} object from a cursor. * * @param cursor the cursor pointing to the location */ - public TrackPoint createTrackPoint(Cursor cursor) { + @VisibleForTesting + TrackPoint createTrackPoint(Cursor cursor) { return fillTrackPoint(cursor, new CachedTrackPointsIndexes(cursor)); } @@ -670,7 +651,7 @@ public class ContentProviderUtils { * @param startTrackPointId the starting trackPoint id. `null` to ignore */ @NonNull - public Cursor getTrackPointCursor(@NonNull Track.Id trackId, TrackPoint.Id startTrackPointId) { + Cursor getTrackPointCursor(@NonNull Track.Id trackId, TrackPoint.Id startTrackPointId) { String selection; String[] selectionArgs; if (startTrackPointId != null) { diff --git a/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java index 02eb73f38..c8354551c 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java @@ -130,6 +130,7 @@ public class TrackPoint { return type == Type.SEGMENT_END_MANUAL; } + //TODO Check if naming is correct. public boolean wasCreatedManually() { return hasLocation() || hasSpeed(); }