Added default sort order for MediaStore's default sort order

This commit is contained in:
Prathamesh More 2022-06-06 10:27:39 +05:30
parent ce5a8292e2
commit 52fa8ebf42
6 changed files with 22 additions and 6 deletions

View file

@ -159,6 +159,7 @@ open class SongAdapter(
override fun getPopupText(position: Int): String {
val sectionName: String? = when (PreferenceUtil.songSortOrder) {
SortOrder.SongSortOrder.SONG_DEFAULT -> return MusicUtil.getSectionName(dataSet[position].title, true)
SortOrder.SongSortOrder.SONG_A_Z, SortOrder.SongSortOrder.SONG_Z_A -> dataSet[position].title
SortOrder.SongSortOrder.SONG_ALBUM -> dataSet[position].albumName
SortOrder.SongSortOrder.SONG_ARTIST -> dataSet[position].artistName

View file

@ -142,6 +142,13 @@ class SongsFragment : AbsRecyclerViewCustomGridSizeFragment<SongAdapter, GridLay
private fun setUpSortOrderMenu(sortOrderMenu: SubMenu) {
val currentSortOrder: String? = getSortOrder()
sortOrderMenu.clear()
sortOrderMenu.add(
0,
R.id.action_song_default_sort_order,
0,
R.string.sort_order_default
).isChecked =
currentSortOrder == SongSortOrder.SONG_DEFAULT
sortOrderMenu.add(
0,
R.id.action_song_sort_order_asc,
@ -270,6 +277,7 @@ class SongsFragment : AbsRecyclerViewCustomGridSizeFragment<SongAdapter, GridLay
private fun handleSortOrderMenuItem(item: MenuItem): Boolean {
val sortOrder: String = when (item.itemId) {
R.id.action_song_default_sort_order -> SongSortOrder.SONG_DEFAULT
R.id.action_song_sort_order_asc -> SongSortOrder.SONG_A_Z
R.id.action_song_sort_order_desc -> SongSortOrder.SONG_Z_A
R.id.action_song_sort_order_artist -> SongSortOrder.SONG_ARTIST

View file

@ -72,8 +72,10 @@ class SortOrder {
companion object {
const val SONG_DEFAULT = MediaStore.Audio.Media.DEFAULT_SORT_ORDER
/* Song sort order A-Z */
const val SONG_A_Z = MediaStore.Audio.Media.DEFAULT_SORT_ORDER
const val SONG_A_Z = MediaStore.Audio.Media.TITLE
/* Song sort order Z-A */
const val SONG_Z_A = "$SONG_A_Z DESC"

View file

@ -226,18 +226,21 @@ object MusicUtil : KoinComponent {
}
}
fun getSectionName(mediaTitle: String?): String {
fun getSectionName(mediaTitle: String?, stripPrefix: Boolean = false): String {
var musicMediaTitle = mediaTitle
return try {
if (musicMediaTitle.isNullOrEmpty()) {
return "-"
}
musicMediaTitle = musicMediaTitle.trim { it <= ' ' }.lowercase()
if (musicMediaTitle.startsWith("the ")) {
musicMediaTitle = musicMediaTitle.substring(4)
} else if (musicMediaTitle.startsWith("a ")) {
musicMediaTitle = musicMediaTitle.substring(2)
if (stripPrefix) {
if (musicMediaTitle.startsWith("the ")) {
musicMediaTitle = musicMediaTitle.substring(4)
} else if (musicMediaTitle.startsWith("a ")) {
musicMediaTitle = musicMediaTitle.substring(2)
}
}
if (musicMediaTitle.isEmpty()) {
""
} else musicMediaTitle.substring(0, 1).uppercase()