docs: void updateSessionRoute(DirectionsRoute directionsRoute) {
      SessionState.Builder navigationBuilder = navigationSessionState.toBuilder()
        .tripIdentifier(TelemetryUtils.obtainUniversalUniqueIdentifier());
      navigationBuilder.currentDirectionRoute(directionsRoute);
      eventDispatcher.addMetricEventListeners(this);
  
      if (isOffRoute) {
        // If we are off-route, update the reroute count
        navigationBuilder.rerouteCount(navigationSessionState.rerouteCount() + 1);
        boolean hasRouteOptions = directionsRoute.routeOptions() != null;
        navigationBuilder.requestIdentifier(hasRouteOptions ? directionsRoute.routeOptions().requestUuid() : null);
        navigationSessionState = navigationBuilder.build();
        updateLastRerouteEvent(directionsRoute);
        lastRerouteDate = new Date();
        isOffRoute = false;
      } else {
        // Not current off-route - update the session
        navigationSessionState = navigationBuilder.build();
      }
    }