From cb3ac0f824d3ff746d4cf511089bff6795495756 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 21 Jan 2016 18:54:00 +1300 Subject: [PATCH] Failed attempt at adding items to Adapter --- .../category/CategorizationFragment.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 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 befacdf51..90cd8981d 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 @@ -50,6 +50,7 @@ public class CategorizationFragment extends SherlockFragment{ private OnCategoriesSaveHandler onCategoriesSaveHandler; private HashMap> categoriesCache; + LinkedHashSet itemSet = new LinkedHashSet(); private ContentProviderClient client; @@ -201,6 +202,8 @@ public class CategorizationFragment extends SherlockFragment{ protected void onPostExecute(ArrayList categories) { super.onPostExecute(categories); setCatsAfterAsync(categories, filter); + + } @Override @@ -259,10 +262,11 @@ public class CategorizationFragment extends SherlockFragment{ } //TODO: This will set items twice in Adapter. Need to be able to 'add' items to adapter instead? Need to convert LinkedHashSet to ArrayList first? - //TODO: Maybe DON'T call this Adapter method. Instead make an add(items) method that will build up the LinkedHashSet. Then call the next block after AsyncTask over? - categoriesAdapter.setItems(items); - categoriesAdapter.notifyDataSetInvalidated(); - categoriesSearchInProgress.setVisibility(View.GONE); + //TODO: Maybe DON'T call this Adapter method. Instead make an add(items) method that will build up the LinkedHashSet. Then move this whole thing to bottom + itemSet.addAll(items); + Log.d(TAG, "Item Set" + itemSet.toString()); + + if (categories.size() == 0) { if(TextUtils.isEmpty(filter)) { // If we found no recent cats, show the skip message! @@ -274,6 +278,8 @@ public class CategorizationFragment extends SherlockFragment{ } else { categoriesList.smoothScrollToPosition(existingKeys.size()); } + + } private class CategoriesAdapter extends BaseAdapter { @@ -283,7 +289,6 @@ public class CategorizationFragment extends SherlockFragment{ private CategoriesAdapter(Context context, ArrayList items) { this.context = context; - this.items = items; } @@ -452,12 +457,21 @@ public class CategorizationFragment extends SherlockFragment{ methodAUpdater.cancel(true); } + methodAUpdater = new MethodAUpdater(); lastUpdater = new CategoriesUpdater(); Utils.executeAsyncTask(lastUpdater, executor); Utils.executeAsyncTask(methodAUpdater, executor); + ArrayList itemList = new ArrayList(itemSet); + + categoriesAdapter.setItems(itemList); + Log.d(TAG, "After AsyncTask over, set items in adapter to " + itemList.toString()); + + categoriesAdapter.notifyDataSetInvalidated(); + categoriesSearchInProgress.setVisibility(View.GONE); + }