--- android/TrainInfo/src/dk/thoerup/traininfo/provider/OfflineStationProvider.java 2011/07/08 13:10:53 1558 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/OfflineStationProvider.java 2011/07/08 13:58:21 1559 @@ -4,8 +4,10 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.net.URLEncoder; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; @@ -19,6 +21,7 @@ import dk.thoerup.android.traininfo.common.StationBean; import dk.thoerup.android.traininfo.common.StationEntry; import dk.thoerup.genericjavautils.HttpUtil; +import dk.thoerup.traininfo.util.DownloadUtil; import dk.thoerup.traininfo.util.IntSet; import dk.thoerup.traininfo.util.XmlUtil; @@ -111,6 +114,8 @@ @Override public StationBean lookupStationsByLocation(Location location) { + statsByLocation(location); + long start = System.currentTimeMillis(); Location tmpLoc = new Location("GPS"); @@ -171,6 +176,8 @@ @Override public StationBean lookupStationsByIds(String ids) { + statsByIds(ids); + IntSet idset = new IntSet(); idset.fromString(ids); @@ -183,5 +190,50 @@ return tmpStations; } + + + private void statsByLocation(Location location) { + double lat = XmlStationProvider.roundToPlaces(location.getLatitude(), 4); + double lng = XmlStationProvider.roundToPlaces(location.getLongitude(), 4); + + final String url = XmlUtil.SERVICE_BASE + "/LocateStations?latitude=" + lat + "&longitude=" + lng + "&dummy=1"; + Log.i("url", url); + urlSender(url); + } + + private void statsByName(String name) { + + try { + name = URLEncoder.encode(name, "ISO8859-1"); + } catch (Exception e) { + Log.e("lookupStations", "Encoding failed", e);//if encoding fails use original and hope for the best + } + + String url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + name + "&dummy=1"; + Log.i("url", url); + urlSender(url); + } + + private void statsByIds(String ids) { + final String url = XmlUtil.SERVICE_BASE + "/LocateStations?list=" + ids + "&dummy=1"; + Log.i("url", url); + urlSender(url); + } + + private void urlSender(final String url) { + Thread t = new Thread(new Runnable() { + + @Override + public void run() { + try { + DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); + } catch (IOException e) { + Log.e("TrainInfo", "stats failed"); + } + } + }); + t.start(); + } + }