From df11e65806f7158ee40d8381038ca91b79141e5a Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 7 Oct 2016 17:20:05 +1300 Subject: [PATCH 1/2] Add onDestroy() and check for isCancelled() --- .../nrw/commons/nearby/NearbyListFragment.java | 14 ++++++++++++++ .../fr/free/nrw/commons/nearby/NearbyPlaces.java | 1 + 2 files changed, 15 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java index 5c2524cbc..f60867db8 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java @@ -109,6 +109,15 @@ public class NearbyListFragment extends ListFragment implements TaskListener { super.onDetach(); } + @Override + public void onDestroy() { + super.onDestroy(); + + if(nearbyAsyncTask != null && nearbyAsyncTask.getStatus() != AsyncTask.Status.FINISHED) { + nearbyAsyncTask.cancel(true); + } + } + private class NearbyAsyncTask extends AsyncTask> { private final TaskListener listener; @@ -138,6 +147,11 @@ public class NearbyListFragment extends ListFragment implements TaskListener { @Override protected void onPostExecute(List result) { super.onPostExecute(result); + + if(isCancelled()) { + return; + } + progressBar.setVisibility(View.GONE); mAdapter = new NearbyAdapter(getActivity(), places); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index 1201cf0d0..6e38c1025 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -26,6 +26,7 @@ public class NearbyPlaces { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); + URL file = new URL("https://tools.wmflabs.org/wiki-needs-pictures/data/data.csv"); BufferedReader in = new BufferedReader(new InputStreamReader(file.openStream())); From 4af6dbd5e206afb757342382ae80c641d911acc1 Mon Sep 17 00:00:00 2001 From: misaochan Date: Fri, 7 Oct 2016 17:32:19 +1300 Subject: [PATCH 2/2] Add check for size of places --- .../free/nrw/commons/nearby/NearbyListFragment.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java index f60867db8..6dd2b25d5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java @@ -149,7 +149,7 @@ public class NearbyListFragment extends ListFragment implements TaskListener { super.onPostExecute(result); if(isCancelled()) { - return; + return; } progressBar.setVisibility(View.GONE); @@ -318,10 +318,12 @@ public class NearbyListFragment extends ListFragment implements TaskListener { ); } - for(int i = 0; i < 500; i++) { - Place place = places.get(i); - String distance = formatDistanceBetween(mLatestLocation, place.location); - place.setDistance(distance); + if (places.size() > 0) { + for (int i = 0; i < 100; i++) { + Place place = places.get(i); + String distance = formatDistanceBetween(mLatestLocation, place.location); + place.setDistance(distance); + } } return places; }