Hafas: If there are predicted times for individual legs, use them.

This commit is contained in:
Andreas Schildbach 2015-02-11 18:57:22 +01:00
parent b8678a3fae
commit f48c0ef60e

View file

@ -1947,17 +1947,19 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
else else
throw new IllegalStateException("unknown routingType: " + routingType); throw new IllegalStateException("unknown routingType: " + routingType);
final Date departureTime = new Date(predictedDepartureTime != 0 ? predictedDepartureTime : plannedDepartureTime);
final Date arrivalTime = new Date(predictedArrivalTime != 0 ? predictedArrivalTime : plannedArrivalTime);
final Trip.Leg lastLeg = legs.size() > 0 ? legs.get(legs.size() - 1) : null; final Trip.Leg lastLeg = legs.size() > 0 ? legs.get(legs.size() - 1) : null;
if (lastLeg != null && lastLeg instanceof Trip.Individual && ((Trip.Individual) lastLeg).type == individualType) if (lastLeg != null && lastLeg instanceof Trip.Individual && ((Trip.Individual) lastLeg).type == individualType)
{ {
final Trip.Individual lastIndividualLeg = (Trip.Individual) legs.remove(legs.size() - 1); final Trip.Individual lastIndividualLeg = (Trip.Individual) legs.remove(legs.size() - 1);
leg = new Trip.Individual(individualType, lastIndividualLeg.departure, lastIndividualLeg.departureTime, leg = new Trip.Individual(individualType, lastIndividualLeg.departure, lastIndividualLeg.departureTime,
arrivalLocation, new Date(plannedArrivalTime), null, 0); arrivalLocation, arrivalTime, null, 0);
} }
else else
{ {
leg = new Trip.Individual(individualType, departureLocation, new Date(plannedDepartureTime), arrivalLocation, leg = new Trip.Individual(individualType, departureLocation, departureTime, arrivalLocation, arrivalTime, null, 0);
new Date(plannedArrivalTime), null, 0);
} }
} }
else if (type == 2) else if (type == 2)