Merge "Add delete key support." into nyc-dev
This commit is contained in:
@@ -164,6 +164,7 @@ public class DirectoryFragment extends Fragment
|
|||||||
private String mQuery = null;
|
private String mQuery = null;
|
||||||
private Selection mSelection = null;
|
private Selection mSelection = null;
|
||||||
private boolean mSearchMode = false;
|
private boolean mSearchMode = false;
|
||||||
|
private @Nullable ActionMode mActionMode;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(
|
public View onCreateView(
|
||||||
@@ -438,7 +439,6 @@ public class DirectoryFragment extends Fragment
|
|||||||
implements MultiSelectManager.Callback, ActionMode.Callback {
|
implements MultiSelectManager.Callback, ActionMode.Callback {
|
||||||
|
|
||||||
private Selection mSelected = new Selection();
|
private Selection mSelected = new Selection();
|
||||||
private ActionMode mActionMode;
|
|
||||||
private int mNoCopyCount = 0;
|
private int mNoCopyCount = 0;
|
||||||
private int mNoDeleteCount = 0;
|
private int mNoDeleteCount = 0;
|
||||||
private int mNoRenameCount = -1;
|
private int mNoRenameCount = -1;
|
||||||
@@ -577,10 +577,9 @@ public class DirectoryFragment extends Fragment
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.menu_delete:
|
case R.id.menu_delete:
|
||||||
// Pass mode along to the delete function so it can
|
// deleteDocuments will end action mode if the documents are deleted.
|
||||||
// end action mode when documents are deleted.
|
|
||||||
// It won't end action mode if user cancels the delete.
|
// It won't end action mode if user cancels the delete.
|
||||||
deleteDocuments(selection, mode);
|
deleteDocuments(selection);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.menu_copy_to:
|
case R.id.menu_copy_to:
|
||||||
@@ -689,7 +688,7 @@ public class DirectoryFragment extends Fragment
|
|||||||
}.execute(selected);
|
}.execute(selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteDocuments(final Selection selected, final ActionMode mode) {
|
private void deleteDocuments(final Selection selected) {
|
||||||
assert(!selected.isEmpty());
|
assert(!selected.isEmpty());
|
||||||
|
|
||||||
final DocumentInfo srcParent = getDisplayState().stack.peek();
|
final DocumentInfo srcParent = getDisplayState().stack.peek();
|
||||||
@@ -726,7 +725,9 @@ public class DirectoryFragment extends Fragment
|
|||||||
// This is done here, rather in the onActionItemClicked
|
// This is done here, rather in the onActionItemClicked
|
||||||
// so we can avoid de-selecting items in the case where
|
// so we can avoid de-selecting items in the case where
|
||||||
// the user cancels the delete.
|
// the user cancels the delete.
|
||||||
mode.finish();
|
if (mActionMode != null) {
|
||||||
|
mActionMode.finish();
|
||||||
|
}
|
||||||
// Hide the files in the UI...since the operation
|
// Hide the files in the UI...since the operation
|
||||||
// might be queued up on FileOperationService.
|
// might be queued up on FileOperationService.
|
||||||
// We're walking a line here.
|
// We're walking a line here.
|
||||||
@@ -1271,6 +1272,16 @@ public class DirectoryFragment extends Fragment
|
|||||||
case KeyEvent.KEYCODE_DPAD_CENTER:
|
case KeyEvent.KEYCODE_DPAD_CENTER:
|
||||||
case KeyEvent.KEYCODE_BUTTON_A:
|
case KeyEvent.KEYCODE_BUTTON_A:
|
||||||
return onActivate(doc);
|
return onActivate(doc);
|
||||||
|
case KeyEvent.KEYCODE_FORWARD_DEL:
|
||||||
|
// This has to be handled here instead of in a keyboard shortcut, because
|
||||||
|
// keyboard shortcuts all have to be modified with the 'Ctrl' key.
|
||||||
|
if (mSelectionManager.hasSelection()) {
|
||||||
|
deleteDocuments(mSelectionManager.getSelection());
|
||||||
|
}
|
||||||
|
// Always handle the key, even if there was nothing to delete. This is a
|
||||||
|
// precaution to prevent other handlers from potentially picking up the event
|
||||||
|
// and triggering extra behaviours.
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user