From cae02acfc47541e9df030adbaff877d203e14145 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:42:31 +0800 Subject: [PATCH] Fix cosplayer tag translation in download label --- .../com/hippo/ehviewer/ui/screen/DownloadsScreen.kt | 9 ++++++--- .../com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index e3e429506..f4b19ca2a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -152,7 +152,10 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = val density = LocalDensity.current val canTranslate = Settings.showTagTranslations && EhTagDatabase.isTranslatable(implicit()) && EhTagDatabase.initialized val ehTags = EhTagDatabase.takeIf { canTranslate } - fun String.translateArtist() = ehTags?.getTranslation(TagNamespace.Artist.toPrefix(), this) ?: this + fun getTranslation(tag: String) = ehTags?.run { + getTranslation(TagNamespace.Artist.toPrefix(), tag) + ?: getTranslation(TagNamespace.Cosplayer.toPrefix(), tag) + } ?: tag val allName = stringResource(R.string.download_all) val defaultName = stringResource(R.string.default_download_label_name) val unknownName = stringResource(R.string.unknown_artists) @@ -166,7 +169,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = when (label) { "" -> allName null -> emptyLabelName - else -> if (mode == DownloadsFilterMode.ARTIST) label.translateArtist() else label + else -> if (mode == DownloadsFilterMode.ARTIST) getTranslation(label) else label } }, ) @@ -381,7 +384,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = tonalElevation = 1.dp, shadowElevation = elevation, headlineContent = { - val name = if (filterMode == DownloadsFilterMode.ARTIST) label.translateArtist() else label + val name = if (filterMode == DownloadsFilterMode.ARTIST) getTranslation(label) else label Text("$name [${downloadsCount.getOrDefault(item, 0)}]") }, trailingContent = editEnable.ifTrueThen { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt index 0fa4133e2..c720c8253 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt @@ -201,10 +201,12 @@ private fun getRatingText(rating: Float): Int = when ((rating * 2).roundToInt()) } private fun List.getArtistTag(): String? { - val namespace = TagNamespace.Artist.value for (tagGroup in this) { - if (tagGroup.groupName == namespace && tagGroup.size > 0) { - return "$namespace:${tagGroup[0].removePrefix("_")}" + if (tagGroup.isNotEmpty()) { + val namespace = tagGroup.groupName + if (namespace == TagNamespace.Artist.value || namespace == TagNamespace.Cosplayer.value) { + return "$namespace:${tagGroup[0].removePrefix("_")}" + } } } return null