code: public void update(NavigationCameraUpdate update, int durationMs, @Nullable MapboxMap.CancelableCallback callback) {
      animationDelegate.render(update, durationMs, callback);
    }
docs: Animate the camera to a new location defined within {@link CameraUpdate} passed to the
  {@link NavigationCameraUpdate} using a transition animation that evokes powered flight. The animation will
  last a specified amount of time given in milliseconds. A callback can be used to be notified when animating
  the camera stops. During the animation, a call to {@link MapboxMap#getCameraPosition()} returns an intermediate
  location of the camera in flight. If the camera is in a tracking mode,
  this animation is going to be ignored, or break the tracking, based on the {@link CameraUpdateMode}.
  
  @param update     the change that should be applied to the camera.
  @param durationMs the duration of the animation in milliseconds. This must be strictly
  positive, otherwise an IllegalArgumentException will be thrown.
  @param callback   an optional callback to be notified from the main thread when the animation
  stops. If the animation stops due to its natural completion, the callback
  will be notified with onFinish(). If the animation stops due to interruption
  by a later camera movement or a user gesture, onCancel() will be called.
  Do not update or animate the camera from within onCancel(). If a callback
  isn't required, leave it as null.
  @see CameraUpdateMode for how this update interacts with the current tracking