From b7fef046d3a4b3161397ddf52fe168938e230711 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 27 Oct 2016 16:33:40 +1300 Subject: [PATCH] Add similar method to MethodAUpdater --- .../nrw/commons/category/MethodAUpdater.java | 26 ++++++++++++++++++- .../nrw/commons/category/PrefixUpdater.java | 4 +-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index 5ac3f3bf2..ff1d72fba 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -10,6 +10,7 @@ import org.mediawiki.api.MWApi; import java.io.IOException; import java.util.ArrayList; +import java.util.Iterator; import fr.free.nrw.commons.CommonsApplication; @@ -38,11 +39,34 @@ public class MethodAUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } + private ArrayList filterYears(ArrayList items) { + + Iterator iterator; + + //Copy to Iterator to prevent ConcurrentModificationException when removing item + for(iterator = items.iterator(); iterator.hasNext();) { + String s = iterator.next(); + + //Check if s contains a 4-digit word anywhere within the string (.* is wildcard) + if(s.matches(".*(19|20)\\d{2}.*")) { + Log.d(TAG, "Filtering out year " + s); + iterator.remove(); + } + } + + Log.d(TAG, "Items: " + items.toString()); + return items; + } + + @Override protected ArrayList doInBackground(Void... voids) { //If user hasn't typed anything in yet, get GPS and recent items if(TextUtils.isEmpty(filter)) { - return catFragment.mergeItems(); + ArrayList mergedItems = new ArrayList(catFragment.mergeItems()); + Log.d(TAG, "Merged items, waiting for filter"); + ArrayList filteredItems = new ArrayList(filterYears(mergedItems)); + return filteredItems; } //if user types in something that is in cache, return cached category diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 0f370aedc..400eee3af 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -31,8 +31,6 @@ public class PrefixUpdater extends AsyncTask> { private static final String TAG = PrefixUpdater.class.getName(); private CategorizationFragment catFragment; - ArrayList filteredItems = new ArrayList<> (); - public PrefixUpdater(CategorizationFragment catFragment) { this.catFragment = catFragment; } @@ -47,7 +45,7 @@ public class PrefixUpdater extends AsyncTask> { catFragment.categoriesSkip.setVisibility(View.GONE); } - protected ArrayList filterYears(ArrayList items) { + private ArrayList filterYears(ArrayList items) { Iterator iterator;