From 7c991c04be321a90c852daacde15c27b4d41ddc5 Mon Sep 17 00:00:00 2001
From: beyond
Date: Sun, 6 Sep 2026 18:37:59 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E5=89=A7=E9=9B=86?=
=?UTF-8?q?=E6=92=AD=E6=94=BE=E5=99=A8logo=E4=BD=BF=E7=94=A8series=20ID?=
=?UTF-8?q?=E8=8E=B7=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 剧集的logo在series级别,不是episode级别
- 构建logo URL时检测是否为剧集(seriesId != id)
- 剧集使用seriesId请求logo,电影使用自身id
- 确保电视剧和电影都能正确显示emby艺术文字
Co-Authored-By: Claude Opus 5 (1M context)
---
.../myapplication/navigation/AppNavHost.kt | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt b/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt
index f9feed9..dd3a9b6 100644
--- a/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt
+++ b/app/src/main/kotlin/com/example/myapplication/navigation/AppNavHost.kt
@@ -499,11 +499,25 @@ private fun PlayerDestination(
if (playbackUrl.isNullOrBlank()) playbackError = playbackUrlFailedMessage
}
+ // Compute logo URL: for episodes, logo is on the series item, not the episode
+ val logoUrl = target?.let { t ->
+ val serverUrl = server?.fullUrl.orEmpty()
+ if (serverUrl.isBlank()) null
+ else {
+ val logoTag = t.logoImageTag
+ if (logoTag != null) {
+ // Use series ID for episode logos (logo lives on series, not episode)
+ val logoItemId = if (t.seriesId != null && t.id != t.seriesId) t.seriesId else t.id
+ "$serverUrl/emby/Items/$logoItemId/Images/Logo?tag=$logoTag&maxWidth=600&quality=90"
+ } else null
+ }
+ }.orEmpty()
+
when {
target != null -> VideoPlayerScreen(
title = target.name,
seriesName = target.seriesName.orEmpty(),
- titleLogoUrl = target.getLogoUrl(server?.fullUrl.orEmpty()).orEmpty(),
+ titleLogoUrl = logoUrl,
serverName = server?.name.orEmpty(),
serverIconUrl = server?.iconUrl.orEmpty(),
serverUrl = server?.fullUrl.orEmpty(),