diff --git a/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java b/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java index 852f1021..54537bbc 100644 --- a/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java +++ b/src/de/schildbach/pte/AbstractHafasClientInterfaceProvider.java @@ -109,6 +109,8 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas private static final String SECTION_TYPE_TRANSFER = "TRSF"; private static final String SECTION_TYPE_TELE_TAXI = "TETA"; private static final String SECTION_TYPE_DEVI = "DEVI"; + private static final String SECTION_TYPE_CHECK_IN = "CHKI"; + private static final String SECTION_TYPE_CHECK_OUT = "CHKO"; @SuppressWarnings("deprecation") private static final HashFunction MD5 = Hashing.md5(); private static final BaseEncoding HEX = BaseEncoding.base16().lowerCase(); @@ -747,6 +749,18 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas leg = new Trip.Individual(Trip.Individual.Type.TRANSFER, departureStop.location, departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(), null, distance); + } else if (SECTION_TYPE_CHECK_IN.equals(secType)) { + final JSONObject gis = sec.optJSONObject("gis"); + final int distance = gis != null ? gis.optInt("dist", 0) : 0; + leg = new Trip.Individual(Trip.Individual.Type.CHECK_IN, departureStop.location, + departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(), + null, distance); + } else if (SECTION_TYPE_CHECK_OUT.equals(secType)) { + final JSONObject gis = sec.optJSONObject("gis"); + final int distance = gis != null ? gis.optInt("dist", 0) : 0; + leg = new Trip.Individual(Trip.Individual.Type.CHECK_OUT, departureStop.location, + departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(), + null, distance); } else { throw new IllegalStateException("cannot handle type: " + secType); } diff --git a/src/de/schildbach/pte/dto/Trip.java b/src/de/schildbach/pte/dto/Trip.java index 492efa6b..dc3bac1b 100644 --- a/src/de/schildbach/pte/dto/Trip.java +++ b/src/de/schildbach/pte/dto/Trip.java @@ -457,7 +457,7 @@ public final class Trip implements Serializable { public final static class Individual extends Leg { public enum Type { - WALK, BIKE, CAR, TRANSFER + WALK, BIKE, CAR, TRANSFER, CHECK_IN, CHECK_OUT } private static final long serialVersionUID = -6651381862837233925L;