private void convertToDirectionList() { int index = 0; for (Leg leg : legs) { index++; setTotalDistance(getTotalDistance() + leg.distance); TraverseMode traverseMode = TraverseMode.valueOf((String) leg.mode); if (traverseMode.isOnStreetNonTransit()) { Direction dir = generateNonTransitDirections(leg); if (dir == null) { continue; } dir.setDirectionIndex(index); addDirection(dir); } else { ArrayList<Direction> directions = generateTransitDirections(leg); if (directions == null) { continue; } if (directions.get(0) != null) { directions.get(0).setDirectionIndex(index); addDirection(directions.get(0)); } if (directions.get(1) != null) { if (directions.get(0) != null) { index++; } directions.get(1).setDirectionIndex(index); addDirection(directions.get(1)); } } } }