Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit9cf10d25879a754adfd98b1bf6d25a09a9b1acbc (patch)
tree3d47c6e175dc26f012d7ebfac137e297b9fea4ef
parentd002e13fa83e286a50af68367a1188d8da31a66b (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.java48
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
*/