Use glass background for tvOS player settings sheet

Match the info/comments and queue panels by replacing the black dim and
inner rounded card with a full-screen ultraThinMaterial backdrop and a
transparent list background on tvOS.
This commit is contained in:
Arkadiusz Fal
2026-04-16 22:57:46 +02:00
parent 71dd956f18
commit 77d982f422
3 changed files with 22 additions and 6 deletions

View File

@@ -206,7 +206,11 @@ extension QualitySelectorView {
}
.padding()
}
#if os(tvOS)
.background(Color.clear)
#else
.background(ListBackgroundStyle.grouped.color)
#endif
.navigationTitle(String(localized: "player.quality.video"))
#if os(iOS)
.navigationBarTitleDisplayMode(.inline)
@@ -221,7 +225,11 @@ extension QualitySelectorView {
}
.padding()
}
#if os(tvOS)
.background(Color.clear)
#else
.background(ListBackgroundStyle.grouped.color)
#endif
.navigationTitle(String(localized: "stream.audio"))
#if os(iOS)
.navigationBarTitleDisplayMode(.inline)
@@ -236,7 +244,11 @@ extension QualitySelectorView {
}
.padding()
}
#if os(tvOS)
.background(Color.clear)
#else
.background(ListBackgroundStyle.grouped.color)
#endif
.navigationTitle(String(localized: "stream.subtitles"))
#if os(iOS)
.navigationBarTitleDisplayMode(.inline)

View File

@@ -186,7 +186,14 @@ struct QualitySelectorView: View {
streamsContent
}
}
#if os(tvOS)
// On tvOS the quality sheet is presented over the player with an outer
// ultraThinMaterial backdrop (see TVPlayerView.qualitySheetContent), so
// the list itself must be transparent to let the glass show through.
.background(Color.clear)
#else
.background(ListBackgroundStyle.grouped.color)
#endif
.navigationTitle(navigationTitle)
#if os(iOS)
.navigationBarTitleDisplayMode(.inline)

View File

@@ -133,8 +133,9 @@ struct TVPlayerView: View {
let supportedFormats = playerService.currentBackendType.supportedFormats
ZStack {
// Dimmed backdrop over the video
Color.black.opacity(0.7)
// Glass backdrop matches info/comments panel for visual uniformity
Rectangle()
.fill(.ultraThinMaterial)
.ignoresSafeArea()
QualitySelectorView(
@@ -179,10 +180,6 @@ struct TVPlayerView: View {
}
)
.frame(maxWidth: 900, maxHeight: 700)
.background(
RoundedRectangle(cornerRadius: 24, style: .continuous)
.fill(.ultraThinMaterial)
)
.padding(.horizontal, 200)
.padding(.vertical, 80)
}