From be00eab9e8c1f6490c43b18b0e9491a769eef47a Mon Sep 17 00:00:00 2001 From: Luan David Carrilho Date: Tue, 6 Jun 2023 13:54:32 -0300 Subject: [PATCH 1/7] chore: update pubspec --- pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pubspec.yaml b/pubspec.yaml index b6bdabe63..9e0d762f2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,6 +2,7 @@ name: chewie description: A video player for Flutter with Cupertino and Material play controls version: 1.5.0 homepage: https://github.com/fluttercommunity/chewie +publish_to: none environment: sdk: '>=2.13.0 <4.0.0' From 5fd54d42b806d2a4b1a0b1458ee59bed661f42a3 Mon Sep 17 00:00:00 2001 From: Luan David Carrilho Date: Tue, 6 Jun 2023 13:54:51 -0300 Subject: [PATCH 2/7] feat: add style --- lib/src/cupertino/cupertino_controls.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/cupertino/cupertino_controls.dart b/lib/src/cupertino/cupertino_controls.dart index 7e16b38a1..5dc8811f5 100644 --- a/lib/src/cupertino/cupertino_controls.dart +++ b/lib/src/cupertino/cupertino_controls.dart @@ -836,7 +836,7 @@ class _PlaybackSpeedDialog extends StatelessWidget { children: [ if (e == _selected) Icon(Icons.check, size: 20.0, color: selectedColor), - Text(e.toString()), + Text(e.toString(), style: TextStyle(color: Colors.white)), ], ), ), From dd7e810f069ca84a247e857af3817d4f0c4dd10f Mon Sep 17 00:00:00 2001 From: DavidCarrilho Date: Tue, 6 Jun 2023 14:29:20 -0300 Subject: [PATCH 3/7] refactor: code refactor --- example/lib/app/app.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/lib/app/app.dart b/example/lib/app/app.dart index 2f6d165cf..99f7e3f5f 100644 --- a/example/lib/app/app.dart +++ b/example/lib/app/app.dart @@ -189,9 +189,9 @@ class _ChewieDemoState extends State { ? Chewie( controller: _chewieController!, ) - : const Column( + : Column( mainAxisAlignment: MainAxisAlignment.center, - children: [ + children: const [ CircularProgressIndicator(), SizedBox(height: 20), Text('Loading'), From 660cb663ef7227665fcf697468d04d41172f7832 Mon Sep 17 00:00:00 2001 From: DavidCarrilho Date: Tue, 6 Jun 2023 14:57:45 -0300 Subject: [PATCH 4/7] feat: add styles --- lib/src/cupertino/cupertino_controls.dart | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/src/cupertino/cupertino_controls.dart b/lib/src/cupertino/cupertino_controls.dart index 5dc8811f5..9498f6c9a 100644 --- a/lib/src/cupertino/cupertino_controls.dart +++ b/lib/src/cupertino/cupertino_controls.dart @@ -84,6 +84,10 @@ class _CupertinoControlsState extends State final orientation = MediaQuery.of(context).orientation; final barHeight = orientation == Orientation.portrait ? 30.0 : 47.0; final buttonPadding = orientation == Orientation.portrait ? 16.0 : 24.0; + final style = TextStyle( + color: iconColor, + fontSize: orientation == Orientation.portrait ? 12.0 : 16.0, + ); return MouseRegion( onHover: (_) => _cancelAndRestartTimer(), @@ -117,7 +121,7 @@ class _CupertinoControlsState extends State ), child: _buildSubtitles(chewieController.subtitle!), ), - _buildBottomBar(backgroundColor, iconColor, barHeight), + _buildBottomBar(backgroundColor, iconColor, barHeight, style), ], ), ], @@ -243,6 +247,7 @@ class _CupertinoControlsState extends State Color backgroundColor, Color iconColor, double barHeight, + TextStyle? textStyle, ) { return SafeArea( bottom: chewieController.isFullScreen, @@ -282,7 +287,7 @@ class _CupertinoControlsState extends State _buildRemaining(iconColor), _buildSubtitleToggle(iconColor, barHeight), if (chewieController.allowPlaybackSpeedChanging) - _buildSpeedButton(controller, iconColor, barHeight), + _buildSpeedButton(controller, iconColor, barHeight, textStyle ?? const TextStyle(fontSize: 12.0)), if (chewieController.additionalOptions != null && chewieController .additionalOptions!(context).isNotEmpty) @@ -542,6 +547,7 @@ class _CupertinoControlsState extends State VideoPlayerController controller, Color iconColor, double barHeight, + TextStyle textStyle, ) { return GestureDetector( onTap: () async { @@ -554,6 +560,8 @@ class _CupertinoControlsState extends State builder: (context) => _PlaybackSpeedDialog( speeds: chewieController.playbackSpeeds, selected: _latestValue.playbackSpeed, + iconColor: iconColor, + textStyle: textStyle, ), ); @@ -813,12 +821,16 @@ class _PlaybackSpeedDialog extends StatelessWidget { Key? key, required List speeds, required double selected, + required this.iconColor, + required this.textStyle, // adicionado parâmetro para estilo de texto }) : _speeds = speeds, _selected = selected, super(key: key); final List _speeds; final double _selected; + final Color iconColor; + final TextStyle textStyle; // adicionado campo para estilo de texto @override Widget build(BuildContext context) { @@ -835,8 +847,8 @@ class _PlaybackSpeedDialog extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ if (e == _selected) - Icon(Icons.check, size: 20.0, color: selectedColor), - Text(e.toString(), style: TextStyle(color: Colors.white)), + Icon(Icons.check, size: 20.0, color: iconColor), + Text(e.toString(), style: textStyle), // usando o estilo de texto passado ], ), ), @@ -844,4 +856,4 @@ class _PlaybackSpeedDialog extends StatelessWidget { .toList(), ); } -} +} \ No newline at end of file From bd219555c21ab2badc52fad3885d95731b6a45d0 Mon Sep 17 00:00:00 2001 From: DavidCarrilho Date: Tue, 6 Jun 2023 15:08:41 -0300 Subject: [PATCH 5/7] feat: add styles --- lib/src/cupertino/cupertino_controls.dart | 40 ++++++++++------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/lib/src/cupertino/cupertino_controls.dart b/lib/src/cupertino/cupertino_controls.dart index 9498f6c9a..39da47590 100644 --- a/lib/src/cupertino/cupertino_controls.dart +++ b/lib/src/cupertino/cupertino_controls.dart @@ -22,11 +22,15 @@ class CupertinoControls extends StatefulWidget { required this.backgroundColor, required this.iconColor, this.showPlayButton = true, + this.iconSelectedColor, // Opcional, Color do ícone selecionado + this.textStyle, // Opcional, TextStyle para o texto Key? key, }) : super(key: key); final Color backgroundColor; final Color iconColor; + final Color? iconSelectedColor; // Adicionado campo para cor do ícone selecionado + final TextStyle? textStyle; // Adicionado campo para estilo do texto final bool showPlayButton; @override @@ -35,8 +39,7 @@ class CupertinoControls extends StatefulWidget { } } -class _CupertinoControlsState extends State - with SingleTickerProviderStateMixin { +class _CupertinoControlsState extends State with SingleTickerProviderStateMixin { late PlayerNotifier notifier; late VideoPlayerValue _latestValue; double? _latestVolume; @@ -182,8 +185,7 @@ class _CupertinoControlsState extends State useRootNavigator: chewieController.useRootNavigator, builder: (context) => CupertinoOptionsDialog( options: options, - cancelButtonText: - chewieController.optionsTranslation?.cancelButtonText, + cancelButtonText: chewieController.optionsTranslation?.cancelButtonText, ), ); if (_latestValue.isPlaying) { @@ -287,10 +289,9 @@ class _CupertinoControlsState extends State _buildRemaining(iconColor), _buildSubtitleToggle(iconColor, barHeight), if (chewieController.allowPlaybackSpeedChanging) - _buildSpeedButton(controller, iconColor, barHeight, textStyle ?? const TextStyle(fontSize: 12.0)), + _buildSpeedButton(controller, iconColor, barHeight), if (chewieController.additionalOptions != null && - chewieController - .additionalOptions!(context).isNotEmpty) + chewieController.additionalOptions!(context).isNotEmpty) _buildOptionsButton(iconColor, barHeight), ], ), @@ -352,8 +353,7 @@ class _CupertinoControlsState extends State Widget _buildHitArea() { final bool isFinished = _latestValue.position >= _latestValue.duration; - final bool showPlayButton = - widget.showPlayButton && !_latestValue.isPlaying && !_dragging; + final bool showPlayButton = widget.showPlayButton && !_latestValue.isPlaying && !_dragging; return GestureDetector( onTap: _latestValue.isPlaying @@ -547,7 +547,6 @@ class _CupertinoControlsState extends State VideoPlayerController controller, Color iconColor, double barHeight, - TextStyle textStyle, ) { return GestureDetector( onTap: () async { @@ -560,8 +559,9 @@ class _CupertinoControlsState extends State builder: (context) => _PlaybackSpeedDialog( speeds: chewieController.playbackSpeeds, selected: _latestValue.playbackSpeed, - iconColor: iconColor, - textStyle: textStyle, + iconColor: widget.iconSelectedColor ?? Colors.white, // cor padrão se for null + textStyle: widget.textStyle ?? + const TextStyle(color: Colors.black, fontSize: 16.0), // estilo padrão se for null ), ); @@ -759,16 +759,14 @@ class _CupertinoControlsState extends State void _skipBack() { _cancelAndRestartTimer(); final beginning = Duration.zero.inMilliseconds; - final skip = - (_latestValue.position - const Duration(seconds: 15)).inMilliseconds; + final skip = (_latestValue.position - const Duration(seconds: 15)).inMilliseconds; controller.seekTo(Duration(milliseconds: math.max(skip, beginning))); } void _skipForward() { _cancelAndRestartTimer(); final end = _latestValue.duration.inMilliseconds; - final skip = - (_latestValue.position + const Duration(seconds: 15)).inMilliseconds; + final skip = (_latestValue.position + const Duration(seconds: 15)).inMilliseconds; controller.seekTo(Duration(milliseconds: math.min(skip, end))); } @@ -821,7 +819,7 @@ class _PlaybackSpeedDialog extends StatelessWidget { Key? key, required List speeds, required double selected, - required this.iconColor, + required this.iconColor, required this.textStyle, // adicionado parâmetro para estilo de texto }) : _speeds = speeds, _selected = selected, @@ -829,12 +827,11 @@ class _PlaybackSpeedDialog extends StatelessWidget { final List _speeds; final double _selected; - final Color iconColor; + final Color iconColor; final TextStyle textStyle; // adicionado campo para estilo de texto @override Widget build(BuildContext context) { - final selectedColor = CupertinoTheme.of(context).primaryColor; return CupertinoActionSheet( actions: _speeds @@ -846,8 +843,7 @@ class _PlaybackSpeedDialog extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ - if (e == _selected) - Icon(Icons.check, size: 20.0, color: iconColor), + if (e == _selected) Icon(Icons.check, size: 20.0, color: iconColor), Text(e.toString(), style: textStyle), // usando o estilo de texto passado ], ), @@ -856,4 +852,4 @@ class _PlaybackSpeedDialog extends StatelessWidget { .toList(), ); } -} \ No newline at end of file +} From cf21e1d0867f37308975ce637dacca92791e4e7e Mon Sep 17 00:00:00 2001 From: DavidCarrilho Date: Tue, 6 Jun 2023 16:08:45 -0300 Subject: [PATCH 6/7] feat: add styles --- lib/src/cupertino/cupertino_controls.dart | 30 +++++++++++++++++------ 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/lib/src/cupertino/cupertino_controls.dart b/lib/src/cupertino/cupertino_controls.dart index 39da47590..950fc3f7a 100644 --- a/lib/src/cupertino/cupertino_controls.dart +++ b/lib/src/cupertino/cupertino_controls.dart @@ -22,16 +22,20 @@ class CupertinoControls extends StatefulWidget { required this.backgroundColor, required this.iconColor, this.showPlayButton = true, - this.iconSelectedColor, // Opcional, Color do ícone selecionado - this.textStyle, // Opcional, TextStyle para o texto + this.iconSelectedColor, + this.textStyle, + this.mainAxisAlignment, // adicionado parâmetro de MainAxisAlignment + this.paddingIcon = const EdgeInsets.all(0.0), Key? key, }) : super(key: key); final Color backgroundColor; final Color iconColor; - final Color? iconSelectedColor; // Adicionado campo para cor do ícone selecionado - final TextStyle? textStyle; // Adicionado campo para estilo do texto + final Color? iconSelectedColor; + final TextStyle? textStyle; + final MainAxisAlignment? mainAxisAlignment; // adicionado campo de MainAxisAlignment final bool showPlayButton; + final EdgeInsets paddingIcon; @override State createState() { @@ -562,6 +566,9 @@ class _CupertinoControlsState extends State with SingleTicker iconColor: widget.iconSelectedColor ?? Colors.white, // cor padrão se for null textStyle: widget.textStyle ?? const TextStyle(color: Colors.black, fontSize: 16.0), // estilo padrão se for null + mainAxisAlignment: widget.mainAxisAlignment ?? + MainAxisAlignment.center, // alinhamento padrão se for null + paddingIcon: widget.paddingIcon, ), ); @@ -821,6 +828,8 @@ class _PlaybackSpeedDialog extends StatelessWidget { required double selected, required this.iconColor, required this.textStyle, // adicionado parâmetro para estilo de texto + required this.mainAxisAlignment, + required this.paddingIcon, }) : _speeds = speeds, _selected = selected, super(key: key); @@ -829,10 +838,11 @@ class _PlaybackSpeedDialog extends StatelessWidget { final double _selected; final Color iconColor; final TextStyle textStyle; // adicionado campo para estilo de texto + final MainAxisAlignment mainAxisAlignment; + final EdgeInsets paddingIcon; @override Widget build(BuildContext context) { - return CupertinoActionSheet( actions: _speeds .map( @@ -841,9 +851,15 @@ class _PlaybackSpeedDialog extends StatelessWidget { Navigator.of(context).pop(e); }, child: Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: mainAxisAlignment, children: [ - if (e == _selected) Icon(Icons.check, size: 20.0, color: iconColor), + if (e == _selected) + Padding( + padding: paddingIcon, + child: Icon(Icons.check, size: 20.0, color: iconColor), + ) + else if (MainAxisAlignment.start == mainAxisAlignment) + SizedBox(width: 20.0), Text(e.toString(), style: textStyle), // usando o estilo de texto passado ], ), From 9e9d963e1103d7b9b87549885536e87e2a6a8196 Mon Sep 17 00:00:00 2001 From: DavidCarrilho Date: Tue, 6 Jun 2023 16:21:27 -0300 Subject: [PATCH 7/7] feat: add item padding --- lib/src/cupertino/cupertino_controls.dart | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lib/src/cupertino/cupertino_controls.dart b/lib/src/cupertino/cupertino_controls.dart index 950fc3f7a..0a1cd6d63 100644 --- a/lib/src/cupertino/cupertino_controls.dart +++ b/lib/src/cupertino/cupertino_controls.dart @@ -24,8 +24,8 @@ class CupertinoControls extends StatefulWidget { this.showPlayButton = true, this.iconSelectedColor, this.textStyle, - this.mainAxisAlignment, // adicionado parâmetro de MainAxisAlignment - this.paddingIcon = const EdgeInsets.all(0.0), + this.mainAxisAlignment, + this.paddingItem = const EdgeInsets.all(0.0), Key? key, }) : super(key: key); @@ -33,9 +33,9 @@ class CupertinoControls extends StatefulWidget { final Color iconColor; final Color? iconSelectedColor; final TextStyle? textStyle; - final MainAxisAlignment? mainAxisAlignment; // adicionado campo de MainAxisAlignment + final MainAxisAlignment? mainAxisAlignment; final bool showPlayButton; - final EdgeInsets paddingIcon; + final EdgeInsets paddingItem; @override State createState() { @@ -563,12 +563,12 @@ class _CupertinoControlsState extends State with SingleTicker builder: (context) => _PlaybackSpeedDialog( speeds: chewieController.playbackSpeeds, selected: _latestValue.playbackSpeed, - iconColor: widget.iconSelectedColor ?? Colors.white, // cor padrão se for null + iconColor: widget.iconSelectedColor ?? Colors.white, textStyle: widget.textStyle ?? - const TextStyle(color: Colors.black, fontSize: 16.0), // estilo padrão se for null + const TextStyle(color: Colors.black, fontSize: 16.0), mainAxisAlignment: widget.mainAxisAlignment ?? - MainAxisAlignment.center, // alinhamento padrão se for null - paddingIcon: widget.paddingIcon, + MainAxisAlignment.center, + paddingItem: widget.paddingItem, ), ); @@ -827,9 +827,9 @@ class _PlaybackSpeedDialog extends StatelessWidget { required List speeds, required double selected, required this.iconColor, - required this.textStyle, // adicionado parâmetro para estilo de texto + required this.textStyle, required this.mainAxisAlignment, - required this.paddingIcon, + required this.paddingItem, }) : _speeds = speeds, _selected = selected, super(key: key); @@ -837,9 +837,9 @@ class _PlaybackSpeedDialog extends StatelessWidget { final List _speeds; final double _selected; final Color iconColor; - final TextStyle textStyle; // adicionado campo para estilo de texto + final TextStyle textStyle; final MainAxisAlignment mainAxisAlignment; - final EdgeInsets paddingIcon; + final EdgeInsets paddingItem; @override Widget build(BuildContext context) { @@ -854,13 +854,13 @@ class _PlaybackSpeedDialog extends StatelessWidget { mainAxisAlignment: mainAxisAlignment, children: [ if (e == _selected) - Padding( - padding: paddingIcon, - child: Icon(Icons.check, size: 20.0, color: iconColor), - ) + Icon(Icons.check, size: 20.0, color: iconColor) else if (MainAxisAlignment.start == mainAxisAlignment) SizedBox(width: 20.0), - Text(e.toString(), style: textStyle), // usando o estilo de texto passado + Padding( + padding: paddingItem, + child: Text(e.toString(), style: textStyle), + ), ], ), ),