Bring back merge manga sources string

This commit is contained in:
Jobobby04 2022-07-14 15:41:41 -04:00
parent 33f9b15891
commit 4dda69ac40
2 changed files with 25 additions and 26 deletions

View File

@ -359,7 +359,7 @@ private fun MangaScreenSmallImpl(
title = state.manga.title, title = state.manga.title,
author = state.manga.author, author = state.manga.author,
artist = state.manga.artist, artist = state.manga.artist,
sourceName = remember { state.source.getNameForMangaInfo() }, sourceName = remember { state.source.getNameForMangaInfo(state.mergedData) },
isStubSource = remember { state.source is SourceManager.StubSource }, isStubSource = remember { state.source is SourceManager.StubSource },
coverDataProvider = { state.manga }, coverDataProvider = { state.manga },
status = state.manga.status, status = state.manga.status,
@ -624,7 +624,7 @@ fun MangaScreenLargeImpl(
title = state.manga.title, title = state.manga.title,
author = state.manga.author, author = state.manga.author,
artist = state.manga.artist, artist = state.manga.artist,
sourceName = remember { state.source.getNameForMangaInfo() }, sourceName = remember { state.source.getNameForMangaInfo(state.mergedData) },
isStubSource = remember { state.source is SourceManager.StubSource }, isStubSource = remember { state.source is SourceManager.StubSource },
coverDataProvider = { state.manga }, coverDataProvider = { state.manga },
status = state.manga.status, status = state.manga.status,

View File

@ -12,8 +12,8 @@ import eu.kanade.tachiyomi.source.model.toMangaInfo
import eu.kanade.tachiyomi.source.model.toPageUrl import eu.kanade.tachiyomi.source.model.toPageUrl
import eu.kanade.tachiyomi.source.model.toSChapter import eu.kanade.tachiyomi.source.model.toSChapter
import eu.kanade.tachiyomi.source.model.toSManga import eu.kanade.tachiyomi.source.model.toSManga
import eu.kanade.tachiyomi.ui.manga.MergedMangaData
import eu.kanade.tachiyomi.util.lang.awaitSingle import eu.kanade.tachiyomi.util.lang.awaitSingle
import exh.source.MERGED_SOURCE_ID
import rx.Observable import rx.Observable
import tachiyomi.source.model.ChapterInfo import tachiyomi.source.model.ChapterInfo
import tachiyomi.source.model.MangaInfo import tachiyomi.source.model.MangaInfo
@ -108,24 +108,18 @@ fun Source.getPreferenceKey(): String = "source_$id"
fun Source.toSourceData(): SourceData = SourceData(id = id, lang = lang, name = name) fun Source.toSourceData(): SourceData = SourceData(id = id, lang = lang, name = name)
fun Source.getNameForMangaInfo(source: Source, getMergedSourcesString: (List<String>, Boolean) -> String): String { fun Source.getNameForMangaInfo(mergeData: MergedMangaData?): String {
val preferences = Injekt.get<PreferencesHelper>() val preferences = Injekt.get<PreferencesHelper>()
val enabledLanguages = preferences.enabledLanguages().get() val enabledLanguages = preferences.enabledLanguages().get()
.filterNot { it in listOf("all", "other") } .filterNot { it in listOf("all", "other") }
// SY -->
val isMergedSource = source.id == MERGED_SOURCE_ID
// SY <--
val hasOneActiveLanguages = enabledLanguages.size == 1 val hasOneActiveLanguages = enabledLanguages.size == 1
val isInEnabledLanguages = source.lang in enabledLanguages val isInEnabledLanguages = lang in enabledLanguages
return when { return when {
// SY --> // SY -->
isMergedSource && hasOneActiveLanguages -> getMergedSourcesString( mergeData != null -> getMergedSourcesString(
mergeData,
enabledLanguages, enabledLanguages,
true, hasOneActiveLanguages,
)
isMergedSource -> getMergedSourcesString(
enabledLanguages,
false,
) )
// SY <-- // SY <--
// For edge cases where user disables a source they got manga of in their library. // For edge cases where user disables a source they got manga of in their library.
@ -136,19 +130,24 @@ fun Source.getNameForMangaInfo(source: Source, getMergedSourcesString: (List<Str
} }
} }
fun Source.getNameForMangaInfo(): String { // SY -->
val preferences = Injekt.get<PreferencesHelper>() private fun getMergedSourcesString(
val enabledLanguages = preferences.enabledLanguages().get() mergeData: MergedMangaData,
.filterNot { it in listOf("all", "other") } enabledLangs: List<String>,
val hasOneActiveLanguages = enabledLanguages.size == 1 onlyName: Boolean,
val isInEnabledLanguages = lang in enabledLanguages ): String {
return when { return if (onlyName) {
// For edge cases where user disables a source they got manga of in their library. mergeData.sources.joinToString { source ->
hasOneActiveLanguages && !isInEnabledLanguages -> toString() if (source.lang !in enabledLangs) {
// Hide the language tag when only one language is used. source.toString()
hasOneActiveLanguages && isInEnabledLanguages -> name } else {
else -> toString() source.name
}
}
} else {
mergeData.sources.joinToString()
} }
} }
// SY <--
fun Source.isLocalOrStub(): Boolean = id == LocalSource.ID || this is SourceManager.StubSource fun Source.isLocalOrStub(): Boolean = id == LocalSource.ID || this is SourceManager.StubSource