From cfae0d30b5d1e37a1347ea4f12321bea28b53321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sim=C3=A3o=20Mata?= Date: Sat, 14 Mar 2020 10:42:49 +0100 Subject: [PATCH] Sort artists using case insensitive comparison when offline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Simão Mata --- .../nullsum/audinaut/fragments/SelectArtistFragment.java | 5 ++--- .../net/nullsum/audinaut/service/OfflineMusicService.java | 1 + .../main/kotlin/net/nullsum/audinaut/domain/Indexes.kt | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/net/nullsum/audinaut/fragments/SelectArtistFragment.java b/app/src/main/java/net/nullsum/audinaut/fragments/SelectArtistFragment.java index ffbd86d..e3c32ae 100644 --- a/app/src/main/java/net/nullsum/audinaut/fragments/SelectArtistFragment.java +++ b/app/src/main/java/net/nullsum/audinaut/fragments/SelectArtistFragment.java @@ -169,7 +169,7 @@ public class SelectArtistFragment extends SelectRecyclerFragment i String musicFolderId = Util.getSelectedMusicFolderId(context); Indexes indexes = musicService.getIndexes(musicFolderId, refresh, context, listener); - indexes.sortChildren(context); + indexes.sortChildren(); items = new ArrayList<>(indexes.getShortcuts().size() + indexes.getArtists().size()); items.addAll(indexes.getShortcuts()); items.addAll(indexes.getArtists()); @@ -184,8 +184,7 @@ public class SelectArtistFragment extends SelectRecyclerFragment i } Indexes indexes = new Indexes(); - //indexes.setArtists = artists; - indexes.sortChildren(context); + indexes.sortChildren(); items = new ArrayList<>(indexes.getArtists()); entries = dir.getChildren(false, true); diff --git a/app/src/main/java/net/nullsum/audinaut/service/OfflineMusicService.java b/app/src/main/java/net/nullsum/audinaut/service/OfflineMusicService.java index 90bc8cd..8fc7fb4 100644 --- a/app/src/main/java/net/nullsum/audinaut/service/OfflineMusicService.java +++ b/app/src/main/java/net/nullsum/audinaut/service/OfflineMusicService.java @@ -71,6 +71,7 @@ public class OfflineMusicService implements MusicService { public Indexes getIndexes(String musicFolderId, boolean refresh, Context context, ProgressListener progressListener) { List artists = new ArrayList<>(); List entries = new ArrayList<>(); + File root = FileUtil.getMusicDirectory(context); for (File file : FileUtil.listFiles(root)) { if (file.isDirectory()) { diff --git a/app/src/main/kotlin/net/nullsum/audinaut/domain/Indexes.kt b/app/src/main/kotlin/net/nullsum/audinaut/domain/Indexes.kt index 0e797f6..d109db8 100644 --- a/app/src/main/kotlin/net/nullsum/audinaut/domain/Indexes.kt +++ b/app/src/main/kotlin/net/nullsum/audinaut/domain/Indexes.kt @@ -1,11 +1,15 @@ package net.nullsum.audinaut.domain -import android.content.Context import java.io.Serializable +import java.util.* class Indexes(var shortcuts: MutableList = mutableListOf(), var artists: MutableList = mutableListOf(), var entries: MutableList = mutableListOf()) : Serializable { - fun sortChildren(context: Context) { + + fun sortChildren() { + shortcuts.sortBy { s -> s.id.toLowerCase(Locale.ROOT) } + artists.sortBy { a -> a.name.toLowerCase(Locale.ROOT) } + entries.sortBy { e -> e.artist.toLowerCase(Locale.ROOT) } } }