diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 6380ff27..3e8eb85f 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -913,7 +913,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider return 'R' + name; if ("CAPITOL".equals(name)) // San Francisco return 'R' + name; - if ("Train".equals(noTrainName)) // San Francisco + if ("Train".equals(noTrainName) || "Train".equals(type)) // San Francisco return "R" + name; if ("Regional Train :".equals(longName)) return "R"; @@ -1271,7 +1271,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+"); - protected static String normalizeLocationName(final String name) + protected String normalizeLocationName(final String name) { if (name == null || name.length() == 0) return null; diff --git a/src/de/schildbach/pte/SfProvider.java b/src/de/schildbach/pte/SfProvider.java index f0ba9251..041ac2d0 100644 --- a/src/de/schildbach/pte/SfProvider.java +++ b/src/de/schildbach/pte/SfProvider.java @@ -49,7 +49,7 @@ public class SfProvider extends AbstractEfaProvider return TimeZone.getTimeZone("America/Los_Angeles"); } - public boolean hasCapabilities(Capability... capabilities) + public boolean hasCapabilities(final Capability... capabilities) { for (final Capability capability : capabilities) if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) @@ -59,7 +59,16 @@ public class SfProvider extends AbstractEfaProvider } @Override - protected String parseLine(String mot, String name, String longName, String noTrainName) + protected String normalizeLocationName(final String name) + { + if (name == null || name.length() == 0) + return null; + + return super.normalizeLocationName(name).replace("$XINT$", "&"); + } + + @Override + protected String parseLine(final String mot, final String name, final String longName, final String noTrainName) { if ("NORTHBOUND".equals(name)) return "?" + name;