diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java index beef4c899..22b4c08b2 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategorizationFragment.java @@ -76,10 +76,12 @@ public class CategorizationFragment extends Fragment { // LHS guarantees ordered insertions, allowing for prioritized method A results private final Set results = new LinkedHashSet(); - private final ArrayList titleCatItems = new ArrayList(); PrefixUpdater prefixUpdaterSub; MethodAUpdater methodAUpdaterSub; + private final ArrayList titleCatItems = new ArrayList(); + final CountDownLatch mergeLatch = new CountDownLatch(2); + private ContentProviderClient client; protected final static int SEARCH_CATS_LIMIT = 25; @@ -135,6 +137,7 @@ public class CategorizationFragment extends Fragment { protected void onPostExecute(ArrayList result) { super.onPostExecute(result); titleCatItems.addAll(result); + mergeLatch.countDown(); } }; Utils.executeAsyncTask(titleCategoriesSub); @@ -169,6 +172,7 @@ public class CategorizationFragment extends Fragment { throw new RuntimeException(e); } + mergeLatch.countDown(); return items; } @@ -177,6 +181,7 @@ public class CategorizationFragment extends Fragment { * @return a list containing merged categories */ protected ArrayList mergeItems() { + Set mergedItems = new LinkedHashSet(); if (MwVolleyApi.GpsCatExists.getGpsCatExists()) { @@ -192,6 +197,11 @@ public class CategorizationFragment extends Fragment { //Needs to be an ArrayList and not a List unless we want to modify a big portion of preexisting code ArrayList mergedItemsList = new ArrayList(mergedItems); + try { + mergeLatch.await(); + } catch (InterruptedException e) { + Log.e(TAG, "Interrupted Exception: ", e); + } return mergedItemsList; }