public List<PoiFilter> getUserDefinedPoiFilters() { if (cacheUserDefinedFilters == null) { cacheUserDefinedFilters = new ArrayList<PoiFilter>(); PoiFilter filter = new PoiFilter( application.getString(R.string.poi_filter_custom_filter), PoiFilter.CUSTOM_FILTER_ID, new LinkedHashMap<AmenityType, LinkedHashSet<String>>(), application); //$NON-NLS-1$ filter.setStandardFilter(true); cacheUserDefinedFilters.add(filter); filter = new SearchByNameFilter(application); cacheUserDefinedFilters.add(filter); PoiFilterDbHelper helper = openDbHelper(); List<PoiFilter> userDefined = helper.getFilters(helper.getReadableDatabase()); final Collator instance = Collator.getInstance(); Collections.sort( userDefined, new Comparator<PoiFilter>() { @Override public int compare(PoiFilter object1, PoiFilter object2) { return instance.compare(object1.getName(), object2.getName()); } }); cacheUserDefinedFilters.addAll(userDefined); helper.close(); } return Collections.unmodifiableList(cacheUserDefinedFilters); }
public boolean createPoiFilter(PoiFilter filter) { PoiFilterDbHelper helper = openDbHelper(); if (helper == null) { return false; } boolean res = helper.addFilter(filter, helper.getWritableDatabase(), false); if (res) { cacheUserDefinedFilters.add(filter); } helper.close(); return res; }
public boolean editPoiFilter(PoiFilter filter) { if (filter.getFilterId().equals(PoiFilter.CUSTOM_FILTER_ID) || filter.getFilterId().equals(PoiFilter.BY_NAME_FILTER_ID)) { return false; } PoiFilterDbHelper helper = openDbHelper(); if (helper != null) { boolean res = helper.editFilter(helper.getWritableDatabase(), filter); helper.close(); return res; } return false; }
public boolean removePoiFilter(PoiFilter filter) { if (filter.getFilterId().equals(PoiFilter.CUSTOM_FILTER_ID) || filter.getFilterId().equals(PoiFilter.BY_NAME_FILTER_ID)) { return false; } PoiFilterDbHelper helper = openDbHelper(); if (helper == null) { return false; } boolean res = helper.deleteFilter(helper.getWritableDatabase(), filter); if (res) { cacheUserDefinedFilters.remove(filter); } helper.close(); return res; }
public void updateFilters(boolean onlyAddFilters) { PoiFilterDbHelper helper = openDbHelper(); helper.upgradeFilters(helper.getWritableDatabase(), onlyAddFilters); helper.close(); }