Skip to content
Snippets Groups Projects
Commit 2d8b3341 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Use the natural sort for the TV file browser

Fixes #3063
parent 70d7473c
No related branches found
No related tags found
1 merge request!1895browser fragment fixes
Pipeline #469486 passed with stage
in 6 minutes and 39 seconds
......@@ -109,8 +109,8 @@ abstract class BrowserProvider(val context: Context, val dataset: LiveDataset<Me
else -> true
}
fun getComparator(nbOfDigits: Int): Comparator<MediaLibraryItem>? = when {
Settings.showTvUi && sort in arrayOf(Medialibrary.SORT_ALPHA, Medialibrary.SORT_DEFAULT, Medialibrary.SORT_FILENAME) && desc -> getTvDescComp(Settings.tvFoldersFirst)
Settings.showTvUi && sort in arrayOf(Medialibrary.SORT_ALPHA, Medialibrary.SORT_DEFAULT, Medialibrary.SORT_FILENAME) && !desc -> getTvAscComp(Settings.tvFoldersFirst)
Settings.showTvUi && sort in arrayOf(Medialibrary.SORT_ALPHA, Medialibrary.SORT_DEFAULT) && desc -> getTvDescComp(Settings.tvFoldersFirst)
Settings.showTvUi && sort in arrayOf(Medialibrary.SORT_ALPHA, Medialibrary.SORT_DEFAULT) && !desc -> getTvAscComp(Settings.tvFoldersFirst)
url != null && Uri.parse(url)?.scheme == "upnp" -> null
sort == Medialibrary.SORT_ALPHA && desc -> descComp
sort == Medialibrary.SORT_ALPHA && !desc -> ascComp
......
......@@ -12,6 +12,7 @@ import org.videolan.medialibrary.media.DummyItem
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.medialibrary.media.Storage
import org.videolan.resources.util.*
import org.videolan.tools.Settings
import org.videolan.vlc.PlaybackService
import java.util.*
import kotlin.math.floor
......@@ -298,6 +299,12 @@ fun getTvDescComp(foldersFirst: Boolean): Comparator<MediaLibraryItem> = Compara
}
fun getFilenameAscComp(nbOfDigits: Int): Comparator<MediaLibraryItem> = Comparator<MediaLibraryItem> { item1, item2 ->
if (Settings.showTvUi && Settings.tvFoldersFirst) {
val type1 = (item1 as? MediaWrapper)?.type
val type2 = (item2 as? MediaWrapper)?.type
if (type1 == MediaWrapper.TYPE_DIR && type2 != MediaWrapper.TYPE_DIR) return@Comparator -1
else if (type1 != MediaWrapper.TYPE_DIR && type2 == MediaWrapper.TYPE_DIR) return@Comparator 1
}
val type1 = (item1 as? MediaWrapper)?.type
val type2 = (item2 as? MediaWrapper)?.type
if (type1 == MediaWrapper.TYPE_DIR && type2 != MediaWrapper.TYPE_DIR) return@Comparator -1
......@@ -309,6 +316,12 @@ fun getFilenameAscComp(nbOfDigits: Int): Comparator<MediaLibraryItem> = Comparat
}
fun getFilenameDescComp(nbOfDigits: Int): Comparator<MediaLibraryItem> = Comparator<MediaLibraryItem> { item1, item2 ->
if (Settings.showTvUi && Settings.tvFoldersFirst) {
val type1 = (item1 as? MediaWrapper)?.type
val type2 = (item2 as? MediaWrapper)?.type
if (type1 == MediaWrapper.TYPE_DIR && type2 != MediaWrapper.TYPE_DIR) return@Comparator -1
else if (type1 != MediaWrapper.TYPE_DIR && type2 == MediaWrapper.TYPE_DIR) return@Comparator 1
}
val type1 = (item1 as? MediaWrapper)?.type
val type2 = (item2 as? MediaWrapper)?.type
if (type1 == MediaWrapper.TYPE_DIR && type2 != MediaWrapper.TYPE_DIR) return@Comparator -1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment