diff options
| author | Marco Jacob <mjacob@union06.de> | 2014-10-17 17:38:45 +0200 |
|---|---|---|
| committer | Marco Jacob <mjacob@union06.de> | 2014-10-17 17:38:45 +0200 |
| commit | 4e110b91efddf9d601a2fb2c40df2502f186bd21 (patch) | |
| tree | 036f55cf55aa2dc1b60f4c3fdb8f62ea919e3b2a | |
| parent | 0904e2a00d54c5e7e4c68aca52009a55537b7048 (diff) | |
| download | cgeo-4e110b91efddf9d601a2fb2c40df2502f186bd21.zip cgeo-4e110b91efddf9d601a2fb2c40df2502f186bd21.tar.gz cgeo-4e110b91efddf9d601a2fb2c40df2502f186bd21.tar.bz2 | |
fixes #4384 - keep last visible list position
| -rw-r--r-- | main/src/cgeo/geocaching/CacheListActivity.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java index 956b9da..3abaf37 100644 --- a/main/src/cgeo/geocaching/CacheListActivity.java +++ b/main/src/cgeo/geocaching/CacheListActivity.java @@ -778,7 +778,7 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA deletion.add(cache); } } - new DropDetailsTask().execute(deletion.toArray(new Geocache[deletion.size()])); + new DropDetailsTask(0).execute(deletion.toArray(new Geocache[deletion.size()])); } private void clearOfflineLogs() { @@ -1175,7 +1175,8 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA @Override public void onClick(final DialogInterface dialog, final int id) { final List<Geocache> selected = adapter.getCheckedOrAllCaches(); - new DropDetailsTask().execute(selected.toArray(new Geocache[selected.size()])); + final int lastListPosition = CacheListActivity.this.getListView().getFirstVisiblePosition(); + new DropDetailsTask(lastListPosition).execute(selected.toArray(new Geocache[selected.size()])); dialog.cancel(); } }); @@ -1294,9 +1295,11 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA } private class DropDetailsTask extends AsyncTaskWithProgress<Geocache, Void> { + private final int lastListPosition; - public DropDetailsTask() { + public DropDetailsTask(final int lastListPosition) { super(CacheListActivity.this, null, res.getString(R.string.caches_remove_progress), true); + this.lastListPosition = lastListPosition; } @Override @@ -1310,6 +1313,7 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA adapter.setSelectMode(false); refreshCurrentList(); replaceCacheListFromSearch(); + CacheListActivity.this.getListView().setSelection(lastListPosition); } } |
