diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index 94fd1c594a..2cc65bb3ad 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -637,6 +637,9 @@ class LibraryPresenter( * @param itemList the map to sort. */ private fun List.applySort(): List { + // Making sure `allCategories` is stable for `.sort()`Add commentMore actions + val categoryOrderMap = allCategories.associate { it.id to it.order } + val sortFn: (LibraryItem, LibraryItem) -> Int = { i1, i2 -> if (i1.header.category.id == i2.header.category.id) { val category = i1.header.category @@ -663,12 +666,8 @@ class LibraryPresenter( LibrarySort.DateAdded -> i2.manga.date_added.compareTo(i1.manga.date_added) LibrarySort.DragAndDrop -> { if (category.isDynamic) { - val category1 = - allCategories.find { i1.manga.category == it.id }?.order - ?: 0 - val category2 = - allCategories.find { i2.manga.category == it.id }?.order - ?: 0 + val category1 = categoryOrderMap[i1.manga.category] ?: 0 + val category2 = categoryOrderMap[i2.manga.category] ?: 0 category1.compareTo(category2) } else { sortAlphabetical(i1, i2)