diff --git a/Shared/Extensions/JellyfinAPIExtensions/BaseItemDtoExtensions.swift b/Shared/Extensions/JellyfinAPIExtensions/BaseItemDtoExtensions.swift index dfacc4ac..9a4dcf1d 100644 --- a/Shared/Extensions/JellyfinAPIExtensions/BaseItemDtoExtensions.swift +++ b/Shared/Extensions/JellyfinAPIExtensions/BaseItemDtoExtensions.swift @@ -129,6 +129,16 @@ public extension BaseItemDto { return URL(string: urlString)! } + func getSeriesThumbImage(maxWidth: Int) -> URL { + let x = UIScreen.main.nativeScale * CGFloat(maxWidth) + let urlString = ImageAPI.getItemImageWithRequestBuilder(itemId: seriesId ?? "", + imageType: .thumb, + maxWidth: Int(x), + quality: 96, + tag: seriesPrimaryImageTag).URLString + return URL(string: urlString)! + } + func getPrimaryImage(maxWidth: Int) -> URL { let imageType = ImageType.primary var imageTag = imageTags?[ImageType.primary.rawValue] ?? "" diff --git a/Swiftfin tvOS/Components/HomeCinematicView/CinematicNextUpCardView.swift b/Swiftfin tvOS/Components/HomeCinematicView/CinematicNextUpCardView.swift index d596a05b..d21d2c71 100644 --- a/Swiftfin tvOS/Components/HomeCinematicView/CinematicNextUpCardView.swift +++ b/Swiftfin tvOS/Components/HomeCinematicView/CinematicNextUpCardView.swift @@ -24,12 +24,15 @@ struct CinematicNextUpCardView: View { ZStack(alignment: .bottomLeading) { if item.itemType == .episode { - ImageView(src: item.getSeriesBackdropImage(maxWidth: 350)) + ImageView(sources: [ + item.getSeriesThumbImage(maxWidth: 350), + item.getSeriesBackdropImage(maxWidth: 350), + ]) .frame(width: 350, height: 210) } else { ImageView(sources: [ - item.getThumbImage(maxWidth: 320), - item.getBackdropImage(maxWidth: 320), + item.getThumbImage(maxWidth: 350), + item.getBackdropImage(maxWidth: 350), ], bh: item.getBackdropImageBlurHash()) .frame(width: 350, height: 210) diff --git a/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift b/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift index 0ef397a7..a129a4df 100644 --- a/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift +++ b/Swiftfin tvOS/Components/HomeCinematicView/CinematicResumeCardView.swift @@ -25,12 +25,15 @@ struct CinematicResumeCardView: View { ZStack(alignment: .bottom) { if item.itemType == .episode { - ImageView(src: item.getSeriesBackdropImage(maxWidth: 350)) + ImageView(sources: [ + item.getSeriesThumbImage(maxWidth: 350), + item.getSeriesBackdropImage(maxWidth: 350), + ]) .frame(width: 350, height: 210) } else { ImageView(sources: [ - item.getThumbImage(maxWidth: 320), - item.getBackdropImage(maxWidth: 320), + item.getThumbImage(maxWidth: 350), + item.getBackdropImage(maxWidth: 350), ], bh: item.getBackdropImageBlurHash()) .frame(width: 350, height: 210) diff --git a/Swiftfin/Views/ContinueWatchingView.swift b/Swiftfin/Views/ContinueWatchingView.swift index 47d2525a..fdde4166 100644 --- a/Swiftfin/Views/ContinueWatchingView.swift +++ b/Swiftfin/Views/ContinueWatchingView.swift @@ -27,13 +27,21 @@ struct ContinueWatchingView: View { VStack(alignment: .leading) { ZStack { - ImageView(sources: [ - item.getThumbImage(maxWidth: 320), - item.getBackdropImage(maxWidth: 320), - ], - bh: item.getBackdropImageBlurHash()) - .frame(width: 320, height: 180) - .accessibilityIgnoresInvertColors() + Group { + if item.itemType == .episode { + ImageView(sources: [ + item.getSeriesThumbImage(maxWidth: 320), + item.getSeriesBackdropImage(maxWidth: 320), + ]) + .frame(width: 320, height: 180) + } else { + ImageView(sources: [ + item.getThumbImage(maxWidth: 320), + item.getBackdropImage(maxWidth: 320), + ]) + .frame(width: 320, height: 180) + } + } HStack { VStack {