Added default sort order for MediaStore's default sort order
This commit is contained in:
parent
ce5a8292e2
commit
52fa8ebf42
6 changed files with 22 additions and 6 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue