fix: cleans up duplicates

This commit is contained in:
eddyizm 2026-01-03 08:17:53 -08:00
parent d04ed8d430
commit 05785979e3
No known key found for this signature in database
GPG key ID: CF5F671829E8158A

View file

@ -117,22 +117,20 @@ public class SongRepository {
}
int added = 0;
for (Child s : batch) {
if (!accumulatedSongs.contains(s) && accumulatedSongs.size() < targetCount) {
trackIds.add(s.getId());
accumulatedSongs.add(s);
for (Child song : batch) {
if (!trackIds.contains(song.getId()) && accumulatedSongs.size() < targetCount) {
trackIds.add(song.getId());
accumulatedSongs.add(song);
added++;
}
}
if (added > 0) {
originalCallback.onSongsAvailable(new ArrayList<>(accumulatedSongs));
if (accumulatedSongs.size() >= targetCount) {
originalCallback.onSongsAvailable(new ArrayList<>(accumulatedSongs));
isComplete = true;
}
}
}
}
private void performSmartMix(final String id, final SeedType type, final int count, final MediaCallbackInternal callback) {
switch (type) {
@ -194,14 +192,12 @@ public class SongRepository {
List<Child> limitedSimilar = similar.subList(0, Math.min(count, similar.size()));
callback.onSongsAvailable(limitedSimilar);
} else {
Log.d(TAG, "No similar songs, calling fillWithRandom");
fillWithRandom(count, callback);
}
}
@Override
public void onFailure(@NonNull Call<ApiResponse> call, @NonNull Throwable t) {
Log.d(TAG, "getSimilarSongs2 failed: " + t.getMessage());
fillWithRandom(count, callback);
}
});