diff options
Diffstat (limited to 'main/src')
4 files changed, 18 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java index a817aa5..522004e 100644 --- a/main/src/cgeo/geocaching/CacheListActivity.java +++ b/main/src/cgeo/geocaching/CacheListActivity.java @@ -975,8 +975,9 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA private void updateAdapter() { adapter.notifyDataSetChanged(); - adapter.forceSort(); adapter.reFilter(); + adapter.checkEvents(); + adapter.forceSort(); } private void showFooterLoadingCaches() { diff --git a/main/src/cgeo/geocaching/sorting/DistanceComparator.java b/main/src/cgeo/geocaching/sorting/DistanceComparator.java index 541ce48..b3b751b 100644 --- a/main/src/cgeo/geocaching/sorting/DistanceComparator.java +++ b/main/src/cgeo/geocaching/sorting/DistanceComparator.java @@ -3,6 +3,7 @@ package cgeo.geocaching.sorting; import cgeo.geocaching.Geocache; import cgeo.geocaching.geopoint.Geopoint; +import java.util.ArrayList; import java.util.List; /** @@ -15,7 +16,17 @@ public class DistanceComparator extends AbstractCacheComparator { final private List<Geocache> list; private boolean cachedDistances; - public DistanceComparator(final Geopoint coords, List<Geocache> list) { + final static public DistanceComparator singleton = new DistanceComparator(); + + public DistanceComparator() { + // This constructor should not be used as a comparator as distances will not be updated. + // It is needed in order to really know we are sorting by Distances in the sort menu. + // If you need it for sorting, please use the second constructor. + coords = null; + list = new ArrayList<>(); + } + + public DistanceComparator(final Geopoint coords, final List<Geocache> list) { this.coords = coords; this.list = list; } diff --git a/main/src/cgeo/geocaching/sorting/SortActionProvider.java b/main/src/cgeo/geocaching/sorting/SortActionProvider.java index e9e65a0..6251984 100644 --- a/main/src/cgeo/geocaching/sorting/SortActionProvider.java +++ b/main/src/cgeo/geocaching/sorting/SortActionProvider.java @@ -62,7 +62,7 @@ public class SortActionProvider extends ActionProvider implements OnMenuItemClic } private void registerComparators() { - register(R.string.caches_sort_distance, null); + register(R.string.caches_sort_distance, DistanceComparator.class); register(R.string.caches_sort_date_hidden, DateComparator.class); register(R.string.caches_sort_difficulty, DifficultyComparator.class); register(R.string.caches_sort_finds, FindsComparator.class); diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java index b879e54..eaede2a 100644 --- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java +++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java @@ -179,6 +179,9 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { if (cacheComparator == null && eventsOnly) { return EventDateComparator.singleton; } + if (cacheComparator == null) { + return DistanceComparator.singleton; + } return cacheComparator; } |
