dispose method

void dispose()

Implementation

void dispose() {
  _isDisposed = true;
  if (_installedGlobalNetworkOverride ||
      identical(HttpOverrides.current, networkObserver)) {
    HttpOverrides.global = _previousHttpOverrides;
    _installedGlobalNetworkOverride = false;
  }
  currentRouteName.dispose();
  _navigatorObservers.clear();
  _navigatorActivity.clear();
  for (final entry in _routeTransitionListeners.entries) {
    final animation = entry.key is ModalRoute<dynamic>
        ? (entry.key as ModalRoute<dynamic>).animation
        : null;
    animation?.removeStatusListener(entry.value);
  }
  _routeTransitionListeners.clear();
  _isRouteTransitioning = false;
  _pendingNavigatorRoute = null;
  _hasPendingNavigatorRoute = false;
  _pendingNavigatorPublicationScheduled = false;
  for (final binding in _routeInformationBindings.toList()) {
    binding.dispose();
  }
  _routeInformationBindings.clear();
  _activeRecordingSession = null;
  rebuildTracker?.dispose();
  runtimeObserver?.dispose();
}