class DynamicCamera extends SimpleCamera {

  @Override
  public double zoom(RouteInformation routeInformation) {
    if (isShutdown) {
      return DEFAULT_ZOOM;
    }

    if (validLocationAndProgress(routeInformation) && shouldUpdateZoom(routeInformation)) {
      return createZoom(routeInformation);
    } else if (routeInformation.route() != null) {
      return super.zoom(routeInformation);
    }
    return mapboxMap.getCameraPosition().zoom;
  }

  public  DynamicCamera(@NonNull MapboxMap mapboxMap);

}