mirror of
https://github.com/yattee/yattee.git
synced 2026-11-04 10:57:18 +00:00
Add details panel preset settings UI and default visibility
Phase 2 of the player panels redesign: - New "Details Panel" screen in Player Controls settings: page reorder/enable list with per-page editor (info element toggles), and a default panel visibility picker (hidden/visible/remember). - PlayerControlsSettingsViewModel gains panelSettings bindings with the usual debounced-save flow; the last enabled page cannot be disabled. - Built-in presets bumped to v9 with explicit default panelSettings. - The preset's default visibility now drives the wide-layout panel on player open and on entering landscape, replacing the hard hidden resets; "remember" restores the new detailsPanelLastVisible setting recorded on user toggles. Applied once per expanded player session (flag on NavigationCoordinator survives re-mounts). - WideScreenPlayerLayout picks up external visibility writes so the async-loaded default reaches the mounted layout. - Unit tests for PanelSettings Codable compatibility (round-trip, old JSON, unknown page types/discriminators/enum values); removed stale PlayerInfoTab tests left from Phase 1.
This commit is contained in:
@@ -11,7 +11,7 @@ extension LayoutPreset {
|
||||
/// Bump this version whenever any built-in preset definition changes.
|
||||
/// On launch, the app compares this against the last-applied version
|
||||
/// and replaces stale built-in presets with fresh copies from code.
|
||||
static let builtInPresetsVersion = 8
|
||||
static let builtInPresetsVersion = 9
|
||||
|
||||
// MARK: - Built-in Preset IDs
|
||||
|
||||
@@ -131,7 +131,8 @@ extension LayoutPreset {
|
||||
progressBarSettings: ProgressBarSettings(),
|
||||
gesturesSettings: gesturesSettings,
|
||||
playerPillSettings: playerPillSettings,
|
||||
miniPlayerSettings: miniPlayerSettings
|
||||
miniPlayerSettings: miniPlayerSettings,
|
||||
panelSettings: .default
|
||||
)
|
||||
}
|
||||
|
||||
@@ -192,7 +193,8 @@ extension LayoutPreset {
|
||||
progressBarSettings: ProgressBarSettings(),
|
||||
gesturesSettings: nil,
|
||||
playerPillSettings: nil,
|
||||
miniPlayerSettings: MiniPlayerSettings()
|
||||
miniPlayerSettings: MiniPlayerSettings(),
|
||||
panelSettings: .default
|
||||
)
|
||||
}
|
||||
|
||||
@@ -285,7 +287,8 @@ extension LayoutPreset {
|
||||
progressBarSettings: progressBarSettings,
|
||||
gesturesSettings: gesturesSettings,
|
||||
playerPillSettings: playerPillSettings,
|
||||
miniPlayerSettings: miniPlayerSettings
|
||||
miniPlayerSettings: miniPlayerSettings,
|
||||
panelSettings: .default
|
||||
)
|
||||
}
|
||||
|
||||
@@ -336,7 +339,8 @@ extension LayoutPreset {
|
||||
progressBarSettings: progressBarSettings,
|
||||
gesturesSettings: nil,
|
||||
playerPillSettings: nil,
|
||||
miniPlayerSettings: MiniPlayerSettings()
|
||||
miniPlayerSettings: MiniPlayerSettings(),
|
||||
panelSettings: .default
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user