Fixed requery intervals. Updated no results text. Updated handling for SPCL trains.

This commit is contained in:
dkeen 2011-06-06 08:42:11 -07:00
parent ca8f07b30a
commit 114dd4c6f4
4 changed files with 7 additions and 41 deletions

View File

@ -3,8 +3,7 @@
<string name="app_name">BART Catcher</string>
<string name="favorite_routes">Favorite Routes</string>
<string name="empty_favorites_list_message">Press the menu button and select \"Add route\" to
add
a route</string>
add a route</string>
<string name="add_route">Add a route</string>
<string name="origin">Origin</string>
<string name="destination">Destination</string>
@ -16,7 +15,8 @@
<string name="departure_wait_message">Please wait while real time departure data is
loaded...</string>
<string name="no_data_message">No departure data is currently available for this
route. Note that there may be service advisories posted at
route. Note that this route may require a non-standard transfer due to
a temporary change in service. Check for service advisories posted at
http://m.bart.gov/schedules/advisories/</string>
<string name="view">View</string>
<string name="view_departures">View departures</string>

View File

@ -36,8 +36,6 @@ public class EtdContentHandler extends DefaultHandler {
private Departure currentDeparture;
private boolean isParsingTag;
private boolean getDestinationFromLine;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
@ -54,14 +52,10 @@ public class EtdContentHandler extends DefaultHandler {
}
if (localName.equals("estimate")) {
currentDeparture = new Departure();
if (currentDestination.equalsIgnoreCase("SPCL")) {
getDestinationFromLine = true;
} else {
currentDeparture.setDestination(Station
.getByAbbreviation(currentDestination));
}
}
}
@Override
public void endElement(String uri, String localName, String qName)
@ -86,14 +80,7 @@ public class EtdContentHandler extends DefaultHandler {
currentDeparture.setTrainLength(Integer.parseInt(currentValue));
} else if (localName.equals("color")) {
try {
if (getDestinationFromLine) {
final Line line = Line.valueOf(currentValue);
currentDeparture.setLine(line);
currentDeparture.setDestination(line
.getUsualTerminusForDirectionAndOrigin(
currentDeparture.getDirection(),
realTimeDepartures.getOrigin()));
} else if (currentValue.equalsIgnoreCase("WHITE")) {
if (currentValue.equalsIgnoreCase("WHITE")) {
for (Line line : Line.values()) {
if (line.stations.indexOf(currentDeparture
.getDestination()) >= 0
@ -118,7 +105,6 @@ public class EtdContentHandler extends DefaultHandler {
} else if (localName.equals("estimate")) {
realTimeDepartures.addDeparture(currentDeparture);
currentDeparture = null;
getDestinationFromLine = false;
} else if (localName.equals("etd")) {
currentDestination = null;
} else if (localName.equals("station")) {

View File

@ -92,22 +92,4 @@ public enum Line {
return destinations;
}
public Station getUsualTerminusForDirectionAndOrigin(String direction,
Station origin) {
boolean isNorth = false;
if (direction.toLowerCase().startsWith("s") && directionMayInvert
&& origin.invertDirection) {
isNorth = true;
} else if (direction.toLowerCase().startsWith("n")
&& !(directionMayInvert && origin.invertDirection)) {
isNorth = true;
}
if (isNorth) {
return stations.get(stations.size() - 1);
} else {
return stations.get(0);
}
}
}

View File

@ -244,10 +244,8 @@ public class ViewDeparturesActivity extends ListActivity {
} else {
// Get more 90 seconds before next train arrives, right when
// next train arrives, or 3 minutes, whichever is sooner
final long now = System.currentTimeMillis();
final long nextDepartureMillis = firstDeparture
.getMinSecondsLeft() * 1000L;
final int intervalUntilNextDeparture = (int) (nextDepartureMillis - now);
final int intervalUntilNextDeparture = firstDeparture
.getMinSecondsLeft() * 1000;
final int alternativeInterval = 3 * 60 * 1000;
int interval = intervalUntilNextDeparture;