feat(video): add custom zoom controls

close #1159
This commit is contained in:
edde746
2026-05-29 00:06:47 +02:00
parent 47276e1bac
commit 2b7ea5fe02
52 changed files with 1123 additions and 106 deletions
+24 -4
View File
@@ -1396,6 +1396,9 @@ class TranslationsVideoControlsEn {
/// en: 'Screenshot saved'
String get screenshotSaved => 'Screenshot saved';
/// en: 'Zoom ${percent}%'
String zoomPercent({required Object percent}) => 'Zoom ${percent}%';
late final TranslationsVideoControlsPipErrorsEn pipErrors = TranslationsVideoControlsPipErrorsEn.internal(_root);
/// en: 'Chapters'
@@ -3060,6 +3063,9 @@ class TranslationsVideoSettingsEn {
/// en: 'Playback Speed'
String get playbackSpeed => 'Playback Speed';
/// en: 'Zoom'
String get zoom => 'Zoom';
/// en: 'Sleep Timer'
String get sleepTimer => 'Sleep Timer';
@@ -3680,6 +3686,15 @@ class TranslationsHotkeysActionsEn {
/// en: 'Reset Speed'
String get speedReset => 'Reset Speed';
/// en: 'Zoom In'
String get zoomIn => 'Zoom In';
/// en: 'Zoom Out'
String get zoomOut => 'Zoom Out';
/// en: 'Reset Zoom'
String get zoomReset => 'Reset Zoom';
/// en: 'Seek to Next Subtitle'
String get subSeekNext => 'Seek to Next Subtitle';
@@ -4463,6 +4478,9 @@ extension on Translations {
'hotkeys.actions.speedIncrease' => 'Increase Speed',
'hotkeys.actions.speedDecrease' => 'Decrease Speed',
'hotkeys.actions.speedReset' => 'Reset Speed',
'hotkeys.actions.zoomIn' => 'Zoom In',
'hotkeys.actions.zoomOut' => 'Zoom Out',
'hotkeys.actions.zoomReset' => 'Reset Zoom',
'hotkeys.actions.subSeekNext' => 'Seek to Next Subtitle',
'hotkeys.actions.subSeekPrev' => 'Seek to Previous Subtitle',
'hotkeys.actions.shaderToggle' => 'Toggle Shaders',
@@ -4588,6 +4606,7 @@ extension on Translations {
'videoControls.pipActive' => 'Playing in Picture-in-Picture',
'videoControls.pipFailed' => 'Picture-in-picture failed to start',
'videoControls.screenshotSaved' => 'Screenshot saved',
'videoControls.zoomPercent' => ({required Object percent}) => 'Zoom ${percent}%',
'videoControls.pipErrors.androidVersion' => 'Requires Android 8.0 or newer',
'videoControls.pipErrors.iosVersion' => 'Requires iOS 15.0 or newer',
'videoControls.pipErrors.permissionDisabled' => 'Picture-in-picture is disabled. Enable it in system settings.',
@@ -4680,12 +4699,12 @@ extension on Translations {
'profiles.addPlezyProfile' => 'Add Plezy profile',
'profiles.switchingProfile' => 'Switching profile…',
'profiles.deleteThisProfileTitle' => 'Delete this profile?',
_ => null,
} ?? switch (path) {
'profiles.deleteThisProfileMessage' => ({required Object displayName}) => 'Remove ${displayName}. Connections aren\'t affected.',
'profiles.active' => 'Active',
'profiles.manage' => 'Manage',
'profiles.delete' => 'Delete',
_ => null,
} ?? switch (path) {
'profiles.signOut' => 'Sign out',
'profiles.signOutPlexTitle' => 'Sign out of Plex?',
'profiles.signOutPlexMessage' => ({required Object displayName}) => 'Remove ${displayName} and all Plex Home users? Sign back in anytime.',
@@ -5165,6 +5184,7 @@ extension on Translations {
'companionRemote.remote.audio' => 'Audio',
'companionRemote.remote.searchHint' => 'Search on desktop...',
'videoSettings.playbackSpeed' => 'Playback Speed',
'videoSettings.zoom' => 'Zoom',
'videoSettings.sleepTimer' => 'Sleep Timer',
'videoSettings.audioSync' => 'Audio Sync',
'videoSettings.subtitleSync' => 'Subtitle Sync',
@@ -5193,13 +5213,13 @@ extension on Translations {
'metadataEdit.basicInfo' => 'Basic Info',
'metadataEdit.artwork' => 'Artwork',
'metadataEdit.advancedSettings' => 'Advanced Settings',
_ => null,
} ?? switch (path) {
'metadataEdit.title' => 'Title',
'metadataEdit.sortTitle' => 'Sort Title',
'metadataEdit.originalTitle' => 'Original Title',
'metadataEdit.releaseDate' => 'Release Date',
'metadataEdit.contentRating' => 'Content Rating',
_ => null,
} ?? switch (path) {
'metadataEdit.studio' => 'Studio',
'metadataEdit.tagline' => 'Tagline',
'metadataEdit.summary' => 'Summary',