public BusSegmentListAdapter(Context c, List<BusStep> l) {
    context = c;
    SchemeBusStep start = new SchemeBusStep(null);
    start.setStart(true);
    busStepList.add(start);
    for (BusStep busStep : l) {
      if (busStep.getWalk() != null && busStep.getWalk().getDistance() > 0) {
        SchemeBusStep walk = new SchemeBusStep(busStep);
        walk.setWalk(true);
        busStepList.add(walk);
      }

      if (busStep.getBusLine() != null) {
        SchemeBusStep bus = new SchemeBusStep(busStep);
        bus.setBus(true);
        busStepList.add(bus);
      }

      if (busStep.getRailway() != null) {
        SchemeBusStep rail = new SchemeBusStep(busStep);
        rail.setRailway(true);
        busStepList.add(rail);
      }

      if (busStep.getTaxi() != null) {
        SchemeBusStep taxi = new SchemeBusStep(busStep);
        taxi.setTaxi(true);
        busStepList.add(taxi);
      }
    }

    SchemeBusStep end = new SchemeBusStep(null);
    end.setEnd(true);
    busStepList.add(end);
  }