// // Swiftfin is subject to the terms of the Mozilla Public // License, v2.0. If a copy of the MPL was not distributed with this // file, you can obtain one at https://mozilla.org/MPL/2.0/. // // Copyright (c) 2024 Jellyfin & Jellyfin Contributors // import Defaults import SwiftUI struct VideoPlayerSettingsView: View { @Default(.VideoPlayer.jumpBackwardLength) private var jumpBackwardLength @Default(.VideoPlayer.jumpForwardLength) private var jumpForwardLength @Default(.VideoPlayer.resumeOffset) private var resumeOffset @EnvironmentObject private var router: VideoPlayerSettingsCoordinator.Router var body: some View { Form { ChevronButton(L10n.gestures) .onSelect { router.route(to: \.gestureSettings) } CaseIterablePicker(L10n.jumpBackwardLength, selection: $jumpBackwardLength) CaseIterablePicker(L10n.jumpForwardLength, selection: $jumpForwardLength) Section { BasicStepper( title: L10n.resumeOffset, value: $resumeOffset, range: 0 ... 30, step: 1 ) .valueFormatter { $0.secondLabel } } footer: { Text(L10n.resumeOffsetDescription) } ButtonSection() SliderSection() SubtitleSection() TimestampSection() TransitionSection() } .navigationTitle(L10n.videoPlayer) } }