[tvOS] Fix Episode Description Size & Provide Episode Thumbnail Clarity (#1184)
Co-authored-by: Joseph Kribs <joseph@kribs.net>
This commit is contained in:
parent
da6c22341f
commit
9bc8d9613e
|
@ -12,26 +12,32 @@ import JellyfinAPI
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
extension SeriesEpisodeSelector {
|
extension SeriesEpisodeSelector {
|
||||||
|
|
||||||
struct EpisodeCard: View {
|
struct EpisodeCard: View {
|
||||||
|
|
||||||
@EnvironmentObject
|
@EnvironmentObject
|
||||||
private var router: ItemCoordinator.Router
|
private var router: ItemCoordinator.Router
|
||||||
|
|
||||||
let episode: BaseItemDto
|
let episode: BaseItemDto
|
||||||
|
|
||||||
|
@FocusState
|
||||||
|
private var isFocused: Bool
|
||||||
|
|
||||||
@ViewBuilder
|
@ViewBuilder
|
||||||
private var imageOverlay: some View {
|
private var imageOverlay: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
if episode.userData?.isPlayed ?? false {
|
if episode.userData?.isPlayed ?? false {
|
||||||
WatchedIndicator(size: 45)
|
WatchedIndicator(size: 45)
|
||||||
} else {
|
} else if (episode.userData?.playbackPositionTicks ?? 0) > 0 {
|
||||||
if (episode.userData?.playbackPositionTicks ?? 0) > 0 {
|
LandscapePosterProgressBar(
|
||||||
LandscapePosterProgressBar(
|
title: episode.progressLabel ?? L10n.continue,
|
||||||
title: episode.progressLabel ?? L10n.continue,
|
progress: (episode.userData?.playedPercentage ?? 0) / 100
|
||||||
progress: (episode.userData?.playedPercentage ?? 0) / 100
|
)
|
||||||
)
|
}
|
||||||
}
|
|
||||||
|
if isFocused {
|
||||||
|
Image(systemName: "play.fill")
|
||||||
|
.resizable()
|
||||||
|
.frame(width: 50, height: 50)
|
||||||
|
.foregroundColor(.white)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,6 +70,7 @@ extension SeriesEpisodeSelector {
|
||||||
}
|
}
|
||||||
.buttonStyle(.card)
|
.buttonStyle(.card)
|
||||||
.posterShadow()
|
.posterShadow()
|
||||||
|
.focused($isFocused)
|
||||||
|
|
||||||
SeriesEpisodeSelector.EpisodeContent(
|
SeriesEpisodeSelector.EpisodeContent(
|
||||||
subHeader: episode.episodeLocator ?? .emptyDash,
|
subHeader: episode.episodeLocator ?? .emptyDash,
|
||||||
|
|
|
@ -11,9 +11,7 @@ import JellyfinAPI
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
extension SeriesEpisodeSelector {
|
extension SeriesEpisodeSelector {
|
||||||
|
|
||||||
struct EpisodeContent: View {
|
struct EpisodeContent: View {
|
||||||
|
|
||||||
@Default(.accentColor)
|
@Default(.accentColor)
|
||||||
private var accentColor
|
private var accentColor
|
||||||
|
|
||||||
|
@ -60,6 +58,8 @@ extension SeriesEpisodeSelector {
|
||||||
headerView
|
headerView
|
||||||
|
|
||||||
contentView
|
contentView
|
||||||
|
// Removing the alignment below makes the text center
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
|
||||||
L10n.seeMore.text
|
L10n.seeMore.text
|
||||||
.font(.caption.weight(.light))
|
.font(.caption.weight(.light))
|
||||||
|
@ -73,7 +73,6 @@ extension SeriesEpisodeSelector {
|
||||||
}
|
}
|
||||||
|
|
||||||
extension SeriesEpisodeSelector.EpisodeContent {
|
extension SeriesEpisodeSelector.EpisodeContent {
|
||||||
|
|
||||||
init(
|
init(
|
||||||
subHeader: String,
|
subHeader: String,
|
||||||
header: String,
|
header: String,
|
||||||
|
|
Loading…
Reference in New Issue