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..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 @@ -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); @@ -304,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; } 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()));