diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e0684822..af68961d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file. ### Added - Collection: support for Sony predictive capture as burst +- Video: option to never/always resume playback - Display: option to set maximum brightness on all pages - Hungarian translation (thanks György Viktor, byPety) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index bc5ab6045..2527bfc9e 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -707,6 +707,7 @@ "settingsSystemDefault": "System default", "settingsDefault": "Default", "settingsDisabled": "Disabled", + "settingsAskEverytime": "Ask everytime", "settingsModificationWarningDialogMessage": "Other settings will be modified.", "settingsSearchFieldLabel": "Search settings", @@ -805,13 +806,25 @@ "settingsVideoPageTitle": "Video Settings", "settingsVideoSectionTitle": "Video", "settingsVideoShowVideos": "Show videos", + + "settingsVideoPlaybackTile": "Playback", + "settingsVideoPlaybackPageTitle": "Playback", "settingsVideoEnableHardwareAcceleration": "Hardware acceleration", "settingsVideoAutoPlay": "Auto play", "settingsVideoLoopModeTile": "Loop mode", "settingsVideoLoopModeDialogTitle": "Loop Mode", + "settingsVideoResumptionModeTile": "Resume playback", + "settingsVideoResumptionModeDialogTitle": "Resume Playback", "settingsVideoBackgroundMode": "Background mode", "settingsVideoBackgroundModeDialogTitle": "Background Mode", + "settingsVideoControlsTile": "Controls", + "settingsVideoControlsPageTitle": "Controls", + "settingsVideoButtonsTile": "Buttons", + "settingsVideoGestureDoubleTapTogglePlay": "Double tap to play/pause", + "settingsVideoGestureSideDoubleTapSeek": "Double tap on screen edges to seek backward/forward", + "settingsVideoGestureVerticalDragBrightnessVolume": "Swipe up or down to adjust brightness/volume", + "settingsSubtitleThemeTile": "Subtitles", "settingsSubtitleThemePageTitle": "Subtitles", "settingsSubtitleThemeSample": "This is a sample.", @@ -829,13 +842,6 @@ "settingsSubtitleThemeTextAlignmentCenter": "Center", "settingsSubtitleThemeTextAlignmentRight": "Right", - "settingsVideoControlsTile": "Controls", - "settingsVideoControlsPageTitle": "Controls", - "settingsVideoButtonsTile": "Buttons", - "settingsVideoGestureDoubleTapTogglePlay": "Double tap to play/pause", - "settingsVideoGestureSideDoubleTapSeek": "Double tap on screen edges to seek backward/forward", - "settingsVideoGestureVerticalDragBrightnessVolume": "Swipe up or down to adjust brightness/volume", - "settingsPrivacySectionTitle": "Privacy", "settingsAllowInstalledAppAccess": "Allow access to app inventory", "settingsAllowInstalledAppAccessSubtitle": "Used to improve album display", diff --git a/lib/model/settings/defaults.dart b/lib/model/settings/defaults.dart index b981a7002..3af4ca3af 100644 --- a/lib/model/settings/defaults.dart +++ b/lib/model/settings/defaults.dart @@ -89,6 +89,7 @@ class SettingsDefaults { static const videoAutoPlayMode = VideoAutoPlayMode.disabled; static const videoBackgroundMode = VideoBackgroundMode.disabled; static const videoLoopMode = VideoLoopMode.shortOnly; + static const videoResumptionMode = VideoResumptionMode.ask; static const videoShowRawTimedText = false; static const videoControls = VideoControls.play; static const videoGestureDoubleTapTogglePlay = false; diff --git a/lib/model/settings/settings.dart b/lib/model/settings/settings.dart index d1dc04d97..1dda576d8 100644 --- a/lib/model/settings/settings.dart +++ b/lib/model/settings/settings.dart @@ -138,6 +138,7 @@ class Settings extends ChangeNotifier { static const videoBackgroundModeKey = 'video_background_mode'; static const videoAutoPlayModeKey = 'video_auto_play_mode'; static const videoLoopModeKey = 'video_loop'; + static const videoResumptionModeKey = 'video_resumption_mode'; static const videoControlsKey = 'video_controls'; static const videoGestureDoubleTapTogglePlayKey = 'video_gesture_double_tap_toggle_play'; static const videoGestureSideDoubleTapSeekKey = 'video_gesture_side_double_tap_skip'; @@ -691,6 +692,10 @@ class Settings extends ChangeNotifier { set videoLoopMode(VideoLoopMode newValue) => _set(videoLoopModeKey, newValue.toString()); + VideoResumptionMode get videoResumptionMode => getEnumOrDefault(videoResumptionModeKey, SettingsDefaults.videoResumptionMode, VideoResumptionMode.values); + + set videoResumptionMode(VideoResumptionMode newValue) => _set(videoResumptionModeKey, newValue.toString()); + VideoControls get videoControls => getEnumOrDefault(videoControlsKey, SettingsDefaults.videoControls, VideoControls.values); set videoControls(VideoControls newValue) => _set(videoControlsKey, newValue.toString()); @@ -1149,6 +1154,7 @@ class Settings extends ChangeNotifier { case videoAutoPlayModeKey: case videoBackgroundModeKey: case videoLoopModeKey: + case videoResumptionModeKey: case videoControlsKey: case subtitleTextAlignmentKey: case subtitleTextPositionKey: diff --git a/lib/view/src/settings/enums.dart b/lib/view/src/settings/enums.dart index 5dde92656..9499bbafc 100644 --- a/lib/view/src/settings/enums.dart +++ b/lib/view/src/settings/enums.dart @@ -223,6 +223,19 @@ extension ExtraVideoLoopModeView on VideoLoopMode { } } +extension ExtraVideoResumptionModeView on VideoResumptionMode { + String getName(BuildContext context) { + switch (this) { + case VideoResumptionMode.never: + return context.l10n.videoLoopModeNever; + case VideoResumptionMode.ask: + return context.l10n.settingsAskEverytime; + case VideoResumptionMode.always: + return context.l10n.videoLoopModeAlways; + } + } +} + extension ExtraViewerTransitionView on ViewerTransition { String getName(BuildContext context) { switch (this) { diff --git a/lib/widgets/settings/video/playback.dart b/lib/widgets/settings/video/playback.dart new file mode 100644 index 000000000..4d82ac0c8 --- /dev/null +++ b/lib/widgets/settings/video/playback.dart @@ -0,0 +1,66 @@ +import 'package:aves/model/device.dart'; +import 'package:aves/model/settings/settings.dart'; +import 'package:aves/view/view.dart'; +import 'package:aves/widgets/common/basic/scaffold.dart'; +import 'package:aves/widgets/common/extensions/build_context.dart'; +import 'package:aves/widgets/settings/common/tiles.dart'; +import 'package:aves_model/aves_model.dart'; +import 'package:flutter/material.dart'; + +class VideoPlaybackPage extends StatelessWidget { + static const routeName = '/settings/video/playback'; + + const VideoPlaybackPage({super.key}); + + @override + Widget build(BuildContext context) { + return AvesScaffold( + appBar: AppBar( + title: Text(context.l10n.settingsVideoPlaybackPageTitle), + ), + body: SafeArea( + child: ListView( + children: [ + SettingsSwitchListTile( + selector: (context, s) => s.enableVideoHardwareAcceleration, + onChanged: (v) => settings.enableVideoHardwareAcceleration = v, + title: context.l10n.settingsVideoEnableHardwareAcceleration, + ), + SettingsSelectionListTile( + values: VideoAutoPlayMode.values, + getName: (context, v) => v.getName(context), + selector: (context, s) => s.videoAutoPlayMode, + onSelection: (v) => settings.videoAutoPlayMode = v, + tileTitle: context.l10n.settingsVideoAutoPlay, + ), + SettingsSelectionListTile( + values: VideoLoopMode.values, + getName: (context, v) => v.getName(context), + selector: (context, s) => s.videoLoopMode, + onSelection: (v) => settings.videoLoopMode = v, + tileTitle: context.l10n.settingsVideoLoopModeTile, + dialogTitle: context.l10n.settingsVideoLoopModeDialogTitle, + ), + SettingsSelectionListTile( + values: VideoResumptionMode.values, + getName: (context, v) => v.getName(context), + selector: (context, s) => s.videoResumptionMode, + onSelection: (v) => settings.videoResumptionMode = v, + tileTitle: context.l10n.settingsVideoResumptionModeTile, + dialogTitle: context.l10n.settingsVideoResumptionModeDialogTitle, + ), + if (!settings.useTvLayout && device.supportPictureInPicture) + SettingsSelectionListTile( + values: VideoBackgroundMode.values, + getName: (context, v) => v.getName(context), + selector: (context, s) => s.videoBackgroundMode, + onSelection: (v) => settings.videoBackgroundMode = v, + tileTitle: context.l10n.settingsVideoBackgroundMode, + dialogTitle: context.l10n.settingsVideoBackgroundModeDialogTitle, + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/settings/video/video.dart b/lib/widgets/settings/video/video.dart index 0ac8dae08..6c060370d 100644 --- a/lib/widgets/settings/video/video.dart +++ b/lib/widgets/settings/video/video.dart @@ -1,18 +1,16 @@ import 'dart:async'; -import 'package:aves/model/device.dart'; import 'package:aves/model/filters/mime.dart'; import 'package:aves/model/settings/settings.dart'; import 'package:aves/theme/colors.dart'; import 'package:aves/theme/icons.dart'; -import 'package:aves/view/view.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/settings/common/tile_leading.dart'; import 'package:aves/widgets/settings/common/tiles.dart'; import 'package:aves/widgets/settings/settings_definition.dart'; import 'package:aves/widgets/settings/video/controls.dart'; +import 'package:aves/widgets/settings/video/playback.dart'; import 'package:aves/widgets/settings/video/subtitle_theme.dart'; -import 'package:aves_model/aves_model.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -39,10 +37,7 @@ class VideoSection extends SettingsSection { FutureOr> tiles(BuildContext context) async { return [ if (!standalonePage) SettingsTileVideoShowVideos(), - SettingsTileVideoEnableHardwareAcceleration(), - SettingsTileVideoEnableAutoPlay(), - SettingsTileVideoLoopMode(), - if (!settings.useTvLayout && device.supportPictureInPicture) SettingsTileVideoBackgroundMode(), + SettingsTileVideoPlayback(), if (!settings.useTvLayout) SettingsTileVideoControls(), SettingsTileVideoSubtitleTheme(), ]; @@ -61,59 +56,15 @@ class SettingsTileVideoShowVideos extends SettingsTile { ); } -class SettingsTileVideoEnableHardwareAcceleration extends SettingsTile { +class SettingsTileVideoPlayback extends SettingsTile { @override - String title(BuildContext context) => context.l10n.settingsVideoEnableHardwareAcceleration; + String title(BuildContext context) => context.l10n.settingsVideoPlaybackTile; @override - Widget build(BuildContext context) => SettingsSwitchListTile( - selector: (context, s) => s.enableVideoHardwareAcceleration, - onChanged: (v) => settings.enableVideoHardwareAcceleration = v, + Widget build(BuildContext context) => SettingsSubPageTile( title: title(context), - ); -} - -class SettingsTileVideoEnableAutoPlay extends SettingsTile { - @override - String title(BuildContext context) => context.l10n.settingsVideoAutoPlay; - - @override - Widget build(BuildContext context) => SettingsSelectionListTile( - values: VideoAutoPlayMode.values, - getName: (context, v) => v.getName(context), - selector: (context, s) => s.videoAutoPlayMode, - onSelection: (v) => settings.videoAutoPlayMode = v, - tileTitle: title(context), - ); -} - -class SettingsTileVideoLoopMode extends SettingsTile { - @override - String title(BuildContext context) => context.l10n.settingsVideoLoopModeTile; - - @override - Widget build(BuildContext context) => SettingsSelectionListTile( - values: VideoLoopMode.values, - getName: (context, v) => v.getName(context), - selector: (context, s) => s.videoLoopMode, - onSelection: (v) => settings.videoLoopMode = v, - tileTitle: title(context), - dialogTitle: context.l10n.settingsVideoLoopModeDialogTitle, - ); -} - -class SettingsTileVideoBackgroundMode extends SettingsTile { - @override - String title(BuildContext context) => context.l10n.settingsVideoBackgroundMode; - - @override - Widget build(BuildContext context) => SettingsSelectionListTile( - values: VideoBackgroundMode.values, - getName: (context, v) => v.getName(context), - selector: (context, s) => s.videoBackgroundMode, - onSelection: (v) => settings.videoBackgroundMode = v, - tileTitle: title(context), - dialogTitle: context.l10n.settingsVideoBackgroundModeDialogTitle, + routeName: VideoPlaybackPage.routeName, + builder: (context) => const VideoPlaybackPage(), ); } diff --git a/lib/widgets/viewer/video/db_playback_state_handler.dart b/lib/widgets/viewer/video/db_playback_state_handler.dart index 675e25e1f..d27db3957 100644 --- a/lib/widgets/viewer/video/db_playback_state_handler.dart +++ b/lib/widgets/viewer/video/db_playback_state_handler.dart @@ -1,10 +1,12 @@ import 'dart:async'; +import 'package:aves/model/settings/settings.dart'; import 'package:aves/model/video_playback.dart'; import 'package:aves/services/common/services.dart'; import 'package:aves/theme/format.dart'; import 'package:aves/widgets/common/extensions/build_context.dart'; import 'package:aves/widgets/dialogs/aves_dialog.dart'; +import 'package:aves_model/aves_model.dart'; import 'package:aves_video/aves_video.dart'; import 'package:flutter/material.dart'; @@ -21,25 +23,32 @@ class DatabasePlaybackStateHandler extends PlaybackStateHandler { // clear on retrieval await metadataDb.removeVideoPlayback({entryId}); - final resume = await showDialog( - context: context, - builder: (context) => AvesDialog( - content: Text(context.l10n.videoResumeDialogMessage(formatFriendlyDuration(Duration(milliseconds: resumeTime)))), - actions: [ - TextButton( - onPressed: () => Navigator.maybeOf(context)?.pop(false), - child: Text(context.l10n.videoStartOverButtonLabel), - ), - TextButton( - onPressed: () => Navigator.maybeOf(context)?.pop(true), - child: Text(context.l10n.videoResumeButtonLabel), - ), - ], - ), - routeSettings: const RouteSettings(name: AvesDialog.confirmationRouteName), - ); - if (resume == null || !resume) return 0; - return resumeTime; + switch (settings.videoResumptionMode) { + case VideoResumptionMode.never: + return 0; + case VideoResumptionMode.ask: + final resume = await showDialog( + context: context, + builder: (context) => AvesDialog( + content: Text(context.l10n.videoResumeDialogMessage(formatFriendlyDuration(Duration(milliseconds: resumeTime)))), + actions: [ + TextButton( + onPressed: () => Navigator.maybeOf(context)?.pop(false), + child: Text(context.l10n.videoStartOverButtonLabel), + ), + TextButton( + onPressed: () => Navigator.maybeOf(context)?.pop(true), + child: Text(context.l10n.videoResumeButtonLabel), + ), + ], + ), + routeSettings: const RouteSettings(name: AvesDialog.confirmationRouteName), + ) ?? + false; + return resume ? resumeTime : 0; + case VideoResumptionMode.always: + return resumeTime; + } } @override diff --git a/plugins/aves_model/lib/src/settings/enums.dart b/plugins/aves_model/lib/src/settings/enums.dart index 71ece7572..f12c6ce7b 100644 --- a/plugins/aves_model/lib/src/settings/enums.dart +++ b/plugins/aves_model/lib/src/settings/enums.dart @@ -38,6 +38,8 @@ enum VideoControls { play, playSeek, playOutside, none } enum VideoLoopMode { never, shortOnly, always } +enum VideoResumptionMode { never, ask, always } + enum ViewerTransition { slide, parallax, fade, zoomIn, none } enum WidgetDisplayedItem { random, mostRecent } diff --git a/untranslated.json b/untranslated.json index a3c3f0457..f25fc9f1a 100644 --- a/untranslated.json +++ b/untranslated.json @@ -403,6 +403,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -488,12 +489,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -510,12 +521,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -972,6 +977,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -1057,12 +1063,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -1079,12 +1095,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -1197,23 +1207,48 @@ ], "cs": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "de": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "el": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "es": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "eu": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "fa": [ @@ -1483,6 +1518,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -1564,12 +1600,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -1586,12 +1632,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -1702,7 +1742,12 @@ ], "fr": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "gl": [ @@ -1998,6 +2043,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -2083,12 +2129,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -2105,12 +2161,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -2644,6 +2694,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -2729,12 +2780,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -2751,12 +2812,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -3270,6 +3325,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -3355,12 +3411,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -3377,12 +3443,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -3495,16 +3555,31 @@ ], "hu": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "id": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "it": [ "discardButtonLabel", - "settingsCollectionBurstPatternsTile" + "settingsAskEverytime", + "settingsCollectionBurstPatternsTile", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "ja": [ @@ -3524,11 +3599,16 @@ "stateEmpty", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", "settingsViewerShowDescription", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "settingsVideoGestureVerticalDragBrightnessVolume", @@ -3540,7 +3620,12 @@ ], "ko": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "lt": [ @@ -3585,11 +3670,16 @@ "placePageTitle", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", "settingsViewerShowDescription", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "settingsVideoGestureVerticalDragBrightnessVolume", @@ -3612,8 +3702,13 @@ "statePageTitle", "stateEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "statsTopStatesSectionTitle", @@ -3670,17 +3765,22 @@ "placePageTitle", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", "settingsViewerShowRatingTags", "settingsViewerShowDescription", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTextPositionTile", "settingsSubtitleThemeTextPositionDialogTitle", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsDisablingBinWarningDialogMessage", "settingsAccessibilityShowPinchGestureAlternatives", "settingsDisplayUseTvInterface", @@ -3860,6 +3960,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -3945,12 +4046,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -3967,12 +4078,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -4386,6 +4491,7 @@ "searchMetadataSectionTitle", "settingsSystemDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -4461,12 +4567,22 @@ "settingsSlideshowVideoPlaybackDialogTitle", "settingsVideoPageTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -4483,12 +4599,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -4601,15 +4711,30 @@ ], "pl": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "pt": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "ro": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "ru": [ @@ -4624,9 +4749,14 @@ "statePageTitle", "stateEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoGestureVerticalDragBrightnessVolume", "statsTopStatesSectionTitle", "tagPlaceholderState" @@ -4842,6 +4972,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -4927,12 +5058,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -4949,12 +5090,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -5211,6 +5346,7 @@ "settingsSystemDefault", "settingsDefault", "settingsDisabled", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsSearchFieldLabel", "settingsSearchEmpty", @@ -5296,12 +5432,22 @@ "settingsVideoPageTitle", "settingsVideoSectionTitle", "settingsVideoShowVideos", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", "settingsVideoEnableHardwareAcceleration", "settingsVideoAutoPlay", "settingsVideoLoopModeTile", "settingsVideoLoopModeDialogTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", + "settingsVideoControlsTile", + "settingsVideoControlsPageTitle", + "settingsVideoButtonsTile", + "settingsVideoGestureDoubleTapTogglePlay", + "settingsVideoGestureSideDoubleTapSeek", + "settingsVideoGestureVerticalDragBrightnessVolume", "settingsSubtitleThemeTile", "settingsSubtitleThemePageTitle", "settingsSubtitleThemeSample", @@ -5318,12 +5464,6 @@ "settingsSubtitleThemeTextAlignmentLeft", "settingsSubtitleThemeTextAlignmentCenter", "settingsSubtitleThemeTextAlignmentRight", - "settingsVideoControlsTile", - "settingsVideoControlsPageTitle", - "settingsVideoButtonsTile", - "settingsVideoGestureDoubleTapTogglePlay", - "settingsVideoGestureSideDoubleTapSeek", - "settingsVideoGestureVerticalDragBrightnessVolume", "settingsPrivacySectionTitle", "settingsAllowInstalledAppAccess", "settingsAllowInstalledAppAccessSubtitle", @@ -5472,9 +5612,14 @@ "placePageTitle", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "settingsDisablingBinWarningDialogMessage", @@ -5483,7 +5628,12 @@ ], "uk": [ - "discardButtonLabel" + "discardButtonLabel", + "settingsAskEverytime", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle" ], "zh": [ @@ -5522,11 +5672,16 @@ "placePageTitle", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", "settingsViewerShowDescription", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "settingsVideoGestureVerticalDragBrightnessVolume", @@ -5578,11 +5733,16 @@ "placePageTitle", "placeEmpty", "searchStatesSectionTitle", + "settingsAskEverytime", "settingsModificationWarningDialogMessage", "settingsConfirmationVaultDataLoss", "settingsCollectionBurstPatternsTile", "settingsCollectionBurstPatternsNone", "settingsViewerShowDescription", + "settingsVideoPlaybackTile", + "settingsVideoPlaybackPageTitle", + "settingsVideoResumptionModeTile", + "settingsVideoResumptionModeDialogTitle", "settingsVideoBackgroundMode", "settingsVideoBackgroundModeDialogTitle", "settingsVideoGestureVerticalDragBrightnessVolume",