1
0
mirror of https://github.com/yattee/yattee.git synced 2024-12-14 14:20:32 +05:30
yattee/Model/WatchNextViewModel.swift

48 lines
1.1 KiB
Swift
Raw Normal View History

2022-12-18 04:38:30 +05:30
import Foundation
import SwiftUI
final class WatchNextViewModel: ObservableObject {
static let animation = Animation.easeIn(duration: 0.25)
static let shared = WatchNextViewModel()
@Published var item: PlayerQueueItem?
@Published var presentingOutro = true
@Published var isAutoplaying = true
var timer: Timer?
func prepareForEmptyPlayerPlaceholder(_ item: PlayerQueueItem? = nil) {
self.item = item
}
func prepareForNextItem(_ item: PlayerQueueItem? = nil, timer: Timer? = nil) {
self.item = item
self.timer?.invalidate()
self.timer = timer
isAutoplaying = true
withAnimation(Self.animation) {
presentingOutro = true
}
}
func cancelAutoplay() {
timer?.invalidate()
isAutoplaying = false
}
func open() {
withAnimation(Self.animation) {
presentingOutro = true
}
}
func close() {
withAnimation(Self.animation) {
presentingOutro = false
}
}
func resetItem() {
item = nil
}
}