diff options
author | Álvaro Brey <alvaro.brey@nextcloud.com> | 2022-07-04 19:49:01 +0300 |
---|---|---|
committer | Álvaro Brey <alvaro.brey@nextcloud.com> | 2022-07-04 19:49:01 +0300 |
commit | 9cf10d25879a754adfd98b1bf6d25a09a9b1acbc (patch) | |
tree | 3d47c6e175dc26f012d7ebfac137e297b9fea4ef | |
parent | d002e13fa83e286a50af68367a1188d8da31a66b (diff) |
OCFileListFragment: deduplicate copy/move codefix/copy-many-files
Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
-rw-r--r-- | app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java index 01be966206..7f2bd4e28d 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -1190,26 +1190,10 @@ public class OCFileListFragment extends ExtendedListFragment implements mContainerActivity.getFileOperationsHelper().toggleFavoriteFiles(checkedFiles, false); return true; } else if (itemId == R.id.action_move) { - Intent action = new Intent(getActivity(), FolderPickerActivity.class); - final ArrayList<String> paths = new ArrayList<>(checkedFiles.size()); - for (OCFile file : checkedFiles) { - paths.add(file.getRemotePath()); - } - action.putStringArrayListExtra(FolderPickerActivity.EXTRA_FILE_PATHS, paths); - action.putExtra(FolderPickerActivity.EXTRA_CURRENT_FOLDER, mFile); - action.putExtra(FolderPickerActivity.EXTRA_ACTION, FolderPickerActivity.MOVE); - getActivity().startActivityForResult(action, FileDisplayActivity.REQUEST_CODE__MOVE_FILES); + pickFolderForMoveOrCopy(FolderPickerActivity.MOVE, checkedFiles); return true; } else if (itemId == R.id.action_copy) { - Intent action = new Intent(getActivity(), FolderPickerActivity.class); - final ArrayList<String> paths = new ArrayList<>(checkedFiles.size()); - for (OCFile file : checkedFiles) { - paths.add(file.getRemotePath()); - } - action.putStringArrayListExtra(FolderPickerActivity.EXTRA_FILE_PATHS, paths); - action.putExtra(FolderPickerActivity.EXTRA_CURRENT_FOLDER, mFile); - action.putExtra(FolderPickerActivity.EXTRA_ACTION, FolderPickerActivity.COPY); - getActivity().startActivityForResult(action, FileDisplayActivity.REQUEST_CODE__COPY_FILES); + pickFolderForMoveOrCopy(FolderPickerActivity.COPY, checkedFiles); return true; } else if (itemId == R.id.action_select_all_action_menu) { selectAllFiles(true); @@ -1227,9 +1211,33 @@ public class OCFileListFragment extends ExtendedListFragment implements return false; } + private void pickFolderForMoveOrCopy(final String extraAction, final Set<OCFile> checkedFiles) { + int requestCode; + switch (extraAction) { + case FolderPickerActivity.MOVE: + requestCode = FileDisplayActivity.REQUEST_CODE__MOVE_FILES; + break; + case FolderPickerActivity.COPY: + requestCode = FileDisplayActivity.REQUEST_CODE__COPY_FILES; + break; + default: + throw new IllegalArgumentException("Unknown extra action: " + extraAction); + } + + final Intent action = new Intent(getActivity(), FolderPickerActivity.class); + final ArrayList<String> paths = new ArrayList<>(checkedFiles.size()); + for (OCFile file : checkedFiles) { + paths.add(file.getRemotePath()); + } + action.putStringArrayListExtra(FolderPickerActivity.EXTRA_FILE_PATHS, paths); + action.putExtra(FolderPickerActivity.EXTRA_CURRENT_FOLDER, mFile); + action.putExtra(FolderPickerActivity.EXTRA_ACTION, extraAction); + getActivity().startActivityForResult(action, requestCode); + } + + /** - * Use this to query the {@link OCFile} that is currently - * being displayed by this fragment + * Use this to query the {@link OCFile} that is currently being displayed by this fragment * * @return The currently viewed OCFile */ |