From 18a119e9cfd4cd20cff8bc2576dbb769cd2f1882 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Sat, 15 Jan 2022 19:28:05 -0500 Subject: [PATCH] Fix issue 158, some sources not updating with group by source --- .../tachiyomi/data/library/LibraryUpdateService.kt | 10 +++++++--- .../tachiyomi/ui/library/LibraryCategoryView.kt | 3 +-- .../kanade/tachiyomi/ui/library/LibraryPresenter.kt | 11 ++++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt index 33ebb8564..8437d2b9a 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt @@ -327,9 +327,13 @@ class LibraryUpdateService( } } LibraryGroup.BY_SOURCE -> { - val sourceExtra = groupExtra.nullIfBlank() - val source = sourceManager.getCatalogueSources().find { it.name == sourceExtra } - if (source != null) libraryManga.filter { it.source == source.id } else emptyList() + val sourceExtra = groupExtra.nullIfBlank()?.toIntOrNull() + val source = libraryManga.map { it.source } + .distinct() + .sorted() + .getOrNull(sourceExtra ?: -1) + + if (source != null) libraryManga.filter { it.source == source } else emptyList() } LibraryGroup.BY_STATUS -> { val statusExtra = groupExtra?.toIntOrNull() ?: -1 diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt index 32a64f303..eda56987e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt @@ -405,8 +405,7 @@ class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: Att // SY --> private fun getGroupExtra() = when (controller.presenter.groupType) { LibraryGroup.BY_DEFAULT -> null - LibraryGroup.BY_SOURCE -> category.name - LibraryGroup.BY_STATUS, LibraryGroup.BY_TRACK_STATUS -> category.id.toString() + LibraryGroup.BY_SOURCE, LibraryGroup.BY_STATUS, LibraryGroup.BY_TRACK_STATUS -> category.id.toString() else -> null } 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 036e3d5fb..7d7230623 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -836,9 +836,14 @@ class LibraryPresenter( grouping += Triple(SManga.COMPLETED.toString(), SManga.COMPLETED, context.getString(R.string.completed)) grouping += Triple(SManga.UNKNOWN.toString(), SManga.UNKNOWN, context.getString(R.string.unknown)) } - LibraryGroup.BY_SOURCE -> libraryManga.distinctBy { it.manga.source }.map { it.manga.source }.forEachIndexed { index, sourceLong -> - grouping += Triple(sourceLong.toString(), index, sourceManager.getOrStub(sourceLong).name) - } + LibraryGroup.BY_SOURCE -> + libraryManga + .map { it.manga.source } + .distinct() + .sorted() + .forEachIndexed { index, sourceLong -> + grouping += Triple(sourceLong.toString(), index, sourceManager.getOrStub(sourceLong).name) + } LibraryGroup.BY_TRACK_STATUS -> { grouping += Triple("1", 1, context.getString(R.string.reading)) grouping += Triple("2", 2, context.getString(R.string.repeating))