From d44869443e24a47017067089226d843d7cd6f3d1 Mon Sep 17 00:00:00 2001 From: misaochan Date: Sun, 24 Jan 2016 17:10:21 +1300 Subject: [PATCH] Modified Sub classes & added Latch --- .../category/CategorizationFragment.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) 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 79e05096b..2b786ecc0 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 @@ -53,7 +53,7 @@ public class CategorizationFragment extends SherlockFragment{ private OnCategoriesSaveHandler onCategoriesSaveHandler; protected HashMap> categoriesCache; - private final Set results = new LinkedHashSet(); + private final Set results = new LinkedHashSet(); private ContentProviderClient client; @@ -335,7 +335,6 @@ public class CategorizationFragment extends SherlockFragment{ return rootView; } - final CountDownLatch latch = new CountDownLatch(1); private class PrefixUpdaterSub extends PrefixUpdater { @@ -345,17 +344,24 @@ public class CategorizationFragment extends SherlockFragment{ } @Override - void doInBackground() { - super.doInBackground(); - latch.await(); + protected ArrayList doInBackground(Void... voids) { + ArrayList result = new ArrayList(); + try { + result = super.doInBackground(); + latch.await(); + } + catch (InterruptedException e) { + Log.w(TAG, e); + } + return result; } @Override - void onPostExecute(ResultSet result) { - super.onPostExecute(result): + protected void onPostExecute(ArrayList result) { + super.onPostExecute(result); results.addAll(result); - adapter.notifyDataSetComplete(); + categoriesAdapter.notifyDataSetChanged(); } } @@ -367,12 +373,12 @@ public class CategorizationFragment extends SherlockFragment{ } @Override - void onPostExecute(ResultSet result) { - super.onPostExecute(result): + protected void onPostExecute(ArrayList result) { + super.onPostExecute(result); results.clear(); results.addAll(result); - adapter.notifyDataSetComplete(); + categoriesAdapter.notifyDataSetChanged(); latch.countDown(); } @@ -380,6 +386,10 @@ public class CategorizationFragment extends SherlockFragment{ private void startUpdatingCategoryList() { + + + + if (lastUpdater != null) { lastUpdater.cancel(true); }