From 6b51eb84fa8962f59db2dc547d28b810b1cf50af Mon Sep 17 00:00:00 2001 From: "Huang, Zhaoquan" Date: Wed, 16 Mar 2022 12:21:50 +0800 Subject: [PATCH] Sort song repository in a localized way --- .../retromusic/repository/SongRepository.kt | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt index bfbfe62ab..7bf064e5c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt @@ -28,9 +28,11 @@ import code.name.monkey.retromusic.extensions.getInt import code.name.monkey.retromusic.extensions.getLong import code.name.monkey.retromusic.extensions.getString import code.name.monkey.retromusic.extensions.getStringOrNull +import code.name.monkey.retromusic.helper.SortOrder import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.providers.BlacklistStore import code.name.monkey.retromusic.util.PreferenceUtil +import java.text.Collator /** * Created by hemanths on 10/08/17. @@ -66,7 +68,33 @@ class RealSongRepository(private val context: Context) : SongRepository { } while (cursor.moveToNext()) } cursor?.close() - return songs + return when (PreferenceUtil.songSortOrder) { + SortOrder.SongSortOrder.SONG_A_Z -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s1.title, s2.title) } + } + SortOrder.SongSortOrder.SONG_Z_A -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s2.title, s1.title) } + } + SortOrder.SongSortOrder.SONG_ALBUM -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s1.albumName, s2.albumName) } + } + SortOrder.SongSortOrder.SONG_ALBUM_ARTIST -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s1.albumArtist, s2.albumArtist) } + } + SortOrder.SongSortOrder.SONG_ARTIST -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s1.artistName, s2.artistName) } + } + SortOrder.SongSortOrder.COMPOSER -> { + val collator = Collator.getInstance() + songs.sortedWith{ s1, s2 -> collator.compare(s1.composer, s2.composer) } + } + else -> songs + } } override fun song(cursor: Cursor?): Song {