diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index d3a79d13..ea958c50 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -104,6 +104,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider private boolean suppressPositions = false; private boolean useRouteIndexAsTripId = true; private boolean useLineRestriction = true; + private float fareCorrectionFactor = 1f; private final XmlPullParserFactory parserFactory; @@ -165,6 +166,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider this.coordEndpoint = coordEndpoint; } + protected void setAdditionalQueryParameter(final String additionalQueryParameter) + { + this.additionalQueryParameter = additionalQueryParameter; + } + protected void setRequestUrlEncoding(final Charset requestUrlEncoding) { this.requestUrlEncoding = requestUrlEncoding; @@ -216,9 +222,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider this.needsSpEncId = needsSpEncId; } - protected void setAdditionalQueryParameter(final String additionalQueryParameter) + protected void setFareCorrectionFactor(final float fareCorrectionFactor) { - this.additionalQueryParameter = additionalQueryParameter; + this.fareCorrectionFactor = fareCorrectionFactor; } protected TimeZone timeZone() @@ -2702,11 +2708,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider 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)); + fares.add(new Fare(net, Type.ADULT, currency, Float.parseFloat(fareAdult) * fareCorrectionFactor, + 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)); + fares.add(new Fare(net, Type.CHILD, currency, Float.parseFloat(fareChild) * fareCorrectionFactor, + levelChild != null ? null : unitName, levelChild != null ? levelChild : unitsChild)); if (!pp.isEmptyElementTag()) { @@ -3090,7 +3096,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider } else if (key.equals("PRICE")) { - fare = Float.parseFloat(value) * (currency.getCurrencyCode().equals("USD") ? 0.01f : 1); + fare = Float.parseFloat(value) * fareCorrectionFactor; } XmlPullUtil.exit(pp, "itdGenericTicket"); diff --git a/enabler/src/de/schildbach/pte/DubProvider.java b/enabler/src/de/schildbach/pte/DubProvider.java index 6b7c302d..0da834b0 100644 --- a/enabler/src/de/schildbach/pte/DubProvider.java +++ b/enabler/src/de/schildbach/pte/DubProvider.java @@ -37,6 +37,7 @@ public class DubProvider extends AbstractEfaProvider super(API_BASE); setUseRouteIndexAsTripId(false); + setFareCorrectionFactor(0.01f); } public NetworkId id() diff --git a/enabler/src/de/schildbach/pte/SfProvider.java b/enabler/src/de/schildbach/pte/SfProvider.java index a0e51373..33715687 100644 --- a/enabler/src/de/schildbach/pte/SfProvider.java +++ b/enabler/src/de/schildbach/pte/SfProvider.java @@ -36,6 +36,7 @@ public class SfProvider extends AbstractEfaProvider super(API_BASE); setUseRouteIndexAsTripId(false); + setFareCorrectionFactor(0.01f); } public NetworkId id()