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 1459ff5acc..2618c94b77 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 @@ -102,6 +102,10 @@ class LibraryPresenter( /** Get favorited manga for library and sort and filter it */ fun getLibrary() { if (categories.isEmpty()) { + val dbCategories = db.getCategories().executeAsBlocking() + if ((dbCategories + Category.createDefault(context)).distinctBy { it.order }.size != dbCategories.size + 1) { + reorderCategories(dbCategories) + } categories = lastCategories ?: db.getCategories().executeAsBlocking().toMutableList() } presenterScope.launch { @@ -119,6 +123,12 @@ class LibraryPresenter( } } + private fun reorderCategories(categories: List) { + val sortedCategories = categories.sortedBy { it.order } + sortedCategories.forEachIndexed { i, category -> category.order = i } + db.insertCategories(sortedCategories).executeAsBlocking() + } + fun getCurrentCategory() = categories.find { it.id == currentCategory } fun switchSection(order: Int) {