Files
rasadyar_application/lib/infrastructure/service/app_navigation_observer.dart
2025-08-03 11:55:57 +03:30

55 lines
1.9 KiB
Dart

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 {
super.didPush(route, previousRoute);
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)) {
_isWorkDone = true;
await setupLiveStockDI();
}
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}');
}
}