Controls gradient

This commit is contained in:
Arkadiusz Fal 2022-12-19 00:31:56 +01:00
parent bdb1f032a9
commit 3de18da7a7

View File

@ -213,15 +213,25 @@ struct PlayerControls: View {
}
@ViewBuilder var controlsBackground: some View {
if player.musicMode,
let url = controlsBackgroundURL
{
ThumbnailView(url: url)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.transition(.opacity)
.animation(.default)
} else if player.videoForDisplay == nil {
Color.black
ZStack {
if player.musicMode,
let url = controlsBackgroundURL
{
ThumbnailView(url: url)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.transition(.opacity)
.animation(.default)
} else if player.videoForDisplay == nil {
Color.black
}
if model.presentingControls {
Rectangle()
.fill(
LinearGradient(stops: gradientStops, startPoint: .top, endPoint: .bottom)
)
.transition(.opacity)
}
}
}
@ -235,6 +245,15 @@ struct PlayerControls: View {
return nil
}
var gradientStops: [Gradient.Stop] {
[
Gradient.Stop(color: .black.opacity(0.3), location: 0.0),
Gradient.Stop(color: .clear, location: 0.33),
Gradient.Stop(color: .clear, location: 0.66),
Gradient.Stop(color: .black.opacity(0.3), location: 1)
]
}
var timeline: some View {
TimelineView(context: .player).foregroundColor(.primary)
}