--- android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java 2009/08/08 19:02:20 237 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/XmlDepartureProvider.java 2009/09/10 19:09:09 310 @@ -1,12 +1,6 @@ package dk.thoerup.traininfo.provider; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; import java.io.StringReader; -import java.net.URL; -import java.net.URLConnection; import java.util.ArrayList; import java.util.List; @@ -21,6 +15,7 @@ import android.util.Log; import dk.thoerup.traininfo.DepartureBean; +import dk.thoerup.traininfo.util.DownloadUtil; public class XmlDepartureProvider extends DefaultHandler implements DepartureProvider { @@ -31,11 +26,14 @@ StringBuilder builder = new StringBuilder(512); @Override - public void lookupDepartures(String station) { + public void lookupDepartures(int stationID) { departures.clear(); try { - String doc = getUrlContents("http://t-hoerup.dk/tog/xml_display.php?stationname="+station); + //String url = "http://t-hoerup.dk/tog/xml_display.php?stationcode="+stationCode; + String url = "http://app.t-hoerup.dk/TrainInfoService/DepartureServlet?format=xml&station=" + stationID; + Log.i("xmlurl",url); + String doc = DownloadUtil.getContentString(url, 45000, "ISO-8859-1"); InputSource source = new InputSource( new StringReader(doc)); @@ -56,26 +54,6 @@ public List getDepartures() { return departures; } - - private String getUrlContents(String uri) throws IOException - { - URL url = new URL(uri); - URLConnection conn = url.openConnection(); - conn.setConnectTimeout(5000); - InputStream stream = conn.getInputStream(); - - BufferedReader in = new BufferedReader(new InputStreamReader(stream, "ISO-8859-1"),8192); - - StringBuilder sbuilder = new StringBuilder(); - - String line; - while ( (line = in.readLine()) != null) { - sbuilder.append(line); - sbuilder.append("\r\n"); - } - - return sbuilder.toString(); - } // this can be called several times fore the same text-node if there are many chardata / lines @Override @@ -100,21 +78,21 @@ if (name.equals("train")) { departures.add( tempDeparture ); } else if (name.equals("time")) { - tempDeparture.setTime(builder.toString()); + tempDeparture.setTime(builder.toString().trim()); } else if (name.equals("updated")) { - tempDeparture.setLastUpdate(builder.toString()); + tempDeparture.setLastUpdate(builder.toString().trim()); } else if (name.equals("trainnumber")) { - tempDeparture.setTrainNumber(builder.toString()); + tempDeparture.setTrainNumber(builder.toString().trim()); } else if (name.equals("destination")) { - tempDeparture.setDestination(builder.toString()); + tempDeparture.setDestination(builder.toString().trim()); } else if (name.equals("origin")) { - tempDeparture.setOrigin(builder.toString()); + tempDeparture.setOrigin(builder.toString().trim()); } else if (name.equals("location")) { - tempDeparture.setLocation(builder.toString()); + tempDeparture.setLocation(builder.toString().trim()); } else if (name.equals("status")) { - tempDeparture.setStatus(builder.toString()); + tempDeparture.setStatus(builder.toString().trim()); } else if (name.equals("note")) { - tempDeparture.setNote(builder.toString()); + tempDeparture.setNote(builder.toString().trim()); } } }