Video loading errors reporting

This commit is contained in:
Arkadiusz Fal
2022-06-30 00:44:32 +02:00
parent dc346f6c25
commit 8358dd50aa
5 changed files with 30 additions and 7 deletions

View File

@@ -98,6 +98,8 @@ final class PlayerModel: ObservableObject {
backend.networkState.player = self
}
}}
var navigation: NavigationModel
var context: NSManagedObjectContext = PersistenceController.shared.container.viewContext
var backgroundContext = PersistenceController.shared.container.newBackgroundContext()
@@ -134,12 +136,14 @@ final class PlayerModel: ObservableObject {
accounts: AccountsModel = AccountsModel(),
comments: CommentsModel = CommentsModel(),
controls: PlayerControlsModel = PlayerControlsModel(),
navigation: NavigationModel = NavigationModel(),
playerTime: PlayerTimeModel = PlayerTimeModel(),
networkState: NetworkStateModel = NetworkStateModel()
) {
self.accounts = accounts
self.comments = comments
self.controls = controls
self.navigation = navigation
self.playerTime = playerTime
self.networkState = networkState

View File

@@ -93,7 +93,7 @@ extension PlayerModel {
currentItem = newItem
accounts.api.loadDetails(newItem) { newItem in
accounts.api.loadDetails(newItem, failureHandler: videoLoadFailureHandler) { newItem in
self.playItem(newItem, at: time)
}
}
@@ -136,7 +136,7 @@ extension PlayerModel {
}
if loadDetails {
accounts.api.loadDetails(item) { [weak self] newItem in
accounts.api.loadDetails(item, failureHandler: videoLoadFailureHandler) { [weak self] newItem in
guard let self = self else { return }
videoDetailsLoadHandler(newItem.video, newItem)
@@ -197,10 +197,16 @@ extension PlayerModel {
func loadQueueVideoDetails(_ item: PlayerQueueItem) {
guard !accounts.current.isNil, !item.hasDetailsLoaded else { return }
accounts.api.loadDetails(item) { newItem in
accounts.api.loadDetails(item, completionHandler: { newItem in
if let index = self.queue.firstIndex(where: { $0.id == item.id }) {
self.queue[index] = newItem
}
}
})
}
private func videoLoadFailureHandler(_ error: RequestError) {
navigation.presentAlert(title: "Could not load video", message: error.userMessage)
videoBeingOpened = nil
currentItem = nil
}
}

View File

@@ -47,6 +47,10 @@ extension PlayerModel {
}
}
.onCompletion(onCompletion)
.onFailure { [weak self] responseError in
self?.navigation.presentAlert(title: "Could not load streams", message: responseError.userMessage)
self?.videoBeingOpened = nil
}
}
func streamsWithInstance(instance: Instance, streams: [Stream]) -> [Stream] {