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 { override fun getPopupText(position: Int): String {
val sectionName: String? = when (PreferenceUtil.songSortOrder) { 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_A_Z, SortOrder.SongSortOrder.SONG_Z_A -> dataSet[position].title
SortOrder.SongSortOrder.SONG_ALBUM -> dataSet[position].albumName SortOrder.SongSortOrder.SONG_ALBUM -> dataSet[position].albumName
SortOrder.SongSortOrder.SONG_ARTIST -> dataSet[position].artistName SortOrder.SongSortOrder.SONG_ARTIST -> dataSet[position].artistName

View file

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

View file

@ -72,8 +72,10 @@ class SortOrder {
companion object { companion object {
const val SONG_DEFAULT = MediaStore.Audio.Media.DEFAULT_SORT_ORDER
/* Song sort order A-Z */ /* 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 */ /* Song sort order Z-A */
const val SONG_Z_A = "$SONG_A_Z DESC" 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 var musicMediaTitle = mediaTitle
return try { return try {
if (musicMediaTitle.isNullOrEmpty()) { if (musicMediaTitle.isNullOrEmpty()) {
return "-" return "-"
} }
musicMediaTitle = musicMediaTitle.trim { it <= ' ' }.lowercase() musicMediaTitle = musicMediaTitle.trim { it <= ' ' }.lowercase()
if (musicMediaTitle.startsWith("the ")) { if (stripPrefix) {
musicMediaTitle = musicMediaTitle.substring(4) if (musicMediaTitle.startsWith("the ")) {
} else if (musicMediaTitle.startsWith("a ")) { musicMediaTitle = musicMediaTitle.substring(4)
musicMediaTitle = musicMediaTitle.substring(2) } else if (musicMediaTitle.startsWith("a ")) {
musicMediaTitle = musicMediaTitle.substring(2)
}
} }
if (musicMediaTitle.isEmpty()) { if (musicMediaTitle.isEmpty()) {
"" ""
} else musicMediaTitle.substring(0, 1).uppercase() } else musicMediaTitle.substring(0, 1).uppercase()

View file

@ -12,6 +12,7 @@
<item name="action_import_playlist" type="id" /> <item name="action_import_playlist" type="id" />
<item name="action_artist_sort_order_asc" type="id" /> <item name="action_artist_sort_order_asc" type="id" />
<item name="action_artist_sort_order_desc" type="id" /> <item name="action_artist_sort_order_desc" type="id" />
<item name="action_song_default_sort_order" type="id" />
<item name="action_song_sort_order_asc" type="id" /> <item name="action_song_sort_order_asc" type="id" />
<item name="action_song_sort_order_desc" type="id" /> <item name="action_song_sort_order_desc" type="id" />
<item name="action_playlist_sort_order_desc" type="id" /> <item name="action_playlist_sort_order_desc" type="id" />

View file

@ -501,6 +501,7 @@
<string name="sort_order_composer">Composer</string> <string name="sort_order_composer">Composer</string>
<string name="sort_order_date">Date added</string> <string name="sort_order_date">Date added</string>
<string name="sort_order_date_modified">Date modified</string> <string name="sort_order_date_modified">Date modified</string>
<string name="sort_order_default">Default</string>
<string name="sort_order_num_songs">Song count</string> <string name="sort_order_num_songs">Song count</string>
<string name="sort_order_num_songs_desc">Song count desc</string> <string name="sort_order_num_songs_desc">Song count desc</string>
<string name="sort_order_year">Year</string> <string name="sort_order_year">Year</string>