diff --git a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java index 558812f37..f5b2557dc 100644 --- a/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskListFragment.java @@ -457,7 +457,7 @@ public class TaskListFragment extends InjectingFragment implements // set up list adapters taskAdapter = createTaskAdapter(currentCursor); recyclerAdapter = new TaskListRecyclerAdapter(getActivity(), taskAdapter, viewHolderFactory, - this, taskDeleter, taskDuplicator, tracker); + this, taskDeleter, taskDuplicator, tracker, dialogBuilder); } public Property[] taskProperties() { diff --git a/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java b/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java index dc9d2728e..8f1cb332f 100644 --- a/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java +++ b/src/main/java/org/tasks/tasklist/TaskListRecyclerAdapter.java @@ -29,6 +29,7 @@ import com.todoroo.astrid.utility.Flags; import org.tasks.R; import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracking; +import org.tasks.dialogs.DialogBuilder; import org.tasks.ui.MenuColorizer; import java.util.List; @@ -49,6 +50,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im private final TaskDeleter taskDeleter; private final TaskDuplicator taskDuplicator; private final Tracker tracker; + private final DialogBuilder dialogBuilder; private final ItemTouchHelper itemTouchHelper; private ActionMode mode = null; @@ -56,7 +58,8 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im public TaskListRecyclerAdapter(Activity activity, TaskAdapter adapter, ViewHolderFactory viewHolderFactory, TaskListFragment taskList, TaskDeleter taskDeleter, - TaskDuplicator taskDuplicator, Tracker tracker) { + TaskDuplicator taskDuplicator, Tracker tracker, + DialogBuilder dialogBuilder) { this.activity = activity; this.adapter = adapter; this.viewHolderFactory = viewHolderFactory; @@ -64,6 +67,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im this.taskDeleter = taskDeleter; this.taskDuplicator = taskDuplicator; this.tracker = tracker; + this.dialogBuilder = dialogBuilder; itemTouchHelper = new ItemTouchHelper(new ItemTouchHelperCallback()); } @@ -172,24 +176,14 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im for (int position : Ordering.natural().reverse().sortedCopy(multiSelector.getSelectedPositions())) { notifyItemRemoved(position); } - taskList.makeSnackbar(activity.getString(R.string.delete_multiple_tasks_confirmation, Integer.toString(result))) - .setAction(R.string.DLG_undo, v -> { - taskDeleter.undelete(tasks); - taskList.loadTaskListContent(); - }) - .show(); + taskList.makeSnackbar(activity.getString(R.string.delete_multiple_tasks_confirmation, Integer.toString(result))).show(); } private void copySelectedItems() { tracker.reportEvent(Tracking.Events.MULTISELECT_CLONE); List duplicates = taskDuplicator.duplicate(getTasks()); taskList.onTaskCreated(duplicates); - taskList.makeSnackbar(activity.getString(R.string.copy_multiple_tasks_confirmation, Integer.toString(duplicates.size()))) - .setAction(R.string.DLG_undo, v -> { - taskDeleter.delete(duplicates); - taskList.onTaskDelete(duplicates); - }) - .show(); + taskList.makeSnackbar(activity.getString(R.string.copy_multiple_tasks_confirmation, Integer.toString(duplicates.size()))).show(); } private void updateModeTitle() { @@ -211,12 +205,22 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter im public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.delete: - deleteSelectedItems(); - mode.finish(); + dialogBuilder.newMessageDialog(R.string.delete_selected_tasks) + .setPositiveButton(android.R.string.ok, (dialogInterface, i) -> { + deleteSelectedItems(); + mode.finish(); + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); return true; case R.id.copy_tasks: - copySelectedItems(); - mode.finish(); + dialogBuilder.newMessageDialog(R.string.copy_selected_tasks) + .setPositiveButton(android.R.string.ok, ((dialogInterface, i) -> { + copySelectedItems(); + mode.finish(); + })) + .setNegativeButton(android.R.string.cancel, null) + .show(); return true; default: return false; diff --git a/src/main/res/menu/menu_multi_select.xml b/src/main/res/menu/menu_multi_select.xml index bb22ca068..21ef5ed19 100644 --- a/src/main/res/menu/menu_multi_select.xml +++ b/src/main/res/menu/menu_multi_select.xml @@ -4,7 +4,7 @@ diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 6004a3d08..aaab4e8e6 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -820,5 +820,7 @@ File %1$s contained %2$s.\n\n Clear completed tasks? %s copied %s deleted + Delete selected tasks? + Copy selected tasks?