--- android/TrainInfo/src/dk/thoerup/traininfo/provider/OfflineStationProvider.java 2011/07/08 11:56:58 1553 +++ android/TrainInfo/src/dk/thoerup/traininfo/provider/OfflineStationProvider.java 2012/03/07 11:34:56 1717 @@ -1,11 +1,12 @@ package dk.thoerup.traininfo.provider; -import java.io.EOFException; 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 +20,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; @@ -26,11 +28,17 @@ StationBean stations = new StationBean(); + boolean statsByNameSend = false; + + public boolean hasStations() { + return (stations != null && stations.entries.size() > 0); + } + public boolean loadStations(Context context) throws Exception { long start = System.currentTimeMillis(); - stations.entries.clear(); //TODO: remove + StationBean tmpStations = new StationBean(); File parent = context.getFilesDir(); File stationsFile = new File(parent, "stations.bin"); @@ -48,44 +56,61 @@ stations = serializer.read(StationBean.class, new String(data, "ISO-8859-1") );*/ - try { - ObjectInputStream in = new ObjectInputStream( new FileInputStream(stationsFile) ); - Object o; - StationEntry e = null; - while ( (o=in.readObject()) != null ) { - e = (StationEntry) o; - e.updateSearch(); - stations.entries.add( e ); - } - in.close(); - } catch (EOFException e) { - //do nothing; + + ObjectInputStream in = new ObjectInputStream( new FileInputStream(stationsFile) ); + + int length = in.readInt(); // first field is the length + + for (int i=0; i