AbstractHafasMobileProvider: Parse ticket lists in trip fares.

This commit is contained in:
Andreas Schildbach 2017-01-26 11:54:47 +01:00
parent 6fe713bbc6
commit 23d3e1f324

View file

@ -511,12 +511,26 @@ public abstract class AbstractHafasMobileProvider extends AbstractHafasProvider
for (int iFare = 0; iFare < fareList.length(); iFare++) { for (int iFare = 0; iFare < fareList.length(); iFare++) {
final JSONObject jsonFare = fareList.getJSONObject(iFare); final JSONObject jsonFare = fareList.getJSONObject(iFare);
final String name = jsonFare.getString("name"); final String name = jsonFare.getString("name");
final Currency currency = Currency.getInstance(jsonFare.getString("cur")); final JSONArray ticketList = jsonFare.getJSONArray("ticketL");
final float price = jsonFare.getInt("prc") / 100f; if (ticketList != null) {
final Fare fare = parseJsonTripFare(fareSetName, fareSetDescription, name, currency, for (int iTicket = 0; iTicket < ticketList.length(); iTicket++) {
price); final JSONObject jsonTicket = ticketList.getJSONObject(iTicket);
if (fare != null) final String ticketName = jsonTicket.getString("name");
fares.add(fare); final Currency currency = Currency.getInstance(jsonTicket.getString("cur"));
final float price = jsonTicket.getInt("prc") / 100f;
final Fare fare = parseJsonTripFare(name, fareSetDescription, ticketName,
currency, price);
if (fare != null)
fares.add(fare);
}
} else {
final Currency currency = Currency.getInstance(jsonFare.getString("cur"));
final float price = jsonFare.getInt("prc") / 100f;
final Fare fare = parseJsonTripFare(fareSetName, fareSetDescription, name, currency,
price);
if (fare != null)
fares.add(fare);
}
} }
} }
} }