4 |
import java.io.File; |
import java.io.File; |
5 |
import java.io.FileInputStream; |
import java.io.FileInputStream; |
6 |
import java.io.FileOutputStream; |
import java.io.FileOutputStream; |
7 |
|
import java.io.IOException; |
8 |
import java.io.ObjectInputStream; |
import java.io.ObjectInputStream; |
9 |
import java.io.ObjectOutputStream; |
import java.io.ObjectOutputStream; |
10 |
|
import java.net.URLEncoder; |
11 |
import java.util.Collections; |
import java.util.Collections; |
12 |
import java.util.Comparator; |
import java.util.Comparator; |
13 |
import java.util.LinkedList; |
import java.util.LinkedList; |
21 |
import dk.thoerup.android.traininfo.common.StationBean; |
import dk.thoerup.android.traininfo.common.StationBean; |
22 |
import dk.thoerup.android.traininfo.common.StationEntry; |
import dk.thoerup.android.traininfo.common.StationEntry; |
23 |
import dk.thoerup.genericjavautils.HttpUtil; |
import dk.thoerup.genericjavautils.HttpUtil; |
24 |
|
import dk.thoerup.traininfo.util.DownloadUtil; |
25 |
import dk.thoerup.traininfo.util.IntSet; |
import dk.thoerup.traininfo.util.IntSet; |
26 |
import dk.thoerup.traininfo.util.XmlUtil; |
import dk.thoerup.traininfo.util.XmlUtil; |
27 |
|
|
85 |
Log.e("OFFLINE", "data size" + data.length); |
Log.e("OFFLINE", "data size" + data.length); |
86 |
|
|
87 |
for (StationEntry entry : stations.entries) { |
for (StationEntry entry : stations.entries) { |
88 |
|
entry.updateSearch(); //prepare name fields for byName search |
89 |
out.writeObject(entry); |
out.writeObject(entry); |
90 |
} |
} |
91 |
|
|
114 |
@Override |
@Override |
115 |
public StationBean lookupStationsByLocation(Location location) { |
public StationBean lookupStationsByLocation(Location location) { |
116 |
|
|
117 |
|
statsByLocation(location); |
118 |
|
|
119 |
long start = System.currentTimeMillis(); |
long start = System.currentTimeMillis(); |
120 |
Location tmpLoc = new Location("GPS"); |
Location tmpLoc = new Location("GPS"); |
121 |
|
|
176 |
|
|
177 |
@Override |
@Override |
178 |
public StationBean lookupStationsByIds(String ids) { |
public StationBean lookupStationsByIds(String ids) { |
179 |
|
statsByIds(ids); |
180 |
|
|
181 |
IntSet idset = new IntSet(); |
IntSet idset = new IntSet(); |
182 |
idset.fromString(ids); |
idset.fromString(ids); |
183 |
|
|
190 |
|
|
191 |
return tmpStations; |
return tmpStations; |
192 |
} |
} |
193 |
|
|
194 |
|
|
195 |
|
private void statsByLocation(Location location) { |
196 |
|
double lat = XmlStationProvider.roundToPlaces(location.getLatitude(), 4); |
197 |
|
double lng = XmlStationProvider.roundToPlaces(location.getLongitude(), 4); |
198 |
|
|
199 |
|
final String url = XmlUtil.SERVICE_BASE + "/LocateStations?latitude=" + lat + "&longitude=" + lng + "&dummy=1"; |
200 |
|
Log.i("url", url); |
201 |
|
urlSender(url); |
202 |
|
} |
203 |
|
|
204 |
|
private void statsByName(String name) { |
205 |
|
|
206 |
|
try { |
207 |
|
name = URLEncoder.encode(name, "ISO8859-1"); |
208 |
|
} catch (Exception e) { |
209 |
|
Log.e("lookupStations", "Encoding failed", e);//if encoding fails use original and hope for the best |
210 |
|
} |
211 |
|
|
212 |
|
String url = XmlUtil.SERVICE_BASE + "/LocateStations?name=" + name + "&dummy=1"; |
213 |
|
Log.i("url", url); |
214 |
|
urlSender(url); |
215 |
|
} |
216 |
|
|
217 |
|
private void statsByIds(String ids) { |
218 |
|
final String url = XmlUtil.SERVICE_BASE + "/LocateStations?list=" + ids + "&dummy=1"; |
219 |
|
Log.i("url", url); |
220 |
|
urlSender(url); |
221 |
|
} |
222 |
|
|
223 |
|
private void urlSender(final String url) { |
224 |
|
Thread t = new Thread(new Runnable() { |
225 |
|
|
226 |
|
@Override |
227 |
|
public void run() { |
228 |
|
try { |
229 |
|
DownloadUtil.getContentString(url, 15000, "ISO-8859-1"); |
230 |
|
} catch (IOException e) { |
231 |
|
Log.e("TrainInfo", "stats failed"); |
232 |
|
} |
233 |
|
} |
234 |
|
}); |
235 |
|
t.start(); |
236 |
|
} |
237 |
|
|
238 |
|
|
239 |
} |
} |