Sort library items alphabetically in secondary pass

Fixes #7461
This commit is contained in:
arkon 2022-10-29 10:11:12 -04:00
parent e1ab1fdb65
commit 224f29077d

View File

@ -266,11 +266,15 @@ class LibraryPresenter(
val collator = Collator.getInstance(locale).apply {
strength = Collator.PRIMARY
}
val sortAlphabetically: (LibraryItem, LibraryItem) -> Int = { i1, i2 ->
collator.compare(i1.libraryManga.manga.title.lowercase(locale), i2.libraryManga.manga.title.lowercase(locale))
}
val sortFn: (LibraryItem, LibraryItem) -> Int = { i1, i2 ->
val sort = sortModes[i1.libraryManga.category]!!
when (sort.type) {
LibrarySort.Type.Alphabetical -> {
collator.compare(i1.libraryManga.manga.title.lowercase(locale), i2.libraryManga.manga.title.lowercase(locale))
sortAlphabetically(i1, i2)
}
LibrarySort.Type.LastRead -> {
i1.libraryManga.lastRead.compareTo(i2.libraryManga.lastRead)
@ -308,7 +312,7 @@ class LibraryPresenter(
Collections.reverseOrder(sortFn)
}
entry.value.sortedWith(comparator)
entry.value.sortedWith(comparator.thenComparator(sortAlphabetically))
}
}