diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index aa65207bd..e17bd6edf 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -18,6 +18,7 @@
ImplicitDefaultLocale:PlaybackSpeedFragment.kt$PlaybackSpeedFragment$String.format("%.2f", value)
MagicNumber:ChangeSortingDialog.kt$ChangeSortingDialog$3
MagicNumber:ChangeSortingDialog.kt$ChangeSortingDialog$4
+ MagicNumber:ChangeSortingDialog.kt$ChangeSortingDialog$5
MagicNumber:Config.kt$Config$30
MagicNumber:Config.kt$Config$60
MagicNumber:EqualizerActivity.kt$EqualizerActivity$100
@@ -74,6 +75,7 @@
MaxLineLength:ChangeSortingDialog.kt$ChangeSortingDialog$radioItems.add(RadioItem(2, activity.getString(org.fossify.commons.R.string.duration), PLAYER_SORT_BY_DURATION))
MaxLineLength:ChangeSortingDialog.kt$ChangeSortingDialog$radioItems.add(RadioItem(4, activity.getString(org.fossify.commons.R.string.custom), PLAYER_SORT_BY_CUSTOM))
MaxLineLength:ChangeSortingDialog.kt$ChangeSortingDialog$radioItems.add(RadioItem(4, activity.getString(org.fossify.commons.R.string.date_added), PLAYER_SORT_BY_DATE_ADDED))
+ MaxLineLength:ChangeSortingDialog.kt$ChangeSortingDialog$radioItems.add(RadioItem(5, activity.getString(org.fossify.commons.R.string.filename), PLAYER_SORT_BY_FILENAME))
MaxLineLength:Config.kt$Config$set(excludedFolders) = prefs.edit().remove(EXCLUDED_FOLDERS).putStringSet(EXCLUDED_FOLDERS, excludedFolders).apply()
MaxLineLength:Config.kt$Config$set(wasAllTracksPlaylistCreated) = prefs.edit().putBoolean(WAS_ALL_TRACKS_PLAYLIST_CREATED, wasAllTracksPlaylistCreated).apply()
MaxLineLength:Context.kt$<no name provided>$override
diff --git a/app/src/main/kotlin/org/fossify/musicplayer/dialogs/ChangeSortingDialog.kt b/app/src/main/kotlin/org/fossify/musicplayer/dialogs/ChangeSortingDialog.kt
index b10de5821..97fbae03c 100644
--- a/app/src/main/kotlin/org/fossify/musicplayer/dialogs/ChangeSortingDialog.kt
+++ b/app/src/main/kotlin/org/fossify/musicplayer/dialogs/ChangeSortingDialog.kt
@@ -88,6 +88,7 @@ class ChangeSortingDialog(val activity: Activity, val location: Int, val playlis
radioItems.add(RadioItem(2, activity.getString(org.fossify.commons.R.string.duration), PLAYER_SORT_BY_DURATION))
radioItems.add(RadioItem(3, activity.getString(R.string.track_number), PLAYER_SORT_BY_TRACK_ID))
radioItems.add(RadioItem(4, activity.getString(org.fossify.commons.R.string.date_added), PLAYER_SORT_BY_DATE_ADDED))
+ radioItems.add(RadioItem(5, activity.getString(org.fossify.commons.R.string.filename), PLAYER_SORT_BY_FILENAME))
}
TAB_GENRES -> {
@@ -101,6 +102,7 @@ class ChangeSortingDialog(val activity: Activity, val location: Int, val playlis
radioItems.add(RadioItem(2, activity.getString(org.fossify.commons.R.string.duration), PLAYER_SORT_BY_DURATION))
radioItems.add(RadioItem(3, activity.getString(R.string.track_number), PLAYER_SORT_BY_TRACK_ID))
radioItems.add(RadioItem(4, activity.getString(org.fossify.commons.R.string.date_added), PLAYER_SORT_BY_DATE_ADDED))
+ radioItems.add(RadioItem(5, activity.getString(org.fossify.commons.R.string.filename), PLAYER_SORT_BY_FILENAME))
if (playlist != null) {
radioItems.add(RadioItem(4, activity.getString(org.fossify.commons.R.string.custom), PLAYER_SORT_BY_CUSTOM))
diff --git a/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt
index ad918088f..59a804536 100644
--- a/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt
+++ b/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt
@@ -107,6 +107,7 @@ const val PLAYER_SORT_BY_ARTIST_TITLE = 32
const val PLAYER_SORT_BY_TRACK_ID = 64
const val PLAYER_SORT_BY_CUSTOM = 128
const val PLAYER_SORT_BY_DATE_ADDED = 256
+const val PLAYER_SORT_BY_FILENAME = 512
const val PLAYLIST_SORTING = "playlist_sorting"
const val PLAYLIST_TRACKS_SORTING = "playlist_tracks_sorting"
diff --git a/app/src/main/kotlin/org/fossify/musicplayer/models/Track.kt b/app/src/main/kotlin/org/fossify/musicplayer/models/Track.kt
index 0599afeb7..6b6a252c2 100644
--- a/app/src/main/kotlin/org/fossify/musicplayer/models/Track.kt
+++ b/app/src/main/kotlin/org/fossify/musicplayer/models/Track.kt
@@ -72,6 +72,11 @@ data class Track(
}
}
sorting and PLAYER_SORT_BY_DATE_ADDED != 0 -> first.dateAdded.compareTo(second.dateAdded)
+ sorting and PLAYER_SORT_BY_FILENAME != 0 -> {
+ AlphanumericComparator().compare(
+ first.path.getFilenameFromPath().lowercase(), second.path.getFilenameFromPath().lowercase()
+ )
+ }
sorting and PLAYER_SORT_BY_CUSTOM != 0 -> first.orderInPlaylist.compareTo(second.orderInPlaylist)
else -> first.duration.compareTo(second.duration)
}
@@ -87,6 +92,7 @@ data class Track(
fun getBubbleText(sorting: Int) = when {
sorting and PLAYER_SORT_BY_TITLE != 0 -> title
sorting and PLAYER_SORT_BY_ARTIST_TITLE != 0 -> artist
+ sorting and PLAYER_SORT_BY_FILENAME != 0 -> path.getFilenameFromPath()
else -> duration.getFormattedDuration()
}