Update poi search
This commit is contained in:
parent
97f987ebe7
commit
6479c894c7
4 changed files with 17 additions and 9 deletions
|
@ -306,7 +306,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
||||||
showFilterItem.setVisible(filter != null && !isNameSearch());
|
showFilterItem.setVisible(filter != null && !isNameSearch());
|
||||||
}
|
}
|
||||||
if (filter != null) {
|
if (filter != null) {
|
||||||
int maxLength = 30;
|
int maxLength = 24;
|
||||||
String name = filter.getGeneratedName(maxLength);
|
String name = filter.getGeneratedName(maxLength);
|
||||||
if(name.length() >= maxLength) {
|
if(name.length() >= maxLength) {
|
||||||
name = name.substring(0, maxLength) + getString(R.string.shared_string_ellipsis);
|
name = name.substring(0, maxLength) + getString(R.string.shared_string_ellipsis);
|
||||||
|
@ -807,7 +807,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
|
||||||
null,
|
null,
|
||||||
filter.getAcceptedTypes(), (OsmandApplication) getApplication());
|
filter.getAcceptedTypes(), (OsmandApplication) getApplication());
|
||||||
if(searchFilter.getText().toString().length() > 0) {
|
if(searchFilter.getText().toString().length() > 0) {
|
||||||
nFilter.setFilterByName(searchFilter.getText().toString());
|
nFilter.setSavedFilterByName(searchFilter.getText().toString());
|
||||||
}
|
}
|
||||||
if (app.getPoiFilters().createPoiFilter(nFilter)) {
|
if (app.getPoiFilters().createPoiFilter(nFilter)) {
|
||||||
AccessibleToast.makeText(
|
AccessibleToast.makeText(
|
||||||
|
|
|
@ -123,7 +123,7 @@ public class SearchPoiFilterFragment extends ListFragment implements SearchActiv
|
||||||
} else {
|
} else {
|
||||||
PoiFiltersHelper poiFilters = getApp().getPoiFilters();
|
PoiFiltersHelper poiFilters = getApp().getPoiFilters();
|
||||||
for(PoiLegacyFilter pf : poiFilters.getTopDefinedPoiFilters()) {
|
for(PoiLegacyFilter pf : poiFilters.getTopDefinedPoiFilters()) {
|
||||||
if(!pf.isStandardFilter()) {
|
if(!pf.isStandardFilter() && pf.getName().toLowerCase().startsWith(s.toLowerCase())) {
|
||||||
filters.add(pf);
|
filters.add(pf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -189,12 +189,14 @@ public class SearchPoiFilterFragment extends ListFragment implements SearchActiv
|
||||||
}
|
}
|
||||||
showFilterActivity(model.getFilterId());
|
showFilterActivity(model.getFilterId());
|
||||||
} else {
|
} else {
|
||||||
PoiLegacyFilter custom = getApp().getPoiFilters().getCustomPOIFilter();
|
PoiLegacyFilter custom = getApp().getPoiFilters().getFilterById(PoiLegacyFilter.STD_PREFIX + ((AbstractPoiType) item).getKeyName());
|
||||||
|
if(custom != null) {
|
||||||
custom.setFilterByName(null);
|
custom.setFilterByName(null);
|
||||||
custom.updateTypesToAccept(((AbstractPoiType) item));
|
custom.updateTypesToAccept(((AbstractPoiType) item));
|
||||||
showFilterActivity(custom.getFilterId());
|
showFilterActivity(custom.getFilterId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void showFilterActivity(String filterId) {
|
private void showFilterActivity(String filterId) {
|
||||||
final Intent newIntent = new Intent(getActivity(), SearchPOIActivity.class);
|
final Intent newIntent = new Intent(getActivity(), SearchPOIActivity.class);
|
||||||
|
|
|
@ -11,6 +11,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import net.osmand.access.AccessibilityPlugin;
|
import net.osmand.access.AccessibilityPlugin;
|
||||||
|
import net.osmand.osm.AbstractPoiType;
|
||||||
import net.osmand.osm.MapPoiTypes;
|
import net.osmand.osm.MapPoiTypes;
|
||||||
import net.osmand.osm.PoiCategory;
|
import net.osmand.osm.PoiCategory;
|
||||||
import net.osmand.osm.PoiFilter;
|
import net.osmand.osm.PoiFilter;
|
||||||
|
@ -123,7 +124,10 @@ public class PoiFiltersHelper {
|
||||||
String typeId = filterId.substring(PoiLegacyFilter.STD_PREFIX.length());
|
String typeId = filterId.substring(PoiLegacyFilter.STD_PREFIX.length());
|
||||||
PoiType tp = application.getPoiTypes().getPoiTypeByKey(typeId);
|
PoiType tp = application.getPoiTypes().getPoiTypeByKey(typeId);
|
||||||
if(tp != null) {
|
if(tp != null) {
|
||||||
return new PoiLegacyFilter(tp, application);
|
PoiLegacyFilter lf = new PoiLegacyFilter(tp, application);
|
||||||
|
cacheTopStandardFilters.add(lf);
|
||||||
|
sortListOfFilters(cacheTopStandardFilters);
|
||||||
|
return lf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -424,4 +428,5 @@ public class PoiFiltersHelper {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -274,7 +274,8 @@ public class PoiLegacyFilter implements SearchPoiTypeFilter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGeneratedName(int chars) {
|
public String getGeneratedName(int chars) {
|
||||||
if (areAllTypesAccepted() || acceptedTypes.isEmpty()) {
|
if (!filterId.equals(CUSTOM_FILTER_ID) ||
|
||||||
|
areAllTypesAccepted() || acceptedTypes.isEmpty()) {
|
||||||
return getName();
|
return getName();
|
||||||
}
|
}
|
||||||
StringBuilder res = new StringBuilder();
|
StringBuilder res = new StringBuilder();
|
||||||
|
|
Loading…
Reference in a new issue