49 lines
1.6 KiB
Dart
49 lines
1.6 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';
|
|
|
|
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();
|
|
}
|
|
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}');
|
|
}
|
|
}
|