Player controls settings

This commit is contained in:
Arkadiusz Fal
2022-12-19 13:35:37 +01:00
parent b7f0ec4bfb
commit d80929bd88
10 changed files with 370 additions and 196 deletions

View File

@@ -32,6 +32,17 @@ struct PlayerControls: View {
@Default(.buttonBackwardSeekDuration) private var buttonBackwardSeekDuration
@Default(.buttonForwardSeekDuration) private var buttonForwardSeekDuration
#if os(iOS)
@Default(.playerControlsLockOrientationEnabled) private var playerControlsLockOrientationEnabled
#endif
@Default(.playerControlsSettingsEnabled) private var playerControlsSettingsEnabled
@Default(.playerControlsCloseEnabled) private var playerControlsCloseEnabled
@Default(.playerControlsRestartEnabled) private var playerControlsRestartEnabled
@Default(.playerControlsAdvanceToNextEnabled) private var playerControlsAdvanceToNextEnabled
@Default(.playerControlsPlaybackModeEnabled) private var playerControlsPlaybackModeEnabled
@Default(.playerControlsNextEnabled) private var playerControlsNextEnabled
@Default(.playerControlsMusicModeEnabled) private var playerControlsMusicModeEnabled
private let controlsOverlayModel = ControlOverlaysModel.shared
var playerControlsLayout: PlayerControlsLayout {
@@ -135,17 +146,30 @@ struct PlayerControls: View {
seekBackwardButton
seekForwardButton
#endif
restartVideoButton
advanceToNextItemButton
if playerControlsAdvanceToNextEnabled {
restartVideoButton
}
if playerControlsAdvanceToNextEnabled {
advanceToNextItemButton
}
Spacer()
#if os(tvOS)
settingsButton
if playerControlsSettingsEnabled {
settingsButton
}
#endif
playbackModeButton
if playerControlsPlaybackModeEnabled {
playbackModeButton
}
if playerControlsNextEnabled {
watchNextButton
}
#if os(tvOS)
closeVideoButton
#else
musicModeButton
if playerControlsMusicModeEnabled {
musicModeButton
}
#endif
}
.zIndex(0)
@@ -306,13 +330,20 @@ struct PlayerControls: View {
pipButton
#if os(iOS)
lockOrientationButton
if playerControlsLockOrientationEnabled {
lockOrientationButton
}
#endif
Spacer()
settingsButton
closeVideoButton
if playerControlsSettingsEnabled {
settingsButton
}
if playerControlsCloseEnabled {
closeVideoButton
}
}
}
@@ -390,6 +421,12 @@ struct PlayerControls: View {
}
}
var watchNextButton: some View {
button("Watch Next", systemImage: Constants.nextSystemImage) {
WatchNextViewModel.shared.userInteractedOpen(player.currentItem)
}
}
var seekBackwardButton: some View {
var foregroundColor: Color?
var fontSize: Double?