From ce727d6d42e286af2bd3d0a2761d55fa2ed201d9 Mon Sep 17 00:00:00 2001 From: "Tran M. Cuong" Date: Wed, 28 Aug 2024 23:54:39 +0700 Subject: [PATCH] fix: correctly using language flag in source name to avoid it appears in folder name (#313) * fix: correctly using language flag in source name to avoid it appears in folder name * using flag language in PreMigration list --- .../tachiyomi/source/SourceExtensions.kt | 43 +++++++++++++++---- .../advanced/design/MigrationSourceHolder.kt | 8 ++-- .../tachiyomi/ui/manga/MangaScreenModel.kt | 4 +- source-api/build.gradle.kts | 4 -- .../tachiyomi/source/online/HttpSource.kt | 5 +-- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt index 5580d039d..e91f7bc3c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt @@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.source import eu.kanade.domain.source.service.SourcePreferences import tachiyomi.domain.source.model.StubSource +import tachiyomi.presentation.core.icons.FlagEmoji import tachiyomi.source.local.isLocal import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -9,10 +10,11 @@ import uy.kohesive.injekt.api.get fun Source.getNameForMangaInfo( // SY --> mergeSources: List?, - enabledLanguages: List = Injekt.get().enabledLanguages().get() - .filterNot { it in listOf("all", "other") }, // SY <-- ): String { + val preferences = Injekt.get() + val enabledLanguages = preferences.enabledLanguages().get() + .filterNot { it in listOf("all", "other") } val hasOneActiveLanguages = enabledLanguages.size == 1 val isInEnabledLanguages = lang in enabledLanguages return when { @@ -23,11 +25,20 @@ fun Source.getNameForMangaInfo( hasOneActiveLanguages, ) // SY <-- + // KMK --> + this is StubSource -> toString() + // KMK <-- // For edge cases where user disables a source they got manga of in their library. - hasOneActiveLanguages && !isInEnabledLanguages -> toString() + hasOneActiveLanguages && !isInEnabledLanguages -> + // KMK --> + "$name (${FlagEmoji.getEmojiLangFlag(lang)})" + // KMK <-- // Hide the language tag when only one language is used. hasOneActiveLanguages && isInEnabledLanguages -> name - else -> toString() + else -> + // KMK --> + "$name (${FlagEmoji.getEmojiLangFlag(lang)})" + // KMK <-- } } @@ -39,14 +50,28 @@ private fun getMergedSourcesString( ): String { return if (onlyName) { mergeSources.joinToString { source -> - if (source.lang !in enabledLangs) { - source.toString() - } else { - source.name + when { + // KMK --> + source is StubSource -> source.toString() + // KMK <-- + source.lang !in enabledLangs -> + // KMK --> + "${source.name} (${FlagEmoji.getEmojiLangFlag(source.lang)})" + // KMK <-- + else -> + source.name } } } else { - mergeSources.joinToString() + mergeSources.joinToString { source -> + // KMK --> + if (source is StubSource) { + source.toString() + } else { + "${source.name} (${FlagEmoji.getEmojiLangFlag(source.lang)})" + } + // KMK <-- + } } } // SY <-- diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt index 0b01f2a60..d10c8e563 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/advanced/design/MigrationSourceHolder.kt @@ -5,8 +5,8 @@ import android.view.View import eu.davidea.viewholders.FlexibleViewHolder import eu.kanade.tachiyomi.databinding.MigrationSourceItemBinding import eu.kanade.tachiyomi.extension.ExtensionManager +import eu.kanade.tachiyomi.source.getNameForMangaInfo import eu.kanade.tachiyomi.source.online.HttpSource -import exh.util.capitalize import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -18,9 +18,11 @@ class MigrationSourceHolder(view: View, val adapter: MigrationSourceAdapter) : } fun bind(source: HttpSource, sourceEnabled: Boolean) { - val isMultiLanguage = adapter.sourcePreferences.enabledLanguages().get().size > 1 // Set capitalized title. - val sourceName = if (isMultiLanguage) source.toString() else source.name.capitalize() + val sourceName = + // KMK --> + source.getNameForMangaInfo(null) + // KMK <-- binding.title.text = sourceName // Update circle letter image. itemView.post { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt index 9994205a9..198f03f8c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt @@ -995,8 +995,6 @@ class MangaScreenModel( val isLocal = manga.isLocal() // SY --> val isExhManga = manga.isEhBasedManga() - val enabledLanguages = sourcePreferences.enabledLanguages().get() - .filterNot { it in listOf("all", "other") } // SY <-- return map { chapter -> val activeDownload = if (isLocal) { @@ -1034,7 +1032,7 @@ class MangaScreenModel( downloadProgress = activeDownload?.progress ?: 0, selected = chapter.id in selectedChapterIds, // SY --> - sourceName = source?.getNameForMangaInfo(null, enabledLanguages = enabledLanguages), + sourceName = source?.getNameForMangaInfo(null), showScanlator = !isExhManga, // SY <-- ) diff --git a/source-api/build.gradle.kts b/source-api/build.gradle.kts index 7fda6892a..b9a953a95 100644 --- a/source-api/build.gradle.kts +++ b/source-api/build.gradle.kts @@ -46,10 +46,6 @@ android { } } -dependencies { - implementation(project(":presentation-core")) -} - tasks { withType { compilerOptions.freeCompilerArgs.addAll( diff --git a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt index 316227d43..cfeec96b6 100644 --- a/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -24,7 +24,6 @@ import okhttp3.Request import okhttp3.Response import rx.Observable import tachiyomi.core.common.util.lang.awaitSingle -import tachiyomi.presentation.core.icons.FlagEmoji import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.net.URI @@ -140,9 +139,7 @@ abstract class HttpSource : CatalogueSource { /** * Visible name of the source. */ - override fun toString() = "$name (${ - FlagEmoji.getEmojiLangFlag(lang) - })" + override fun toString() = "$name (${lang.uppercase()})" /** * Get a page with a list of manga.