From 8c7a25cbd08a3a41ca77d95ab9133ea8b77756ca Mon Sep 17 00:00:00 2001 From: eddyizm Date: Mon, 13 Oct 2025 21:49:41 -0700 Subject: [PATCH] fix: update to handle nulls in the sort function --- .../ui/adapter/AlbumCatalogueAdapter.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/AlbumCatalogueAdapter.java b/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/AlbumCatalogueAdapter.java index 1f360c80..69583a40 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/AlbumCatalogueAdapter.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/adapter/AlbumCatalogueAdapter.java @@ -20,6 +20,7 @@ import com.cappielloantonio.tempo.util.MusicUtil; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; public class AlbumCatalogueAdapter extends RecyclerView.Adapter implements Filterable { @@ -152,12 +153,20 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter album.getName() != null ? album.getName() : "", + String.CASE_INSENSITIVE_ORDER + )); break; case Constants.ALBUM_ORDER_BY_ARTIST: - albums.sort(Comparator.comparing(AlbumID3::getArtist, Comparator.nullsLast(Comparator.naturalOrder()))); + albums.sort(Comparator.comparing( + album -> album.getArtist() != null ? album.getArtist() : "", + String.CASE_INSENSITIVE_ORDER + )); break; case Constants.ALBUM_ORDER_BY_YEAR: albums.sort(Comparator.comparing(AlbumID3::getYear)); @@ -166,15 +175,23 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter album.getCreated() != null ? album.getCreated() : new Date(0), + Comparator.nullsLast(Date::compareTo) + )); Collections.reverse(albums); break; case Constants.ALBUM_ORDER_BY_RECENTLY_PLAYED: - albums.sort(Comparator.comparing(AlbumID3::getPlayed)); + albums.sort(Comparator.comparing( + album -> album.getPlayed() != null ? album.getPlayed() : new Date(0), + Comparator.nullsLast(Date::compareTo) + )); Collections.reverse(albums); break; case Constants.ALBUM_ORDER_BY_MOST_PLAYED: - albums.sort(Comparator.comparing(AlbumID3::getPlayCount)); + albums.sort(Comparator.comparing( + album -> album.getPlayCount() != null ? album.getPlayCount() : 0L + )); Collections.reverse(albums); break; }