From 9dd41526dd2f4d56b6148e060eb3d58bc4beae01 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Fri, 28 Jun 2013 21:20:04 +0200 Subject: [PATCH] most efa fare related attributes are optional --- .../schildbach/pte/AbstractEfaProvider.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index bb0862db..f990c4dc 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -2690,21 +2690,19 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { final String net = XmlPullUtil.attr(pp, "net"); final Currency currency = parseCurrency(XmlPullUtil.attr(pp, "currency")); - final String fareAdult = XmlPullUtil.attr(pp, "fareAdult"); - final String fareChild = XmlPullUtil.attr(pp, "fareChild"); - final String unitName = XmlPullUtil.attr(pp, "unitName"); - final String unitsAdult = XmlPullUtil.attr(pp, "unitsAdult"); - final String unitsChild = XmlPullUtil.attr(pp, "unitsChild"); - final String levelAdult = pp.getAttributeValue(null, "levelAdult"); - final boolean hasLevelAdult = levelAdult != null && levelAdult.length() > 0; - final String levelChild = pp.getAttributeValue(null, "levelChild"); - final boolean hasLevelChild = levelChild != null && levelChild.length() > 0; - if (fareAdult != null && fareAdult.length() > 0) - fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult), hasLevelAdult ? null : unitName, - hasLevelAdult ? levelAdult : unitsAdult)); - if (fareChild != null && fareChild.length() > 0) - fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild), hasLevelChild ? null : unitName, - hasLevelChild ? levelChild : unitsChild)); + final String fareAdult = XmlPullUtil.optAttr(pp, "fareAdult", null); + final String fareChild = XmlPullUtil.optAttr(pp, "fareChild", null); + final String unitName = XmlPullUtil.optAttr(pp, "unitName", null); + final String unitsAdult = XmlPullUtil.optAttr(pp, "unitsAdult", null); + final String unitsChild = XmlPullUtil.optAttr(pp, "unitsChild", null); + final String levelAdult = XmlPullUtil.optAttr(pp, "levelAdult", null); + final String levelChild = XmlPullUtil.optAttr(pp, "levelChild", null); + if (fareAdult != null) + fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult), levelAdult != null ? null : unitName, + levelAdult != null ? levelAdult : unitsAdult)); + if (fareChild != null) + fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild), levelChild != null ? null : unitName, + levelChild != null ? levelChild : unitsChild)); if (!pp.isEmptyElementTag()) {