Playback state improvements

This commit is contained in:
Arkadiusz Fal
2021-08-23 23:31:51 +02:00
parent f80b61f9c7
commit 151121aa31
11 changed files with 55 additions and 27 deletions

View File

@@ -2,25 +2,32 @@ import Foundation
import SwiftUI
struct PlaybackBar: View {
@Environment(\.dismiss) private var dismiss
@ObservedObject var playbackState: PlaybackState
let video: Video
@Environment(\.dismiss) private var dismiss
@EnvironmentObject private var playbackState: PlaybackState
var body: some View {
HStack {
closeButton
.frame(minWidth: 0, maxWidth: 60, alignment: .leading)
.frame(width: 60, alignment: .leading)
Text(playbackFinishAtString)
.foregroundColor(.gray)
.font(.caption2)
.frame(minWidth: 0, maxWidth: .infinity)
.frame(minWidth: 60, maxWidth: .infinity)
Text(currentStreamString)
.foregroundColor(.gray)
.font(.caption2)
.frame(minWidth: 0, maxWidth: 60, alignment: .trailing)
VStack {
if playbackState.stream != nil {
Text(currentStreamString)
} else {
Image(systemName: "bolt.horizontal.fill")
}
}
.foregroundColor(.gray)
.font(.caption2)
.frame(width: 60, alignment: .trailing)
.fixedSize(horizontal: true, vertical: true)
}
.padding(4)
.background(.black)
@@ -37,6 +44,10 @@ struct PlaybackBar: View {
let remainingSeconds = video.length - playbackState.time!.seconds
if remainingSeconds < 60 {
return "less than a minute"
}
let timeFinishAt = Date.now.addingTimeInterval(remainingSeconds)
let timeFinishAtString = timeFinishAt.formatted(date: .omitted, time: .shortened)