aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-09-04 20:25:18 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-09-04 20:25:18 +0200
commitd11b31de283d3feea2721786a0d4643b91be5cf7 (patch)
tree375a2cfa429bbfbab361c4564c3b23b73c6fad30 /main
parentb8a2b368fbc5fa124d70aee4d4e6e5b1a1424054 (diff)
parent5f15e55d7dcb9649b96c3e1790a46b1f52cbbc31 (diff)
downloadcgeo-d11b31de283d3feea2721786a0d4643b91be5cf7.zip
cgeo-d11b31de283d3feea2721786a0d4643b91be5cf7.tar.gz
cgeo-d11b31de283d3feea2721786a0d4643b91be5cf7.tar.bz2
Merge branch 'issue-4260' into upstream
Conflicts: main/src/cgeo/geocaching/sorting/DistanceComparator.java
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/CacheListActivity.java3
-rw-r--r--main/src/cgeo/geocaching/sorting/DistanceComparator.java10
-rw-r--r--main/src/cgeo/geocaching/sorting/SortActionProvider.java2
-rw-r--r--main/src/cgeo/geocaching/ui/CacheListAdapter.java3
4 files changed, 16 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java
index 661755d..7b887aa 100644
--- a/main/src/cgeo/geocaching/CacheListActivity.java
+++ b/main/src/cgeo/geocaching/CacheListActivity.java
@@ -983,8 +983,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 6812865..3da5736 100644
--- a/main/src/cgeo/geocaching/sorting/DistanceComparator.java
+++ b/main/src/cgeo/geocaching/sorting/DistanceComparator.java
@@ -16,6 +16,16 @@ public class DistanceComparator extends AbstractCacheComparator {
final private List<Geocache> list;
private boolean cachedDistances;
+ 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;
// create new list so we can iterate over the list in parallel with the cache list adapter
diff --git a/main/src/cgeo/geocaching/sorting/SortActionProvider.java b/main/src/cgeo/geocaching/sorting/SortActionProvider.java
index 61b2ffb..e6db330 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 b0b30aa..8cb2177 100644
--- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java
+++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java
@@ -177,6 +177,9 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> {
if (cacheComparator == null && eventsOnly) {
return EventDateComparator.singleton;
}
+ if (cacheComparator == null) {
+ return DistanceComparator.singleton;
+ }
return cacheComparator;
}