From 48d90e071fe33ad472d8413e73b517d70ecbe502 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Fri, 25 Jun 2021 10:46:46 +0900 Subject: [PATCH] video: skip 10s action --- lib/l10n/app_en.arb | 2 ++ lib/l10n/app_ko.arb | 1 + lib/model/actions/video_actions.dart | 8 +++++++- lib/theme/icons.dart | 1 + lib/widgets/viewer/overlay/bottom/video.dart | 3 +++ lib/widgets/viewer/video_action_delegate.dart | 3 +++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 620d38876..20b2fe23e 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -101,6 +101,8 @@ "@videoActionPlay": {}, "videoActionReplay10": "Seek backward 10 seconds", "@videoActionReplay10": {}, + "videoActionSkip10": "Seek forward 10 seconds", + "@videoActionSkip10": {}, "videoActionSelectStreams": "Select tracks", "@videoActionSelectStreams": {}, "videoActionSetSpeed": "Playback speed", diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index 8a896f624..d4c55aa85 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -51,6 +51,7 @@ "videoActionPause": "일시정지", "videoActionPlay": "재생", "videoActionReplay10": "10초 뒤로 탐색", + "videoActionSkip10": "10초 앞으로 탐색", "videoActionSelectStreams": "트랙 선택", "videoActionSetSpeed": "재생 배속", diff --git a/lib/model/actions/video_actions.dart b/lib/model/actions/video_actions.dart index 89f39dc71..96b6bce53 100644 --- a/lib/model/actions/video_actions.dart +++ b/lib/model/actions/video_actions.dart @@ -5,6 +5,7 @@ import 'package:flutter/widgets.dart'; enum VideoAction { captureFrame, replay10, + skip10, selectStreams, setSpeed, togglePlay, @@ -13,11 +14,12 @@ enum VideoAction { class VideoActions { static const all = [ - VideoAction.replay10, VideoAction.togglePlay, VideoAction.captureFrame, VideoAction.setSpeed, VideoAction.selectStreams, + VideoAction.replay10, + VideoAction.skip10, ]; } @@ -28,6 +30,8 @@ extension ExtraVideoAction on VideoAction { return context.l10n.videoActionCaptureFrame; case VideoAction.replay10: return context.l10n.videoActionReplay10; + case VideoAction.skip10: + return context.l10n.videoActionSkip10; case VideoAction.selectStreams: return context.l10n.videoActionSelectStreams; case VideoAction.setSpeed: @@ -44,6 +48,8 @@ extension ExtraVideoAction on VideoAction { return AIcons.captureFrame; case VideoAction.replay10: return AIcons.replay10; + case VideoAction.skip10: + return AIcons.skip10; case VideoAction.selectStreams: return AIcons.streams; case VideoAction.setSpeed: diff --git a/lib/theme/icons.dart b/lib/theme/icons.dart index 902c057b7..21f96e78b 100644 --- a/lib/theme/icons.dart +++ b/lib/theme/icons.dart @@ -34,6 +34,7 @@ class AIcons { // actions static const IconData addShortcut = Icons.add_to_home_screen_outlined; static const IconData replay10 = Icons.replay_10_outlined; + static const IconData skip10 = Icons.forward_10_outlined; static const IconData captureFrame = Icons.screenshot_outlined; static const IconData clear = Icons.clear_outlined; static const IconData createAlbum = Icons.add_circle_outline; diff --git a/lib/widgets/viewer/overlay/bottom/video.dart b/lib/widgets/viewer/overlay/bottom/video.dart index e595e9928..2b878f7da 100644 --- a/lib/widgets/viewer/overlay/bottom/video.dart +++ b/lib/widgets/viewer/overlay/bottom/video.dart @@ -268,6 +268,7 @@ class _ButtonRow extends StatelessWidget { ); break; case VideoAction.replay10: + case VideoAction.skip10: child = IconButton( icon: Icon(action.getIcon()), onPressed: onPressed, @@ -297,6 +298,7 @@ class _ButtonRow extends StatelessWidget { enabled = controller?.canSetSpeedNotifier.value ?? false; break; case VideoAction.replay10: + case VideoAction.skip10: case VideoAction.togglePlay: enabled = true; break; @@ -312,6 +314,7 @@ class _ButtonRow extends StatelessWidget { break; case VideoAction.captureFrame: case VideoAction.replay10: + case VideoAction.skip10: case VideoAction.selectStreams: case VideoAction.setSpeed: child = MenuRow(text: action.getText(context), icon: action.getIcon()); diff --git a/lib/widgets/viewer/video_action_delegate.dart b/lib/widgets/viewer/video_action_delegate.dart index 8286cb566..6828200ed 100644 --- a/lib/widgets/viewer/video_action_delegate.dart +++ b/lib/widgets/viewer/video_action_delegate.dart @@ -35,6 +35,9 @@ class VideoActionDelegate with FeedbackMixin, PermissionAwareMixin, SizeAwareMix case VideoAction.replay10: if (controller.isReady) controller.seekTo(controller.currentPosition - 10000); break; + case VideoAction.skip10: + if (controller.isReady) controller.seekTo(controller.currentPosition + 10000); + break; case VideoAction.selectStreams: _showStreamSelectionDialog(context, controller); break;