From d2f765daec7af0b12c21e04a1e9480d0e0d40365 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 7 Jan 2016 16:56:31 +1300 Subject: [PATCH] Flattened category list found in cache --- .../free/nrw/commons/caching/CacheController.java | 13 +++++++++---- .../fr/free/nrw/commons/upload/MwVolleyApi.java | 1 + .../fr/free/nrw/commons/upload/ShareActivity.java | 4 ++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/commons/src/main/java/fr/free/nrw/commons/caching/CacheController.java b/commons/src/main/java/fr/free/nrw/commons/caching/CacheController.java index 2d007b405..27259bb5f 100644 --- a/commons/src/main/java/fr/free/nrw/commons/caching/CacheController.java +++ b/commons/src/main/java/fr/free/nrw/commons/caching/CacheController.java @@ -38,14 +38,15 @@ public class CacheController { quadTree.set(x, y, pointCatList); } - public List findCategory() { + public ArrayList findCategory() { //Convert decLatitude and decLongitude to a coordinate offset range convertCoordRange(); pointsFound = quadTree.searchWithin(xMinus, yMinus, xPlus, yPlus); - List displayCatList = new ArrayList(); + ArrayList displayCatList = new ArrayList(); Log.d("Cache", "Points found in quadtree: " + pointsFound); + ArrayList flatCatList = null; //TODO: Make this return a proper flat array if (pointsFound.length != 0) { @@ -58,13 +59,17 @@ public class CacheController { displayCatList.add(index, cat); index++; } - Log.d("Cache", "Categories found in cache: " + displayCatList.toString()); + //FIXME: temporary, can't figure out why for loop always only accesses 1 point + flatCatList = ((ArrayList)displayCatList.get(0)); + Log.d("Cache", "Categories found in cache: " + flatCatList.toString()); } else { Log.d("Cache", "No categories found in cache"); } - return displayCatList; + return flatCatList; } + + public void convertCoordRange() { //Position, decimal degrees double lat = y; diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java b/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java index 29e8c9d24..d8617ed7e 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java @@ -51,6 +51,7 @@ public class MwVolleyApi { public static void setGpsCat(List cachedList) { categoryList = new ArrayList(cachedList); + Log.d("Cache", "Setting GPS cats from cache: " + categoryList.toString()); } diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index be0e360b8..b0f0ebf79 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -213,9 +213,9 @@ public class ShareActivity //if no categories found in cache, call MW API to match image coords with nearby Commons categories if (displayCatList.size() == 0) { apiCall.request(decimalCoords); - Log.d("Cache", "displayCatList size 0, calling MWAPI"); + Log.d("Cache", "displayCatList size 0, calling MWAPI" + displayCatList.toString()); } else { - //TODO: Set categoryList in MwVolleyApi. Not filling up right. Maybe do global singleton for MwVolleyApi + //TODO: Set categoryList in MwVolleyApi. Not filling up right. Maybe do global singleton for MwVolleyApi? Can't do that, we want new cats for each upload, so new instance of mwapi MwVolleyApi.setGpsCat(displayCatList); Log.d("Cache", "Cache found, setting categoryList in MwVolleyApi to " + displayCatList.toString()); }