예제 #1
0
 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);
 }
예제 #2
0
 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;
 }
예제 #3
0
 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;
 }
예제 #4
0
 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;
 }
예제 #5
0
 public void updateFilters(boolean onlyAddFilters) {
   PoiFilterDbHelper helper = openDbHelper();
   helper.upgradeFilters(helper.getWritableDatabase(), onlyAddFilters);
   helper.close();
 }