diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 5895d278..c521b605 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -81,6 +81,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider private final String accessId; private final Charset jsonEncoding; private final Charset xmlMlcResEncoding; + private boolean dominantPlanStopTime = false; private static class Context implements QueryConnectionsContext { @@ -149,6 +150,11 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider this.xmlMlcResEncoding = ISO_8859_1; } + protected void setDominantPlanStopTime(final boolean dominantPlanStopTime) + { + this.dominantPlanStopTime = dominantPlanStopTime; + } + protected TimeZone timeZone() { return TimeZone.getTimeZone("CET"); @@ -1814,9 +1820,13 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider final Location stopLocation = stations.read(is); - final Stop stop = new Stop(stopLocation, plannedStopArrivalDate, predictedStopArrivalDate, - plannedStopArrivalPosition, predictedStopArrivalPosition, plannedStopDepartureDate, - predictedStopDepartureDate, plannedStopDeparturePosition, predictedStopDeparturePosition); + final boolean validPredictedDate = !dominantPlanStopTime + || (plannedStopArrivalDate != null && plannedStopDepartureDate != null); + + final Stop stop = new Stop(stopLocation, plannedStopArrivalDate, + validPredictedDate ? predictedStopArrivalDate : null, plannedStopArrivalPosition, + predictedStopArrivalPosition, plannedStopDepartureDate, validPredictedDate ? predictedStopDepartureDate + : null, plannedStopDeparturePosition, predictedStopDeparturePosition); intermediateStops.add(stop); } diff --git a/enabler/src/de/schildbach/pte/OebbProvider.java b/enabler/src/de/schildbach/pte/OebbProvider.java index 6d3d2b75..2b119ed1 100644 --- a/enabler/src/de/schildbach/pte/OebbProvider.java +++ b/enabler/src/de/schildbach/pte/OebbProvider.java @@ -41,6 +41,8 @@ public class OebbProvider extends AbstractHafasProvider public OebbProvider() { super(API_BASE + "query.exe/dn", 13, null); + + setDominantPlanStopTime(true); } public NetworkId id()