onScreenChanged method

void onScreenChanged(
  1. String? screenName, {
  2. bool isPop = false,
})

Registers a route transition with optional pop semantics.

Implementation

void onScreenChanged(String? screenName, {bool isPop = false}) {
  if (!_enabled) {return;}
  final isIgnored = screenName == null ||
      screenName == "PerflutterReportScreen" ||
      screenName == "MainRoute" ||
      screenName == "/";

  if (!isPop && isIgnored) {
    return;
  }

  if (isPop && _currentScreen != null && _currentScreen!.screenName == screenName) {
    return;
  }

  if (_currentScreen != null) {
    _currentScreen!.endTime = DateTime.now();
    _currentScreen!.peakMemoryMb = _getProcessMemoryMb();
    history = [...history, _currentScreen!];
    _currentScreen = null;
    notifyListeners();
  }

  if (isIgnored) return;

  journey.add(screenName);

  _currentScreen = ScreenPerformanceData(screenName);
  _currentScreen!.peakMemoryMb = _getProcessMemoryMb();
  notifyListeners();
}