#590 video: option to never/always resume playback

This commit is contained in:
Thibault Deckers 2023-04-28 20:13:51 +02:00
parent 6c11fd179e
commit 393caa017c
10 changed files with 372 additions and 157 deletions

View file

@ -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)

View file

@ -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",

View file

@ -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;

View file

@ -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:

View file

@ -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) {

View file

@ -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<VideoAutoPlayMode>(
values: VideoAutoPlayMode.values,
getName: (context, v) => v.getName(context),
selector: (context, s) => s.videoAutoPlayMode,
onSelection: (v) => settings.videoAutoPlayMode = v,
tileTitle: context.l10n.settingsVideoAutoPlay,
),
SettingsSelectionListTile<VideoLoopMode>(
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<VideoResumptionMode>(
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<VideoBackgroundMode>(
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,
),
],
),
),
);
}
}

View file

@ -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<List<SettingsTile>> 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<VideoAutoPlayMode>(
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<VideoLoopMode>(
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<VideoBackgroundMode>(
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(),
);
}

View file

@ -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<bool>(
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<bool>(
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

View file

@ -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 }

View file

@ -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",