diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2013-03-27 09:45:57 +0100 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2013-03-27 09:45:57 +0100 |
| commit | 019567e6a81f09542d3331f9856c82bc043bcffe (patch) | |
| tree | 9ac4385f71c21d2b6e30bb0a93f6ba95716a4ea7 /main/src | |
| parent | 678280b752547c8dc392bb6e5dfcadcfd550ee50 (diff) | |
| download | cgeo-019567e6a81f09542d3331f9856c82bc043bcffe.zip cgeo-019567e6a81f09542d3331f9856c82bc043bcffe.tar.gz cgeo-019567e6a81f09542d3331f9856c82bc043bcffe.tar.bz2 | |
#2593: wrong inverse sorting in history and other lists
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/cgeocaches.java | 11 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/ui/CacheListAdapter.java | 16 |
2 files changed, 18 insertions, 9 deletions
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java index 00c10d0..d29b924 100644 --- a/main/src/cgeo/geocaching/cgeocaches.java +++ b/main/src/cgeo/geocaching/cgeocaches.java @@ -749,9 +749,18 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity showFilterMenu(null); return true; case MENU_SORT: - new ComparatorUserInterface(this).selectComparator(adapter.getCacheComparator(), new RunnableWithArgument<CacheComparator>() { + final CacheComparator oldComparator = adapter.getCacheComparator(); + new ComparatorUserInterface(this).selectComparator(oldComparator, new RunnableWithArgument<CacheComparator>() { @Override public void run(CacheComparator selectedComparator) { + // selecting the same sorting twice will toggle the order + if (selectedComparator != null && oldComparator != null && selectedComparator.getClass().equals(oldComparator.getClass())) { + adapter.toggleInverseSort(); + } + else { + // always reset the inversion for a new sorting criteria + adapter.resetInverseSort(); + } setComparator(selectedComparator); } }); diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java index 41e27a6..4965e0b 100644 --- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java +++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java @@ -152,18 +152,18 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { * @param comparator */ public void setComparator(final CacheComparator comparator) { - // selecting the same sorting twice will toggle the order - if (cacheComparator != null && comparator != null && cacheComparator.getClass().equals(comparator.getClass())) { - inverseSort = !inverseSort; - } - else { - // always reset the inversion for a new sorting criteria - inverseSort = false; - } cacheComparator = comparator; forceSort(); } + public void resetInverseSort() { + inverseSort = false; + } + + public void toggleInverseSort() { + inverseSort = !inverseSort; + } + public CacheComparator getCacheComparator() { return cacheComparator; } |
