Skip to content

Commit 3b6271a

Browse files
authored
Merge pull request #871 from akmalova/fix-pop
Fixed pop the wrong page when changing the speed
2 parents c2a54c3 + 39f06c5 commit 3b6271a

File tree

6 files changed

+17
-13
lines changed

6 files changed

+17
-13
lines changed

example/lib/app/app.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class _ChewieDemoState extends State<ChewieDemo> {
119119
additionalOptions: (context) {
120120
return <OptionItem>[
121121
OptionItem(
122-
onTap: toggleVideo,
122+
onTap: (context) => toggleVideo(),
123123
iconData: Icons.live_tv_sharp,
124124
title: 'Toggle Video Src',
125125
),

lib/src/cupertino/widgets/cupertino_options_dialog.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class _CupertinoOptionsDialogState extends State<CupertinoOptionsDialog> {
2424
actions: widget.options
2525
.map(
2626
(option) => CupertinoActionSheetAction(
27-
onPressed: () => option.onTap!(),
27+
onPressed: () => option.onTap(context),
2828
child: Text(option.title),
2929
),
3030
)

lib/src/material/material_controls.dart

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ class _MaterialControlsState extends State<MaterialControls>
162162
);
163163
}
164164

165-
Widget _buildOptionsButton() {
165+
List<OptionItem> _buildOptions(BuildContext context) {
166166
final options = <OptionItem>[
167167
OptionItem(
168-
onTap: () async {
168+
onTap: (context) async {
169169
Navigator.pop(context);
170170
_onSpeedButtonTap();
171171
},
@@ -179,7 +179,10 @@ class _MaterialControlsState extends State<MaterialControls>
179179
chewieController.additionalOptions!(context).isNotEmpty) {
180180
options.addAll(chewieController.additionalOptions!(context));
181181
}
182+
return options;
183+
}
182184

185+
Widget _buildOptionsButton() {
183186
return AnimatedOpacity(
184187
opacity: notifier.hideStuff ? 0.0 : 1.0,
185188
duration: const Duration(milliseconds: 250),
@@ -188,14 +191,15 @@ class _MaterialControlsState extends State<MaterialControls>
188191
_hideTimer?.cancel();
189192

190193
if (chewieController.optionsBuilder != null) {
191-
await chewieController.optionsBuilder!(context, options);
194+
await chewieController.optionsBuilder!(
195+
context, _buildOptions(context));
192196
} else {
193197
await showModalBottomSheet<OptionItem>(
194198
context: context,
195199
isScrollControlled: true,
196200
useRootNavigator: chewieController.useRootNavigator,
197201
builder: (context) => OptionsDialog(
198-
options: options,
202+
options: _buildOptions(context),
199203
cancelButtonText:
200204
chewieController.optionsTranslation?.cancelButtonText,
201205
),

lib/src/material/material_desktop_controls.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ class _MaterialDesktopControlsState extends State<MaterialDesktopControls>
183183
}) {
184184
final options = <OptionItem>[
185185
OptionItem(
186-
onTap: () async {
186+
onTap: (context) async {
187187
Navigator.pop(context);
188188
_onSpeedButtonTap();
189189
},

lib/src/material/widgets/options_dialog.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class _OptionsDialogState extends State<OptionsDialog> {
2828
itemCount: widget.options.length,
2929
itemBuilder: (context, i) {
3030
return ListTile(
31-
onTap: widget.options[i].onTap,
31+
onTap: () => widget.options[i].onTap(context),
3232
leading: Icon(widget.options[i].iconData),
3333
title: Text(widget.options[i].title),
3434
subtitle: widget.options[i].subtitle != null

lib/src/models/option_item.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ class OptionItem {
88
this.subtitle,
99
});
1010

11-
Function()? onTap;
12-
IconData iconData;
13-
String title;
14-
String? subtitle;
11+
final void Function(BuildContext context) onTap;
12+
final IconData iconData;
13+
final String title;
14+
final String? subtitle;
1515

1616
OptionItem copyWith({
17-
Function()? onTap,
17+
Function(BuildContext context)? onTap,
1818
IconData? iconData,
1919
String? title,
2020
String? subtitle,

0 commit comments

Comments
 (0)