didPop method

  1. @override
void didPop(
  1. Route route,
  2. Route? previousRoute
)
override

The Navigator popped route.

The route immediately below that one, and thus the newly active route, is previousRoute.

Implementation

@override
void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {
  if (route.settings is AutoRoutePage &&
      previousRoute?.settings is AutoRoutePage) {
    final previousKey = (previousRoute!.settings as AutoRoutePage).routeKey;
    final List<AutoRouteAware>? previousSubscribers =
        _listeners[previousKey]?.toList();

    if (previousSubscribers != null) {
      for (final AutoRouteAware routeAware in previousSubscribers) {
        routeAware.didPopNext();
      }
    }
    final key = (route.settings as AutoRoutePage).routeKey;

    final List<AutoRouteAware>? subscribers = _listeners[key]?.toList();

    if (subscribers != null) {
      for (final AutoRouteAware routeAware in subscribers) {
        routeAware.didPop();
      }
    }
  }
}