From 85f0ae2a154b271d5bc1b98e1415736498c119f8 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 7 Jan 2016 16:09:35 +1300 Subject: [PATCH] Added if cache found logic --- .../free/nrw/commons/upload/MwVolleyApi.java | 9 ++++++-- .../nrw/commons/upload/ShareActivity.java | 22 ++++++++++++------- 2 files changed, 21 insertions(+), 10 deletions(-) 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 dd74faf20..29e8c9d24 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 @@ -34,6 +34,7 @@ public class MwVolleyApi { private String coordsLog; protected static Set categorySet; + private static List categoryList; private static final String MWURL = "https://commons.wikimedia.org/"; @@ -44,8 +45,12 @@ public class MwVolleyApi { //To get the list of categories for display public static List getGpsCat() { - List list = new ArrayList(categorySet); - return list; + categoryList = new ArrayList(categorySet); + return categoryList; + } + + public static void setGpsCat(List cachedList) { + categoryList = new ArrayList(cachedList); } 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 8414c47d6..cdb780ab8 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 @@ -57,8 +57,11 @@ public class ShareActivity public void uploadActionInitiated(String title, String description) { Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); startingToast.show(); + //Has to be called after apiCall.request() cacheObj.cacheData.cacheCategory(); + Log.d("Cache", "Cache the categories found"); + uploadController.startUpload(title, mediaUri, description, mimeType, source, new UploadController.ContributionUploadProgress() { public void onUploadStarted(Contribution contribution) { ShareActivity.this.contribution = contribution; @@ -203,16 +206,19 @@ public class ShareActivity Log.d("Coords", "Decimal coords of image: " + decimalCoords); cacheObj.cacheData.setQtPoint(decLongitude, decLatitude); + MwVolleyApi apiCall = new MwVolleyApi(this); + List displayCatList = cacheObj.cacheData.findCategory(); - //TODO: If categories found from cache in that area, skip API call and display those categories instead - - //TODO: If no categories found from cache in that area, call MW API - - //asynchronous calls to MediaWiki Commons API to match image coords with nearby Commons categories - MwVolleyApi apiCall = new MwVolleyApi(this); - apiCall.request(decimalCoords); - + //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"); + } else { + //TODO: Set categoryList in MwVolleyApi + MwVolleyApi.setGpsCat(displayCatList); + Log.d("Cache", "Cache found, setting categoryList in MwVolleyApi to " + displayCatList.toString()); + } } }