From 82674cef74af6e754b9ce5b4162a8a3654d0e727 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 23 Jun 2014 21:37:26 +0200 Subject: [PATCH] Parse 'transfer' legs for mobile EFA. --- .../src/de/schildbach/pte/AbstractEfaProvider.java | 10 ++++++++++ enabler/src/de/schildbach/pte/dto/Line.java | 1 + .../schildbach/pte/live/BayernProviderLiveTest.java | 11 +++++++++++ 3 files changed, 22 insertions(+) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index 8e2f0b95..adb6824b 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1796,6 +1796,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider destination = null; line = Line.FOOTWAY; } + else if ("105".equals(ty)) + { + destination = null; + line = Line.TRANSFER; + } else if ("98".equals(ty)) { destination = null; @@ -3045,6 +3050,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider legs.add(new Trip.Individual(Trip.Individual.Type.WALK, departure.location, departure.getDepartureTime(), arrival.location, arrival.getArrivalTime(), path, 0)); } + else if (lineDestination.line == Line.TRANSFER) + { + legs.add(new Trip.Individual(Trip.Individual.Type.TRANSFER, departure.location, departure.getDepartureTime(), + arrival.location, arrival.getArrivalTime(), path, 0)); + } else if (lineDestination.line == Line.SECURE_CONNECTION || lineDestination.line == Line.DO_NOT_CHANGE) { // ignore diff --git a/enabler/src/de/schildbach/pte/dto/Line.java b/enabler/src/de/schildbach/pte/dto/Line.java index 6bd6b599..3a0717fa 100644 --- a/enabler/src/de/schildbach/pte/dto/Line.java +++ b/enabler/src/de/schildbach/pte/dto/Line.java @@ -42,6 +42,7 @@ public final class Line implements Serializable, Comparable private static final String PRODUCT_ORDER = "IRSUTBPFC?"; public static final Line FOOTWAY = new Line(null, null, null); + public static final Line TRANSFER = new Line(null, null, null); public static final Line SECURE_CONNECTION = new Line(null, null, null); public static final Line DO_NOT_CHANGE = new Line(null, null, null); diff --git a/enabler/test/de/schildbach/pte/live/BayernProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/BayernProviderLiveTest.java index 24d58189..3865da35 100644 --- a/enabler/test/de/schildbach/pte/live/BayernProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/BayernProviderLiveTest.java @@ -170,4 +170,15 @@ public class BayernProviderLiveTest extends AbstractProviderLiveTest final QueryTripsResult laterResult = queryMoreTrips(result.context, true); System.out.println(laterResult); } + + @Test + public void tripBetweenPOIs() throws Exception + { + final QueryTripsResult result = queryTrips(new Location(LocationType.POI, null, 47710568, 12621970, null, "Ruhpolding, Seehaus"), null, + new Location(LocationType.POI, null, 47738372, 12630996, null, "Ruhpolding, Unternberg-Bahn"), new Date(), true, Product.ALL, + WalkSpeed.NORMAL, Accessibility.NEUTRAL); + System.out.println(result); + final QueryTripsResult laterResult = queryMoreTrips(result.context, true); + System.out.println(laterResult); + } }