Add defaults to showGeneralDialog()
(#61503)
The function passes most of its arguments through to `_DialogRoute`, but it wasn't providing the default values that `_DialogRoute` was, causing it to override the defaults will null values.
This commit is contained in:
parent
d009172fd2
commit
0d2421d5df
@ -1799,10 +1799,10 @@ class _DialogRoute<T> extends PopupRoute<T> {
|
||||
Future<T> showGeneralDialog<T>({
|
||||
@required BuildContext context,
|
||||
@required RoutePageBuilder pageBuilder,
|
||||
bool barrierDismissible,
|
||||
bool barrierDismissible = false,
|
||||
String barrierLabel,
|
||||
Color barrierColor,
|
||||
Duration transitionDuration,
|
||||
Color barrierColor = const Color(0x80000000),
|
||||
Duration transitionDuration = const Duration(milliseconds: 200),
|
||||
RouteTransitionsBuilder transitionBuilder,
|
||||
bool useRootNavigator = true,
|
||||
RouteSettings routeSettings,
|
||||
|
@ -1041,6 +1041,41 @@ void main() {
|
||||
expect(nestedObserver.dialogCount, 1);
|
||||
});
|
||||
|
||||
testWidgets('showGeneralDialog default argument values', (WidgetTester tester) async {
|
||||
final DialogObserver rootObserver = DialogObserver();
|
||||
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
navigatorObservers: <NavigatorObserver>[rootObserver],
|
||||
home: Navigator(
|
||||
onGenerateRoute: (RouteSettings settings) {
|
||||
return MaterialPageRoute<dynamic>(
|
||||
builder: (BuildContext context) {
|
||||
return RaisedButton(
|
||||
onPressed: () {
|
||||
showGeneralDialog<void>(
|
||||
context: context,
|
||||
pageBuilder: (BuildContext innerContext, _, __) {
|
||||
return const SizedBox();
|
||||
},
|
||||
);
|
||||
},
|
||||
child: const Text('Show Dialog'),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
));
|
||||
|
||||
// Open the dialog.
|
||||
await tester.tap(find.byType(RaisedButton));
|
||||
expect(rootObserver.dialogRoutes.length, equals(1));
|
||||
final ModalRoute<dynamic> route = rootObserver.dialogRoutes.last;
|
||||
expect(route.barrierDismissible, isNotNull);
|
||||
expect(route.barrierColor, isNotNull);
|
||||
expect(route.transitionDuration, isNotNull);
|
||||
});
|
||||
|
||||
testWidgets('reverseTransitionDuration defaults to transitionDuration', (WidgetTester tester) async {
|
||||
final GlobalKey containerKey = GlobalKey();
|
||||
|
||||
@ -1598,15 +1633,26 @@ class TestPageRouteBuilder extends PageRouteBuilder<void> {
|
||||
}
|
||||
|
||||
class DialogObserver extends NavigatorObserver {
|
||||
final List<ModalRoute<dynamic>> dialogRoutes = <ModalRoute<dynamic>>[];
|
||||
int dialogCount = 0;
|
||||
|
||||
@override
|
||||
void didPush(Route<dynamic> route, Route<dynamic> previousRoute) {
|
||||
if (route.toString().contains('_DialogRoute')) {
|
||||
dialogRoutes.add(route as ModalRoute<dynamic>);
|
||||
dialogCount++;
|
||||
}
|
||||
super.didPush(route, previousRoute);
|
||||
}
|
||||
|
||||
@override
|
||||
void didPop(Route<dynamic> route, Route<dynamic> previousRoute) {
|
||||
if (route.toString().contains('_DialogRoute')) {
|
||||
dialogRoutes.removeLast();
|
||||
dialogCount--;
|
||||
}
|
||||
super.didPop(route, previousRoute);
|
||||
}
|
||||
}
|
||||
|
||||
class _TestDialogRouteWithCustomBarrierCurve<T> extends PopupRoute<T> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user