popRoute method
Called by the Router when the Router.backButtonDispatcher reports that the operating system is requesting that the current route be popped.
The method should return a boolean Future to indicate whether this delegate handles the request. Returning false will cause the entire app to be popped.
Consider using a SynchronousFuture if the result can be computed synchronously, so that the Router does not need to wait for the next microtask to schedule a build.
Implementation
@override
Future<bool> popRoute() async {
if (state.currTab != null) {
final res =
await state.currentTabState?.navigatorKey.currentState?.maybePop();
if (res == true) {
_updateLocation();
return true;
}
}
log.info("Got pop route (but couldn't handle up) (delegating)");
return super.popRoute().then((res) {
if (res) {
state.popRootRoute();
_updateLocation();
}
return res;
});
}