diff --git a/commons/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/commons/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index 773fd765f..79e05096b 100644 --- a/commons/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/commons/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -336,6 +336,49 @@ public class CategorizationFragment extends SherlockFragment{ } + final CountDownLatch latch = new CountDownLatch(1); + + private class PrefixUpdaterSub extends PrefixUpdater { + + public PrefixUpdaterSub() { + super(CategorizationFragment.this); + } + + @Override + void doInBackground() { + super.doInBackground(); + latch.await(); + } + + @Override + void onPostExecute(ResultSet result) { + super.onPostExecute(result): + + results.addAll(result); + adapter.notifyDataSetComplete(); + } + } + + + private class MethodAUpdaterSub extends MethodAUpdater { + + public MethodAUpdaterSub() { + super(CategorizationFragment.this); + } + + @Override + void onPostExecute(ResultSet result) { + super.onPostExecute(result): + + results.clear(); + results.addAll(result); + adapter.notifyDataSetComplete(); + + latch.countDown(); + } + } + + private void startUpdatingCategoryList() { if (lastUpdater != null) { lastUpdater.cancel(true); @@ -346,6 +389,12 @@ public class CategorizationFragment extends SherlockFragment{ } + PrefixUpdaterSub prefixUpdaterSub = new PrefixUpdaterSub(); + MethodAUpdaterSub methodAUpdaterSub = new MethodAUpdaterSub(); + + Utils.executeAsyncTask(prefixUpdaterSub); + Utils.executeAsyncTask(methodAUpdaterSub); +/* ArrayList itemList = new ArrayList(itemSet); methodAUpdater = new MethodAUpdater(); @@ -353,8 +402,7 @@ public class CategorizationFragment extends SherlockFragment{ Utils.executeAsyncTask(lastUpdater, executor); Utils.executeAsyncTask(methodAUpdater, executor); - - + */ } diff --git a/commons/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/commons/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index 9f23c3818..70ede4716 100644 --- a/commons/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/commons/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -18,7 +18,11 @@ public class MethodAUpdater extends AsyncTask> { private String filter; private static final String TAG = MethodAUpdater.class.getName(); - CategorizationFragment catFragment = new CategorizationFragment(); + CategorizationFragment catFragment; + + public MethodAUpdater(CategorizationFragment catFragment) { + this.catFragment = catFragment; + } @Override protected void onPreExecute() { diff --git a/commons/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/commons/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 6d6a1e36d..00e17e51f 100644 --- a/commons/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/commons/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -18,7 +18,12 @@ public class PrefixUpdater extends AsyncTask> { private String filter; private static final String TAG = PrefixUpdater.class.getName(); - CategorizationFragment catFragment = new CategorizationFragment(); + CategorizationFragment catFragment; + + public PrefixUpdater(CategorizationFragment catFragment) { + this.catFragment = catFragment; + } + @Override protected void onPreExecute() { super.onPreExecute();