Move default back behavior to FlutterWidgetBinding
Previously MaterialApp was responsible for ending the activity when the back stack was empty. However, this behavior is more general than material. This patch moves the behavior to FlutterWidgetBinding, which has a global view of all the binding observers. Fixes #1086
This commit is contained in:
parent
19fb068d83
commit
e3d587ea52
@ -86,11 +86,11 @@ class _MaterialAppState extends State<MaterialApp> implements BindingObserver {
|
||||
assert(mounted);
|
||||
NavigatorState navigator = _navigator.currentState;
|
||||
assert(navigator != null);
|
||||
bool result = false;
|
||||
navigator.openTransaction((NavigatorTransaction transaction) {
|
||||
if (!transaction.pop())
|
||||
activity.finishCurrentActivity();
|
||||
result = transaction.pop();
|
||||
});
|
||||
return true;
|
||||
return result;
|
||||
}
|
||||
|
||||
void didChangeSize(Size size) => setState(() { _size = size; });
|
||||
|
@ -77,8 +77,9 @@ class WidgetFlutterBinding extends BindingBase with Scheduler, Gesturer, Rendere
|
||||
void handlePopRoute() {
|
||||
for (BindingObserver observer in _observers) {
|
||||
if (observer.didPopRoute())
|
||||
break;
|
||||
return;
|
||||
}
|
||||
activity.finishCurrentActivity();
|
||||
}
|
||||
|
||||
void handleAppLifecycleStateChanged(ui.AppLifecycleState state) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user