aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/CacheListActivity.java10
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);
}
}