1 |
package dk.thoerup.traininfo.provider; |
package dk.thoerup.traininfo.provider; |
2 |
|
|
|
import java.io.BufferedReader; |
|
|
import java.io.IOException; |
|
|
import java.io.InputStream; |
|
|
import java.io.InputStreamReader; |
|
3 |
import java.io.StringReader; |
import java.io.StringReader; |
|
import java.net.URL; |
|
|
import java.net.URLConnection; |
|
4 |
import java.util.ArrayList; |
import java.util.ArrayList; |
5 |
import java.util.List; |
import java.util.List; |
6 |
|
|
15 |
|
|
16 |
import android.util.Log; |
import android.util.Log; |
17 |
import dk.thoerup.traininfo.DepartureBean; |
import dk.thoerup.traininfo.DepartureBean; |
18 |
|
import dk.thoerup.traininfo.util.DownloadUtil; |
19 |
|
|
20 |
public class XmlDepartureProvider extends DefaultHandler implements DepartureProvider { |
public class XmlDepartureProvider extends DefaultHandler implements DepartureProvider { |
21 |
|
|
29 |
public void lookupDepartures(String station) { |
public void lookupDepartures(String station) { |
30 |
departures.clear(); |
departures.clear(); |
31 |
try |
try |
32 |
{ |
{ String url = "http://t-hoerup.dk/tog/xml_display.php?stationname="+station; |
33 |
String doc = getUrlContents("http://t-hoerup.dk/tog/xml_display.php?stationname="+station); |
String doc = DownloadUtil.getContent(url, 30000, "ISO-8859-1"); |
34 |
|
|
35 |
InputSource source = new InputSource( new StringReader(doc)); |
InputSource source = new InputSource( new StringReader(doc)); |
36 |
|
|
51 |
public List<DepartureBean> getDepartures() { |
public List<DepartureBean> getDepartures() { |
52 |
return departures; |
return departures; |
53 |
} |
} |
|
|
|
|
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(); |
|
|
} |
|
54 |
|
|
55 |
// this can be called several times fore the same text-node if there are many chardata / lines |
// this can be called several times fore the same text-node if there are many chardata / lines |
56 |
@Override |
@Override |