Watch Next menu improvements

This commit is contained in:
Arkadiusz Fal
2022-12-19 10:48:30 +01:00
parent 2ce903b6c3
commit 636e8205fe
5 changed files with 127 additions and 31 deletions

View File

@@ -36,7 +36,7 @@ final class PlayerModel: ObservableObject {
case .queue:
return "Queue"
case .shuffle:
return "Queue, shuffled"
return "Queue - shuffled"
case .loopOne:
return "Loop one"
case .related:

View File

@@ -42,7 +42,7 @@ final class WatchNextViewModel: ObservableObject {
@Published var countdown = 0.0
var countdownTimer: Timer?
private var player = PlayerModel.shared
var player = PlayerModel.shared
var autoplayTimer: Timer?
@@ -129,7 +129,7 @@ final class WatchNextViewModel: ObservableObject {
private func open(reason: PresentationReason) {
self.reason = reason
page = Page.allCases.first { isAvailable($0) } ?? .history
setPageAfterOpening()
guard !isPresenting else { return }
withAnimation(Self.animation) {
@@ -137,6 +137,19 @@ final class WatchNextViewModel: ObservableObject {
}
}
private func setPageAfterOpening() {
let firstAvailable = Page.allCases.first { isAvailable($0) } ?? .history
switch reason {
case .finishedWatching:
page = player.playbackMode == .related ? .queue : firstAvailable
case .closed:
page = player.playbackMode == .related ? .queue : firstAvailable
default:
page = firstAvailable
}
}
func close() {
let close = {
self.player.closeCurrentItem()