Fix issue 754. Name filter

This commit is contained in:
Victor Shcherb 2012-04-21 01:41:36 +02:00
parent a261f9447c
commit c7bb033d81
3 changed files with 19 additions and 2 deletions

View file

@ -6,6 +6,7 @@ import java.util.Stack;
import net.osmand.Algoritms; import net.osmand.Algoritms;
import net.osmand.LogUtil; import net.osmand.LogUtil;
import net.osmand.OsmAndFormatter;
import net.osmand.ResultMatcher; import net.osmand.ResultMatcher;
import net.osmand.data.Amenity; import net.osmand.data.Amenity;
import net.osmand.data.MapTileDownloader.DownloadRequest; import net.osmand.data.MapTileDownloader.DownloadRequest;
@ -237,12 +238,27 @@ public class AsyncLoadingThread extends Thread {
private final List<AmenityIndexRepository> res; private final List<AmenityIndexRepository> res;
private final PoiFilter filter; private final PoiFilter filter;
private final int zoom; private final int zoom;
private String filterByName;
public AmenityLoadRequest(List<AmenityIndexRepository> repos, int zoom, PoiFilter filter) { public AmenityLoadRequest(List<AmenityIndexRepository> repos, int zoom, PoiFilter filter, String nameFilter) {
super(); super();
this.res = repos; this.res = repos;
this.zoom = zoom; this.zoom = zoom;
this.filter = filter; this.filter = filter;
this.filterByName = nameFilter;
if(this.filterByName != null) {
this.filterByName = this.filterByName.toLowerCase().trim();
}
}
@Override
public boolean publish(Amenity object) {
if(filterByName == null || filterByName.length() == 0) {
return true;
} else {
String lower = OsmAndFormatter.getPoiStringWithoutType(object, OsmandApplication.getSettings().usingEnglishNames()).toLowerCase();
return lower.indexOf(filterByName) != -1;
}
} }
public Runnable prepareToRun() { public Runnable prepareToRun() {

View file

@ -130,6 +130,7 @@ public class OsmandApplication extends Application {
return osmandSettings; return osmandSettings;
} }
public PoiFiltersHelper getPoiFilters() { public PoiFiltersHelper getPoiFilters() {
if (poiFilters == null) { if (poiFilters == null) {
poiFilters = new PoiFiltersHelper(this); poiFilters = new PoiFiltersHelper(this);

View file

@ -664,7 +664,7 @@ public class ResourceManager {
} }
} }
if(!repos.isEmpty()){ if(!repos.isEmpty()){
AmenityLoadRequest req = asyncLoadingThread.new AmenityLoadRequest(repos, zoom, filter); AmenityLoadRequest req = asyncLoadingThread.new AmenityLoadRequest(repos, zoom, filter, filter.getFilterByName());
req.setBoundaries(topLatitude, leftLongitude, bottomLatitude, rightLongitude); req.setBoundaries(topLatitude, leftLongitude, bottomLatitude, rightLongitude);
asyncLoadingThread.requestToLoadAmenities(req); asyncLoadingThread.requestToLoadAmenities(req);
} }