diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 0ea74150..06c7fd22 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -250,8 +250,7 @@ public final class BahnProvider implements NetworkProvider Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2))); if (!connections.isEmpty()) { - final long diff = ParserUtils.timeDiff(departureTime, - ((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime); + final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime); if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS) departureTime = ParserUtils.addDays(departureTime, -1); else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS) @@ -265,9 +264,8 @@ public final class BahnProvider implements NetworkProvider line = normalizeLine(line); else line = null; - final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to, - new ArrayList(1)); - connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line.charAt(0)) : null)); + final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line, + line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null); connections.add(connection); } else @@ -394,8 +392,8 @@ public final class BahnProvider implements NetworkProvider if (firstDepartureTime == null || lastArrivalTime == null) throw new IllegalStateException("could not parse all parts of:\n" + page + "\n" + parts); - return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, 0, - firstDeparture, 0, lastArrival, parts)); + return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, + null, null, 0, firstDeparture, 0, lastArrival, parts)); } else { diff --git a/src/de/schildbach/pte/Connection.java b/src/de/schildbach/pte/Connection.java index f7780287..f8091977 100644 --- a/src/de/schildbach/pte/Connection.java +++ b/src/de/schildbach/pte/Connection.java @@ -30,21 +30,25 @@ public final class Connection implements Serializable final public String link; final public Date departureTime; final public Date arrivalTime; + final public String line; + final public int[] lineColors; final public int fromId; final public String from; final public int toId; final public String to; final public List parts; - public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final int fromId, final String from, - final int toId, final String to, final List parts) + public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final String line, + final int[] lineColors, final int fromId, final String from, final int toId, final String to, final List parts) { this.id = id; this.link = link; this.departureTime = departureTime; + this.arrivalTime = arrivalTime; + this.line = line; + this.lineColors = lineColors; this.fromId = fromId; this.from = from; - this.arrivalTime = arrivalTime; this.toId = toId; this.to = to; this.parts = parts; diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index 0b0ff7fb..00d42804 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -289,8 +289,7 @@ public class MvvProvider implements NetworkProvider Date departureTime = ParserUtils.joinDateTime(date, ParserUtils.parseTime(mConFine.group(4))); if (!connections.isEmpty()) { - final long diff = ParserUtils.timeDiff(departureTime, ((Connection.Trip) connections.get(connections.size() - 1).parts - .get(0)).departureTime); + final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime); if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS) departureTime = ParserUtils.addDays(departureTime, -1); else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS) @@ -299,9 +298,8 @@ public class MvvProvider implements NetworkProvider Date arrivalTime = ParserUtils.joinDateTime(date, ParserUtils.parseTime(mConFine.group(5))); if (departureTime.after(arrivalTime)) arrivalTime = ParserUtils.addDays(arrivalTime, 1); - final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to, - new ArrayList(1)); - connection.parts.add(new Connection.Trip(departureTime, arrivalTime, null, null)); + final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, null, null, 0, + from, 0, to, null); connections.add(connection); } else @@ -311,9 +309,8 @@ public class MvvProvider implements NetworkProvider final Date departureTime = calendar.getTime(); calendar.add(Calendar.MINUTE, min); final Date arrivalTime = calendar.getTime(); - final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to, - new ArrayList(1)); - connection.parts.add(new Connection.Footway(min, from, to)); + final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, null, null, 0, + from, 0, to, null); connections.add(connection); } } @@ -448,8 +445,8 @@ public class MvvProvider implements NetworkProvider lastArrivalTime = calendar.getTime(); } - return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, 0, - firstDeparture, 0, lastArrival, parts)); + return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, + null, null, 0, firstDeparture, 0, lastArrival, parts)); } else { diff --git a/src/de/schildbach/pte/RmvProvider.java b/src/de/schildbach/pte/RmvProvider.java index d44a4e29..16ac2727 100644 --- a/src/de/schildbach/pte/RmvProvider.java +++ b/src/de/schildbach/pte/RmvProvider.java @@ -249,8 +249,7 @@ public class RmvProvider implements NetworkProvider Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2))); if (!connections.isEmpty()) { - final long diff = ParserUtils.timeDiff(departureTime, - ((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime); + final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime); if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS) departureTime = ParserUtils.addDays(departureTime, -1); else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS) @@ -264,9 +263,8 @@ public class RmvProvider implements NetworkProvider line = normalizeLine(line); else line = null; - final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to, - new ArrayList(1)); - connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line.charAt(0)) : null)); + final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line, + line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null); connections.add(connection); } else @@ -382,7 +380,7 @@ public class RmvProvider implements NetworkProvider } return new GetConnectionDetailsResult(currentDate, new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, - 0, firstDeparture, 0, lastArrival, parts)); + null, null, 0, firstDeparture, 0, lastArrival, parts)); } else { diff --git a/src/de/schildbach/pte/SbbProvider.java b/src/de/schildbach/pte/SbbProvider.java index 2a246749..a70b41d6 100644 --- a/src/de/schildbach/pte/SbbProvider.java +++ b/src/de/schildbach/pte/SbbProvider.java @@ -234,7 +234,7 @@ public class SbbProvider implements NetworkProvider .parseTime(mConFine.group(5))); final String link = uri + "#" + id; // TODO use print link? - final Connection connection = new Connection(id, link, departureTime, arrivalTime, 0, from, 0, to, + final Connection connection = new Connection(id, link, departureTime, arrivalTime, null, null, 0, from, 0, to, new ArrayList(1)); connections.add(connection); } @@ -437,6 +437,8 @@ public class SbbProvider implements NetworkProvider else strippedLine = line; + if (type.equals("ec")) // EuroCity + return "I" + strippedLine; if (type.equals("ice")) // InterCityExpress return "I" + strippedLine; if (type.equals("ic")) // InterCity diff --git a/src/de/schildbach/pte/VbbProvider.java b/src/de/schildbach/pte/VbbProvider.java index 251777ef..89d342c3 100644 --- a/src/de/schildbach/pte/VbbProvider.java +++ b/src/de/schildbach/pte/VbbProvider.java @@ -260,8 +260,7 @@ public final class VbbProvider implements NetworkProvider Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2))); if (!connections.isEmpty()) { - final long diff = ParserUtils.timeDiff(departureTime, - ((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime); + final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime); if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS) departureTime = ParserUtils.addDays(departureTime, -1); else if (diff < -PARSER_DAY_ROLLDOWN_THRESHOLD_MS) @@ -271,9 +270,8 @@ public final class VbbProvider implements NetworkProvider if (departureTime.after(arrivalTime)) arrivalTime = ParserUtils.addDays(arrivalTime, 1); final String line = normalizeLine(ParserUtils.resolveEntities(mConFine.group(4))); - final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to, - new ArrayList(1)); - connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line) : null)); + final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line, + line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null); connections.add(connection); } else @@ -412,7 +410,7 @@ public final class VbbProvider implements NetworkProvider if (firstDepartureTime != null && lastArrivalTime != null) return new GetConnectionDetailsResult(currentDate, new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, - lastArrivalTime, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts)); + lastArrivalTime, null, null, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts)); else return new GetConnectionDetailsResult(currentDate, null); }