import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/chicken.dart'; import 'package:rasadyar_chicken/data/di/chicken_di.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_inspection/injection/inspection_di.dart'; import 'package:rasadyar_inspection/inspection.dart'; import 'package:rasadyar_livestock/injection/live_stock_di.dart'; import 'package:rasadyar_livestock/presentation/routes/app_pages.dart'; class CustomNavigationObserver extends NavigatorObserver { bool _isWorkDone = false; void setInjectionDone() { _isWorkDone = true; } @override void didPush(Route route, Route? previousRoute) async { final routeName = route.settings.name; if (!_isWorkDone && (routeName == ChickenRoutes.init || routeName == ChickenRoutes.auth)) { _isWorkDone = true; await setupChickenDI(); } else if (!_isWorkDone && (routeName == InspectionRoutes.init || routeName == InspectionRoutes.auth)) { _isWorkDone = true; await setupInspectionDI(); } else if (!_isWorkDone && (routeName == LiveStockRoutes.init || routeName == LiveStockRoutes.auth)) { } super.didPush(route, previousRoute); // tLog('CustomNavigationObserver: didPush - $routeName'); } @override void didReplace({Route? newRoute, Route? oldRoute}) { super.didReplace(newRoute: newRoute, oldRoute: oldRoute); tLog('CustomNavigationObserver: didReplace - ${newRoute?.settings.name}'); } @override void didPop(Route route, Route? previousRoute) { super.didPop(route, previousRoute); // tLog('CustomNavigationObserver: didPop - ${route.settings.name}'); } @override void didRemove(Route route, Route? previousRoute) { super.didRemove(route, previousRoute); // tLog('CustomNavigationObserver: didRemove - ${route.settings.name}'); } }