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); return new MarkerIterator(this, trackId, -1);
} }
//TODO Use MarkerIterator instead public AutoCloseableIterator<Marker> getMarkerIterator(@NonNull Track.Id trackId, int maxCount) {
Cursor getMarkerCursor(@NonNull Track.Id trackId) { return new MarkerIterator(this, trackId, maxCount);
return getMarkerCursor(trackId, -1);
} }
/** /**
@@ -445,7 +444,7 @@ public class ContentProviderUtils {
* @param trackId the track id * @param trackId the track id
* @param maxCount the maximum number of markers to return. -1 for no limit * @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 selection;
String[] selectionArgs; String[] selectionArgs;
@@ -276,20 +276,13 @@ public class TrackDataHub {
trackDataListener.clearMarkers(); trackDataListener.clearMarkers();
} }
try (Cursor cursor = contentProviderUtils.getMarkerCursor(selectedTrackId, MAX_DISPLAYED_MARKERS)) { try (AutoCloseableIterator<Marker> markerIterator = contentProviderUtils.getMarkerIterator(selectedTrackId, MAX_DISPLAYED_MARKERS)) {
if (cursor != null && cursor.moveToFirst()) { markerIterator.forEachRemaining(current ->
do { trackDataListeners.forEach(listener -> listener.onNewMarker(current))
Marker marker = contentProviderUtils.createMarker(cursor); );
for (Listener trackDataListener : trackDataListeners) {
trackDataListener.onNewMarker(marker);
}
} while (cursor.moveToNext());
}
} }
for (Listener trackDataListener : trackDataListeners) { trackDataListeners.forEach(Listener::onNewMarkersDone);
trackDataListener.onNewMarkersDone();
}
} }
/** /**