Minor UI changes

This commit is contained in:
Arkadiusz Fal
2022-06-25 01:39:29 +02:00
parent 19014cc540
commit 164e68e5a1
20 changed files with 247 additions and 436 deletions

View File

@@ -34,7 +34,7 @@ final class NetworkStateModel: ObservableObject {
var needsUpdates: Bool {
if let player = player {
return pausedForCache || player.isSeeking || player.isLoadingVideo
return pausedForCache || player.isSeeking || player.isLoadingVideo || player.controls.presentingControlsOverlay
}
return pausedForCache

View File

@@ -589,5 +589,5 @@ final class AVPlayerBackend: PlayerBackend {
func stopControlsUpdates() {}
func setNeedsDrawing(_: Bool) {}
func setSize(_: Double, _: Double) {}
func setNeedsNetworkStateUpdates() {}
func setNeedsNetworkStateUpdates(_: Bool) {}
}

View File

@@ -28,7 +28,7 @@ final class MPVBackend: PlayerBackend {
}
self.controls?.isLoadingVideo = self.isLoadingVideo
self.setNeedsNetworkStateUpdates()
self.setNeedsNetworkStateUpdates(true)
if !self.isLoadingVideo {
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
@@ -476,7 +476,11 @@ final class MPVBackend: PlayerBackend {
}
}
func setNeedsNetworkStateUpdates() {
networkStateTimer.resume()
func setNeedsNetworkStateUpdates(_ needsUpdates: Bool) {
if needsUpdates {
networkStateTimer.resume()
} else {
networkStateTimer.suspend()
}
}
}

View File

@@ -52,7 +52,7 @@ protocol PlayerBackend {
func startControlsUpdates()
func stopControlsUpdates()
func setNeedsNetworkStateUpdates()
func setNeedsNetworkStateUpdates(_ needsUpdates: Bool)
func setNeedsDrawing(_ needsDrawing: Bool)
func setSize(_ width: Double, _ height: Double)

View File

@@ -6,7 +6,7 @@ final class PlayerControlsModel: ObservableObject {
@Published var isLoadingVideo = false
@Published var isPlaying = true
@Published var presentingControls = false { didSet { handlePresentationChange() } }
@Published var presentingControlsOverlay = false
@Published var presentingControlsOverlay = false { didSet { handleOverlayPresentationChange() } }
@Published var timer: Timer?
var player: PlayerModel!
@@ -40,6 +40,10 @@ final class PlayerControlsModel: ObservableObject {
}
}
func handleOverlayPresentationChange() {
player?.backend.setNeedsNetworkStateUpdates(presentingControlsOverlay)
}
func show() {
guard !(player?.currentItem.isNil ?? true) else {
return

View File

@@ -67,7 +67,7 @@ final class PlayerModel: ObservableObject {
@Published var returnYouTubeDislike = ReturnYouTubeDislikeAPI()
@Published var isSeeking = false { didSet {
backend.setNeedsNetworkStateUpdates()
backend.setNeedsNetworkStateUpdates(true)
}}
#if os(iOS)