yattee/Model/NetworkStateModel.swift
Arkadiusz Fal ba1115fe2a Player controls UI changes
WIP on controls

Chapters

working

Add previews variable

Add lists ids

WIP
2022-08-15 16:34:13 +02:00

43 lines
1.1 KiB
Swift

import Foundation
final class NetworkStateModel: ObservableObject {
@Published var pausedForCache = false
@Published var cacheDuration = 0.0
@Published var bufferingState = 0.0
var player: PlayerModel!
var fullStateText: String? {
guard let bufferingStateText = bufferingStateText,
let cacheDurationText = cacheDurationText
else {
return nil
}
return "\(bufferingStateText) (\(cacheDurationText))"
}
var bufferingStateText: String? {
guard detailsAvailable else { return nil }
return String(format: "%.0f%%", bufferingState)
}
var cacheDurationText: String? {
guard detailsAvailable else { return nil }
return String(format: "%.2fs", cacheDuration)
}
var detailsAvailable: Bool {
guard let player = player else { return false }
return player.activeBackend.supportsNetworkStateBufferingDetails
}
var needsUpdates: Bool {
if let player = player {
return pausedForCache || player.isSeeking || player.isLoadingVideo
}
return pausedForCache
}
}