didPush method

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

The Navigator pushed route.

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

Implementation

@override
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
  // final name = route?.settings?.name;

  if (route.settings is PathRouteSettings) {
    final settings = route.settings as PathRouteSettings;
    _log.info("#####################################");
    if (settings.label != null) _log.info("Page: ${settings.label}");
    if (settings.route != null) _log.info("Route: ${settings.route}");
    final args = settings.routeParams?.toMap() ?? {};
    if (settings.resolvedPath != null) _log.info("Path: ${settings.resolvedPath}");
    if (args.isNotEmpty) _log.info("Args: ${args.keys.toList()}");
    _log.info("#####################################");
    analytics.logPageView(() => settings.label, route: settings.route, resolvedPath: settings.resolvedPath, params: {
      for (final entry in args.entries) entry.key: analyticsValue(entry.value),
    });
  } else {
    _log.warning("Wanted PathRouteSettings but found ${route.settings.runtimeType} for "
        "${route.settings.name ?? 'unnamed'} route $route.  Will not be logged");
  }
}