When undoing a removal, always return to the page it came from

We were already returning to the current page, but this wasn't
always right, e.g. when removing the last item on the last page.
So now we mark the page the item was removed from, and bind that
page first when undo is clicked.

This also addresses an issue where we incorrectly returned to the
first page if currentPage = INVALID_RESTORE_PAGE, which happens if
there are no items on the first page.

Bug: 118846684
Change-Id: I4ec1f64b24ba1cc308ce08bfb3111b5981fae99b
This commit is contained in:
Tony
2018-12-21 11:58:04 -08:00
parent a7a9583bb8
commit f80e893163
5 changed files with 19 additions and 9 deletions

View File

@@ -113,10 +113,11 @@ public class DeleteDropTarget extends ButtonDropTarget {
public void completeDrop(DragObject d) {
ItemInfo item = d.dragInfo;
if (canRemove(item)) {
int itemPage = mLauncher.getWorkspace().getCurrentPage();
onAccessibilityDrop(null, item);
ModelWriter modelWriter = mLauncher.getModelWriter();
Snackbar.show(mLauncher, R.string.item_removed, R.string.undo,
modelWriter::commitDelete, modelWriter::abortDelete);
modelWriter::commitDelete, () -> modelWriter.abortDelete(itemPage));
}
}