Use MarkerIterator for TrackDataHub.

This commit is contained in:
Dennis Guse
2025-11-26 22:46:39 +01:00
parent a1da53864e
commit 6833ea7282
2 changed files with 8 additions and 16 deletions
@@ -434,9 +434,8 @@ public class ContentProviderUtils {
return new MarkerIterator(this, trackId, -1);
}
//TODO Use MarkerIterator instead
Cursor getMarkerCursor(@NonNull Track.Id trackId) {
return getMarkerCursor(trackId, -1);
public AutoCloseableIterator<Marker> getMarkerIterator(@NonNull Track.Id trackId, int maxCount) {
return new MarkerIterator(this, trackId, maxCount);
}
/**
@@ -445,7 +444,7 @@ public class ContentProviderUtils {
* @param trackId the track id
* @param maxCount the maximum number of markers to return. -1 for no limit
*/
public Cursor getMarkerCursor(@NonNull Track.Id trackId, int maxCount) {
Cursor getMarkerCursor(@NonNull Track.Id trackId, int maxCount) {
String selection;
String[] selectionArgs;
@@ -276,20 +276,13 @@ public class TrackDataHub {
trackDataListener.clearMarkers();
}
try (Cursor cursor = contentProviderUtils.getMarkerCursor(selectedTrackId, MAX_DISPLAYED_MARKERS)) {
if (cursor != null && cursor.moveToFirst()) {
do {
Marker marker = contentProviderUtils.createMarker(cursor);
for (Listener trackDataListener : trackDataListeners) {
trackDataListener.onNewMarker(marker);
}
} while (cursor.moveToNext());
}
try (AutoCloseableIterator<Marker> markerIterator = contentProviderUtils.getMarkerIterator(selectedTrackId, MAX_DISPLAYED_MARKERS)) {
markerIterator.forEachRemaining(current ->
trackDataListeners.forEach(listener -> listener.onNewMarker(current))
);
}
for (Listener trackDataListener : trackDataListeners) {
trackDataListener.onNewMarkersDone();
}
trackDataListeners.forEach(Listener::onNewMarkersDone);
}
/**