libandroid-navigation/src/main/java/com/mapbox/services/android/navigation/v5/navigation/NavigationEngine.java
private List<Point> decodeStepPoints(DirectionsRoute directionsRoute, int legIndex, int stepIndex) {
    // Check for valid legs
    List<RouteLeg> legs = directionsRoute.legs();
    if (legs == null || legs.isEmpty()) {
      return stepPoints;
    }
    // Check for valid steps
    List<LegStep> steps = legs.get(legIndex).steps();
    if (steps == null || steps.isEmpty()) {
      return stepPoints;
    }

    String stepGeometry = steps.get(stepIndex).geometry();
    if (stepGeometry != null) {
      return PolylineUtils.decode(stepGeometry, PRECISION_6);
    }
    return stepPoints;
  }
/**
   * Given the current {@link DirectionsRoute} and leg / step index,
   * return a list of {@link Point} representing the current step.
   * <p>
   * This method is only used on a per-step basis as {@link PolylineUtils#decode(String, int)}
   * can be a heavy operation based on the length of the step.
   *
   * @param directionsRoute for list of steps
   * @param legIndex        to get current step list
   * @param stepIndex       to get current step
   * @return list of {@link Point} representing the current step
   */
Given the current  DirectionsRoute and leg / step index,
return a list of  Point representing the current step.

This method is only used on a per-step basis as  PolylineUtils#decode(String, int)
can be a heavy operation based on the length of the step.

@param directionsRoute for list of steps
@param legIndex        to get current step list
@param stepIndex       to get current step
@return list of  Point representing the current step
Given the current DirectionsRoute and leg / step index return a list of Point representing the current step . This method is only used on a per - step basis as PolylineUtils#decode ( String int ) can be a heavy operation based on the length of the step . @param directionsRoute for list of steps @param legIndex to get current step list @param stepIndex to get current step @return list of Point representing the current step
private List<Point> decodeStepPoints(DirectionsRoute directionsRoute, int legIndex, int stepIndex) {
    List<RouteLeg> legs = directionsRoute.legs();
    if (legs == null || legs.isEmpty()) {
      return stepPoints;
    }
    List<LegStep> steps = legs.get(legIndex).steps();
    if (steps == null || steps.isEmpty()) {
      return stepPoints;
    }
    String stepGeometry = steps.get(stepIndex).geometry();
    if (stepGeometry != null) {
      return PolylineUtils.decode(stepGeometry, PRECISION_6);
    }
    return stepPoints;
  }
private List < Point > decodeStepPoints ( DirectionsRoute directionsRoute , int legIndex , int stepIndex ) { List < RouteLeg > legs = directionsRoute . legs ( ) ; if ( legs == null || legs . isEmpty ( ) ) { return stepPoints ; } List < LegStep > steps = legs . get ( legIndex ) . steps ( ) ; if ( steps == null || steps . isEmpty ( ) ) { return stepPoints ; } String stepGeometry = steps . get ( stepIndex ) . geometry ( ) ; if ( stepGeometry != null ) { return PolylineUtils . decode ( stepGeometry , PRECISION_6 ) ; } return stepPoints ; }
Given the current {@link DirectionsRoute} and leg / step index,
 return a list of {@link Point} representing the current step.
Given the current { @link DirectionsRoute } and leg / step index return a list of { @link Point } representing the current step .
// Check for valid legs // Check for valid steps