Check if action mode is null before finishing

pull/645/head
Alex Baker 8 years ago
parent 66b83727c6
commit 9db403595b

@ -142,9 +142,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
notifyItemChanged(viewHolder.getAdapterPosition()); notifyItemChanged(viewHolder.getAdapterPosition());
if (adapter.getSelected().isEmpty()) { if (adapter.getSelected().isEmpty()) {
dragging = false; dragging = false;
if (mode != null) { finishActionMode();
mode.finish();
}
} else { } else {
if (mode == null) { if (mode == null) {
mode = ((TaskListActivity) activity).startSupportActionMode(actionModeCallback); mode = ((TaskListActivity) activity).startSupportActionMode(actionModeCallback);
@ -164,7 +162,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
private void deleteSelectedItems() { private void deleteSelectedItems() {
tracker.reportEvent(Tracking.Events.MULTISELECT_DELETE); tracker.reportEvent(Tracking.Events.MULTISELECT_DELETE);
List<Long> tasks = adapter.getSelected(); List<Long> tasks = adapter.getSelected();
mode.finish(); finishActionMode();
List<Task> result = taskDeleter.markDeleted(tasks); List<Task> result = taskDeleter.markDeleted(tasks);
taskList.onTaskDelete(result); taskList.onTaskDelete(result);
taskList.makeSnackbar(activity.getString(R.string.delete_multiple_tasks_confirmation, Integer.toString(result.size()))).show(); taskList.makeSnackbar(activity.getString(R.string.delete_multiple_tasks_confirmation, Integer.toString(result.size()))).show();
@ -173,7 +171,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
private void copySelectedItems() { private void copySelectedItems() {
tracker.reportEvent(Tracking.Events.MULTISELECT_CLONE); tracker.reportEvent(Tracking.Events.MULTISELECT_CLONE);
List<Long> tasks = adapter.getSelected(); List<Long> tasks = adapter.getSelected();
mode.finish(); finishActionMode();
List<Task> duplicates = taskDuplicator.duplicate(tasks); List<Task> duplicates = taskDuplicator.duplicate(tasks);
taskList.onTaskCreated(duplicates); taskList.onTaskCreated(duplicates);
taskList.makeSnackbar(activity.getString(R.string.copy_multiple_tasks_confirmation, Integer.toString(duplicates.size()))).show(); taskList.makeSnackbar(activity.getString(R.string.copy_multiple_tasks_confirmation, Integer.toString(duplicates.size()))).show();
@ -185,6 +183,12 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
} }
} }
private void finishActionMode() {
if (mode != null) {
mode.finish();
}
}
private ActionMode.Callback actionModeCallback = new ActionMode.Callback() { private ActionMode.Callback actionModeCallback = new ActionMode.Callback() {
@Override @Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
@ -307,9 +311,7 @@ public class TaskListRecyclerAdapter extends RecyclerView.Adapter<ViewHolder>
@Override @Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) { public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) {
if (mode != null) { finishActionMode();
mode.finish();
}
int fromPosition = source.getAdapterPosition(); int fromPosition = source.getAdapterPosition();
int toPosition = target.getAdapterPosition(); int toPosition = target.getAdapterPosition();
if (from == -1) { if (from == -1) {

Loading…
Cancel
Save