Use menu-style pickers in tvOS settings

Introduce PlatformMenuPicker that wraps short-option pickers in
LabeledContent + .pickerStyle(.menu) on tvOS so they render as a
compact dropdown instead of pushing a full-screen option list. On
iOS/macOS it falls through to a plain Picker, leaving rendering
unchanged.

Applied across Playback, Subtitles, Sidebar, Privacy, and Advanced
settings. Long language lists in PlaybackSettingsView are left as
push-style.
This commit is contained in:
Arkadiusz Fal
2026-04-16 18:40:19 +02:00
parent df232ad69a
commit e2f3107833
6 changed files with 58 additions and 16 deletions

View File

@@ -99,7 +99,7 @@ struct AdvancedSettingsView: View {
@ViewBuilder
private func feedSection(settingsManager: SettingsManager) -> some View {
Section {
Picker(selection: Binding(
PlatformMenuPicker(selection: Binding(
get: { settingsManager.feedCacheValidityMinutes },
set: { settingsManager.feedCacheValidityMinutes = $0 }
)) {
@@ -192,7 +192,7 @@ struct AdvancedSettingsView: View {
private var mpvSection: some View {
if let settingsManager = appEnvironment?.settingsManager {
Section {
Picker(selection: Binding(
PlatformMenuPicker(selection: Binding(
get: { settingsManager.mpvBufferSeconds },
set: { settingsManager.mpvBufferSeconds = $0 }
)) {