import 'package:aves/services/common/services.dart'; import 'package:flutter/material.dart'; class ReportingRouteTracker extends NavigatorObserver { @override void didPush(Route route, Route? previousRoute) => reportService.log('Nav push to ${_name(route)}'); @override void didPop(Route route, Route? previousRoute) => reportService.log('Nav pop to ${_name(previousRoute)}'); @override void didRemove(Route route, Route? previousRoute) => reportService.log('Nav remove to ${_name(previousRoute)}'); @override void didReplace({Route? newRoute, Route? oldRoute}) => reportService.log('Nav replace to ${_name(newRoute)}'); String _name(Route? route) => route?.settings.name ?? 'unnamed ${route?.runtimeType}'; }