Add preset-driven details panel pages on tvOS

TVDetailsPanel now renders the active tvOS preset's panel pages (info,
comments, related, chapters, queue; tracks stays with the quality panel)
with runtime hiding of empty pages, a segmented picker for up to four
pages and a focusable capsule row above that, and Info element toggles
honored. Comments unify on the PlayerState loader; the tvOS queue list
is extracted from QueueManagementSheet into TVQueueListView and reused
as the queue page. New related/chapters focus-based pages: selecting a
related video plays it and dismisses the panel, chapters seek and keep
the panel open.

New minimal Settings > Player Panels screen edits the active tvOS
preset via the existing service: duplicate-to-edit, page toggles with
last-page guard, Move Up/Down reordering, and Info element toggles.
This commit is contained in:
Arkadiusz Fal
2026-09-21 23:54:14 +02:00
parent a6d989c7af
commit 052cb76702
8 changed files with 864 additions and 238 deletions

View File

@@ -7577,6 +7577,17 @@
}
}
},
"panel.settings.duplicatePreset" : {
"comment" : "tvOS button duplicating the active preset so it can be edited",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Duplicate Preset to Edit"
}
}
}
},
"panel.settings.elements.header" : {
"comment" : "Details panel page editor section header",
"localizations" : {
@@ -7643,6 +7654,28 @@
}
}
},
"panel.settings.moveDown" : {
"comment" : "tvOS page editor button moving the page later in the order",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Move Down"
}
}
}
},
"panel.settings.moveUp" : {
"comment" : "tvOS page editor button moving the page earlier in the order",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Move Up"
}
}
}
},
"panel.settings.page.enabled" : {
"comment" : "Details panel page editor toggle",
"localizations" : {
@@ -15126,6 +15159,17 @@
}
}
},
"settings.playerPanels.title" : {
"comment" : "tvOS settings row for the player details panel pages",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Player Panels"
}
}
}
},
"settings.privacy.history.account.footer %@" : {
"comment" : "Footer telling the user watched videos are mirrored to the selected account's server history",
"localizations" : {