From 9d50b4706c8a1e4eef1ecaddf50bcd1c3a858b4d Mon Sep 17 00:00:00 2001 From: misaochan Date: Sat, 8 Oct 2016 17:53:26 +1300 Subject: [PATCH] Refactor recentCatQuery into two separate functions --- .../category/CategorizationFragment.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) 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 623eb57ac..2510d3d5e 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 @@ -115,12 +115,11 @@ public class CategorizationFragment extends Fragment { //TODO: Probably add 'suggest from filename' cats here. We want it to be displayed at start, not upon typing //TODO: Search using MethodA query, but can't use MethodAUpdater because we don't want it updating when user types /** - * Retrieves recently-used categories and nearby categories, and merges them without duplicates. - * @return a list containing these categories + * Retrieves recently-used categories + * @return a list containing recent categories */ protected ArrayList recentCatQuery() { ArrayList items = new ArrayList(); - Set mergedItems = new LinkedHashSet(); try { Cursor cursor = client.query( @@ -135,21 +134,29 @@ public class CategorizationFragment extends Fragment { items.add(cat.getName()); } cursor.close(); - - if (MwVolleyApi.GpsCatExists.getGpsCatExists() == true) { - //Log.d(TAG, "GPS cats found in CategorizationFragment.java" + MwVolleyApi.getGpsCat().toString()); - List gpsItems = new ArrayList(MwVolleyApi.getGpsCat()); - //Log.d(TAG, "GPS items: " + gpsItems.toString()); - - mergedItems.addAll(gpsItems); - } - - mergedItems.addAll(items); } catch (RemoteException e) { throw new RuntimeException(e); } + return items; + } + + /** + * Merges recently-used categories and nearby categories without duplicates. + * @return a list containing merged categories + */ + protected ArrayList mergeItems() { + Set mergedItems = new LinkedHashSet(); + + if (MwVolleyApi.GpsCatExists.getGpsCatExists()) { + List gpsItems = new ArrayList(MwVolleyApi.getGpsCat()); + mergedItems.addAll(gpsItems); + } + + List recentItems = new ArrayList(recentCatQuery()); + mergedItems.addAll(recentItems); + //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); return mergedItemsList;