From 50d46fe7f69fd35e7307760dd5fc849b5f9987de Mon Sep 17 00:00:00 2001 From: arkon Date: Thu, 5 Jan 2023 22:34:24 -0500 Subject: [PATCH] Prioritize "all" ("Multi") lang in extensions lists Fixes #8811 Fixes #8812 --- .../domain/extension/interactor/GetExtensionLanguages.kt | 5 +---- .../domain/source/interactor/GetLanguagesWithSources.kt | 5 +---- .../tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt | 6 +++--- .../java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt | 5 +++++ 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt index a4917f43f9..968cfbabe7 100644 --- a/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt +++ b/app/src/main/java/eu/kanade/domain/extension/interactor/GetExtensionLanguages.kt @@ -25,10 +25,7 @@ class GetExtensionLanguages( } .distinct() .sortedWith( - compareBy( - { it !in enabledLanguage }, - { LocaleHelper.getDisplayName(it) }, - ), + compareBy { it !in enabledLanguage }.then(LocaleHelper.comparator), ) } } diff --git a/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt b/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt index 8fa640f539..ce6a4288dd 100644 --- a/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt +++ b/app/src/main/java/eu/kanade/domain/source/interactor/GetLanguagesWithSources.kt @@ -25,10 +25,7 @@ class GetLanguagesWithSources( sortedSources.groupBy { it.lang } .toSortedMap( - compareBy( - { it !in enabledLanguage }, - { LocaleHelper.getDisplayName(it) }, - ), + compareBy { it !in enabledLanguage }.then(LocaleHelper.comparator), ) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt index 7d31bd92a9..184e47951b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionsScreenModel.kt @@ -82,11 +82,11 @@ class ExtensionsScreenModel( val languagesWithExtensions = _available .filter(queryFilter(searchQuery)) - .groupBy { LocaleHelper.getSourceDisplayName(it.lang, context) } - .toSortedMap() + .groupBy { it.lang } + .toSortedMap(LocaleHelper.comparator) .flatMap { (lang, exts) -> listOf( - ExtensionUiModel.Header.Text(lang), + ExtensionUiModel.Header.Text(LocaleHelper.getSourceDisplayName(lang, context)), *exts.map(extensionMapper(downloads)).toTypedArray(), ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt index 21a2e7d7c6..ac79660218 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/LocaleHelper.kt @@ -11,6 +11,11 @@ import java.util.Locale */ object LocaleHelper { + val comparator = compareBy( + { getDisplayName(it) }, + { it == "all" }, + ) + /** * Returns display name of a string language code. */