Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
45e12116
Commit
45e12116
authored
Nov 12, 2015
by
Hans Muller
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix Dialog and PopupMenu completion logic
parent
1eb67420
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
16 additions
and
20 deletions
+16
-20
dialog.dart
packages/flutter/lib/src/material/dialog.dart
+1
-7
popup_menu.dart
packages/flutter/lib/src/material/popup_menu.dart
+1
-7
modal_barrier.dart
packages/flutter/lib/src/widgets/modal_barrier.dart
+4
-0
routes.dart
packages/flutter/lib/src/widgets/routes.dart
+3
-5
snack_bar_test.dart
packages/unit/test/widget/snack_bar_test.dart
+7
-1
No files found.
packages/flutter/lib/src/material/dialog.dart
View file @
45e12116
...
...
@@ -116,9 +116,8 @@ class Dialog extends StatelessComponent {
}
class
_DialogRoute
extends
ModalRoute
{
_DialogRoute
({
this
.
completer
,
this
.
child
}
);
_DialogRoute
({
Completer
completer
,
this
.
child
})
:
super
(
completer:
completer
);
final
Completer
completer
;
final
Widget
child
;
bool
get
opaque
=>
false
;
...
...
@@ -132,11 +131,6 @@ class _DialogRoute extends ModalRoute {
child:
child
);
}
void
didPop
([
dynamic
result
])
{
completer
.
complete
(
result
);
super
.
didPop
(
result
);
}
}
Future
showDialog
(
{
BuildContext
context
,
Widget
child
})
{
...
...
packages/flutter/lib/src/material/popup_menu.dart
View file @
45e12116
...
...
@@ -93,9 +93,8 @@ class _PopupMenu extends StatelessComponent {
}
class
_MenuRoute
extends
ModalRoute
{
_MenuRoute
({
this
.
completer
,
this
.
position
,
this
.
items
,
this
.
level
}
);
_MenuRoute
({
Completer
completer
,
this
.
position
,
this
.
items
,
this
.
level
})
:
super
(
completer:
completer
);
final
Completer
completer
;
final
ModalPosition
position
;
final
List
<
PopupMenuItem
>
items
;
final
int
level
;
...
...
@@ -112,11 +111,6 @@ class _MenuRoute extends ModalRoute {
Duration
get
transitionDuration
=>
_kMenuDuration
;
Widget
buildModalWidget
(
BuildContext
context
)
=>
new
_PopupMenu
(
route:
this
);
void
didPop
([
dynamic
result
])
{
completer
.
complete
(
result
);
super
.
didPop
(
result
);
}
}
Future
showMenu
(
{
BuildContext
context
,
ModalPosition
position
,
List
<
PopupMenuItem
>
items
,
int
level:
4
})
{
...
...
packages/flutter/lib/src/widgets/modal_barrier.dart
View file @
45e12116
...
...
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:flutter/animation.dart'
;
import
'basic.dart'
;
...
...
@@ -103,6 +105,8 @@ class ModalPosition {
}
abstract
class
ModalRoute
extends
TransitionRoute
{
ModalRoute
({
Completer
completer
})
:
super
(
completer:
completer
);
ModalPosition
get
position
=>
null
;
Color
get
barrierColor
=>
_kTransparent
;
Widget
buildModalWidget
(
BuildContext
context
);
...
...
packages/flutter/lib/src/widgets/routes.dart
View file @
45e12116
...
...
@@ -78,7 +78,8 @@ abstract class TransitionRoute extends OverlayRoute {
overlayEntries
.
first
.
opaque
=
false
;
break
;
case
PerformanceStatus
.
dismissed
:
super
.
didPop
(
_result
);
super
.
didPop
(
_result
);
// clear the overlays
completer
?.
complete
(
_result
);
break
;
}
}
...
...
@@ -92,10 +93,7 @@ abstract class TransitionRoute extends OverlayRoute {
void
didPop
(
dynamic
result
)
{
_result
=
result
;
if
(
completer
!=
null
)
_performance
.
reverse
().
then
((
_
)
{
completer
.
complete
(
_result
);
});
else
_performance
.
reverse
();
_performance
.
reverse
();
}
String
get
debugLabel
=>
'
$runtimeType
'
;
...
...
packages/unit/test/widget/snack_bar_test.dart
View file @
45e12116
...
...
@@ -40,14 +40,20 @@ void main() {
}
));
// TODO(hansmuller): find a way to avoid calling pump over and over.
// https://github.com/flutter/flutter/issues/348
tester
.
tap
(
tester
.
findElementByKey
(
tapTarget
));
expect
(
tester
.
findText
(
helloSnackBar
),
isNull
);
tester
.
pump
();
tester
.
pump
(
new
Duration
(
seconds:
1
));
tester
.
pump
(
new
Duration
(
seconds:
1
));
expect
(
tester
.
findText
(
helloSnackBar
),
isNotNull
);
Navigator
.
of
(
context
).
pop
();
expect
(
tester
.
findText
(
helloSnackBar
),
isNotNull
);
tester
.
pump
(
new
Duration
(
seconds:
1
));
tester
.
pump
(
new
Duration
(
seconds:
1
));
tester
.
pump
(
new
Duration
(
seconds:
1
));
expect
(
showSnackBarThenCalled
,
isTrue
);
expect
(
tester
.
findText
(
helloSnackBar
),
isNull
);
expect
(
placeholderKey
.
currentState
.
child
,
isNull
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment