Improve open videos layouts

This commit is contained in:
Arkadiusz Fal
2022-11-11 18:50:13 +01:00
parent 6ca6a40aa1
commit 730ba1ea2e
9 changed files with 216 additions and 107 deletions

View File

@@ -81,10 +81,13 @@ final class NavigationModel: ObservableObject {
@Published var alert = Alert(title: Text("Error"))
@Published var presentingAlert = false
@Published var presentingAlertInOpenVideos = false
#if os(macOS)
@Published var presentingAlertInVideoPlayer = false
#endif
@Published var presentingFileImporter = false
static func openChannel(
_ channel: Channel,
player: PlayerModel,

View File

@@ -6,6 +6,7 @@ import Logging
#if canImport(UIKit)
import UIKit
#endif
import SwiftUI
struct OpenVideosModel {
enum PlaybackMode: String, CaseIterable {
@@ -62,11 +63,20 @@ struct OpenVideosModel {
return []
}
func openURLsFromClipboard(removeQueueItems: Bool = false, playbackMode: OpenVideosModel.PlaybackMode) {
openURLs(urlsFromClipboard, removeQueueItems: removeQueueItems, playbackMode: playbackMode)
func openURLsFromClipboard(removeQueueItems: Bool = false, playbackMode: OpenVideosModel.PlaybackMode = .playNow) {
if urlsFromClipboard.isEmpty {
NavigationModel.shared.alert = Alert(title: Text("Could not find any links to open in your clipboard"))
if NavigationModel.shared.presentingOpenVideos {
NavigationModel.shared.presentingAlertInOpenVideos = true
} else {
NavigationModel.shared.presentingAlert = true
}
} else {
openURLs(urlsFromClipboard, removeQueueItems: removeQueueItems, playbackMode: playbackMode)
}
}
func openURLs(_ urls: [URL], removeQueueItems: Bool, playbackMode: OpenVideosModel.PlaybackMode) {
func openURLs(_ urls: [URL], removeQueueItems: Bool = false, playbackMode: OpenVideosModel.PlaybackMode = .playNow) {
guard !urls.isEmpty else {
return
}
@@ -98,7 +108,6 @@ struct OpenVideosModel {
)
if playbackMode == .playNow || playbackMode == .shuffleAll {
player.show()
#if os(iOS)
if player.presentingPlayer {
player.advanceToNextItem()
@@ -108,6 +117,7 @@ struct OpenVideosModel {
#else
player.advanceToNextItem()
#endif
player.show()
}
}