use of com.owncloud.android.datamodel.OCFile in project android by nextcloud.
the class FileDisplayActivity method requestMoveOperation.
/**
* Request the operation for moving the file/folder from one path to another
*
* @param data Intent received
*/
private void requestMoveOperation(Intent data) {
OCFile folderToMoveAt = data.getParcelableExtra(FolderPickerActivity.EXTRA_FOLDER);
ArrayList<OCFile> files = data.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
getFileOperationsHelper().moveFiles(files, folderToMoveAt);
}
use of com.owncloud.android.datamodel.OCFile in project android by nextcloud.
the class FileDisplayActivity method browseToRoot.
public void browseToRoot() {
OCFileListFragment listOfFiles = getListOfFilesFragment();
if (listOfFiles != null) {
// should never be null, indeed
OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
listOfFiles.listDirectory(root, MainApp.isOnlyOnDevice(), false);
setFile(listOfFiles.getCurrentFile());
startSyncFolderOperation(root, false);
}
cleanSecondFragment();
}
use of com.owncloud.android.datamodel.OCFile in project android by nextcloud.
the class FileDisplayActivity method requestUploadOfContentFromApps.
private void requestUploadOfContentFromApps(Intent contentIntent, int resultCode) {
ArrayList<Parcelable> streamsToUpload = new ArrayList<>();
if (contentIntent.getClipData() != null && contentIntent.getClipData().getItemCount() > 0) {
for (int i = 0; i < contentIntent.getClipData().getItemCount(); i++) {
streamsToUpload.add(contentIntent.getClipData().getItemAt(i).getUri());
}
} else {
streamsToUpload.add(contentIntent.getData());
}
int behaviour = (resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE) ? FileUploader.LOCAL_BEHAVIOUR_MOVE : FileUploader.LOCAL_BEHAVIOUR_COPY;
OCFile currentDir = getCurrentDir();
String remotePath = (currentDir != null) ? currentDir.getRemotePath() : OCFile.ROOT_PATH;
UriUploader uploader = new UriUploader(this, streamsToUpload, remotePath, getUser().orElseThrow(RuntimeException::new), behaviour, // Not show waiting dialog while file is being copied from private storage
false, // Not needed copy temp task listener
null);
uploader.uploadUris();
}
use of com.owncloud.android.datamodel.OCFile in project android by nextcloud.
the class OCFileListFragment method onFileActionChosen.
/**
* Start the appropriate action(s) on the currently selected files given menu selected by the user.
*
* @param item MenuItem selected by the user
* @param checkedFiles List of files selected by the user on which the action should be performed
* @return 'true' if the menu selection started any action, 'false' otherwise.
*/
public boolean onFileActionChosen(MenuItem item, Set<OCFile> checkedFiles) {
if (checkedFiles.isEmpty()) {
return false;
}
if (checkedFiles.size() == SINGLE_SELECTION) {
// / action only possible on a single file
OCFile singleFile = checkedFiles.iterator().next();
int itemId = item.getItemId();
if (itemId == R.id.action_send_share_file) {
mContainerActivity.getFileOperationsHelper().sendShareFile(singleFile);
return true;
} else if (itemId == R.id.action_open_file_with) {
mContainerActivity.getFileOperationsHelper().openFile(singleFile);
return true;
} else if (itemId == R.id.action_stream_media) {
mContainerActivity.getFileOperationsHelper().streamMediaFile(singleFile);
return true;
} else if (itemId == R.id.action_edit) {
// should not be necessary, as menu item is filtered, but better play safe
if (FileMenuFilter.isEditorAvailable(requireContext().getContentResolver(), accountManager.getUser(), singleFile.getMimeType())) {
mContainerActivity.getFileOperationsHelper().openFileWithTextEditor(singleFile, getContext());
} else {
mContainerActivity.getFileOperationsHelper().openFileAsRichDocument(singleFile, getContext());
}
return true;
} else if (itemId == R.id.action_rename_file) {
RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(singleFile);
dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
return true;
} else if (itemId == R.id.action_see_details) {
if (mActiveActionMode != null) {
mActiveActionMode.finish();
}
mContainerActivity.showDetails(singleFile);
mContainerActivity.showSortListGroup(false);
return true;
} else if (itemId == R.id.action_set_as_wallpaper) {
mContainerActivity.getFileOperationsHelper().setPictureAs(singleFile, getView());
return true;
} else if (itemId == R.id.action_encrypted) {
mContainerActivity.getFileOperationsHelper().toggleEncryption(singleFile, true);
return true;
} else if (itemId == R.id.action_unset_encrypted) {
mContainerActivity.getFileOperationsHelper().toggleEncryption(singleFile, false);
return true;
}
}
// / actions possible on a batch of files
int itemId = item.getItemId();
if (itemId == R.id.action_remove_file) {
RemoveFilesDialogFragment dialog = RemoveFilesDialogFragment.newInstance(new ArrayList<>(checkedFiles), mActiveActionMode);
dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
return true;
} else if (itemId == R.id.action_download_file || itemId == R.id.action_sync_file) {
syncAndCheckFiles(checkedFiles);
exitSelectionMode();
return true;
} else if (itemId == R.id.action_cancel_sync) {
((FileDisplayActivity) mContainerActivity).cancelTransference(checkedFiles);
return true;
} else if (itemId == R.id.action_favorite) {
mContainerActivity.getFileOperationsHelper().toggleFavoriteFiles(checkedFiles, true);
return true;
} else if (itemId == R.id.action_unset_favorite) {
mContainerActivity.getFileOperationsHelper().toggleFavoriteFiles(checkedFiles, false);
return true;
} else if (itemId == R.id.action_move) {
Intent action = new Intent(getActivity(), FolderPickerActivity.class);
action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, new ArrayList<>(checkedFiles));
action.putExtra(FolderPickerActivity.EXTRA_CURRENT_FOLDER, mFile);
action.putExtra(FolderPickerActivity.EXTRA_ACTION, FolderPickerActivity.MOVE);
getActivity().startActivityForResult(action, FileDisplayActivity.REQUEST_CODE__MOVE_FILES);
return true;
} else if (itemId == R.id.action_copy) {
Intent action = new Intent(getActivity(), FolderPickerActivity.class);
action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, new ArrayList<>(checkedFiles));
action.putExtra(FolderPickerActivity.EXTRA_CURRENT_FOLDER, mFile);
action.putExtra(FolderPickerActivity.EXTRA_ACTION, FolderPickerActivity.COPY);
getActivity().startActivityForResult(action, FileDisplayActivity.REQUEST_CODE__COPY_FILES);
return true;
} else if (itemId == R.id.action_select_all_action_menu) {
selectAllFiles(true);
return true;
} else if (itemId == R.id.action_deselect_all_action_menu) {
selectAllFiles(false);
return true;
} else if (itemId == R.id.action_send_file) {
mContainerActivity.getFileOperationsHelper().sendFiles(checkedFiles);
return true;
}
return false;
}
use of com.owncloud.android.datamodel.OCFile in project android by nextcloud.
the class OCFileListFragment method syncAndCheckFiles.
private void syncAndCheckFiles(Collection<OCFile> files) {
for (OCFile file : files) {
// Get the remaining space on device
long availableSpaceOnDevice = FileOperationsHelper.getAvailableSpaceOnDevice();
// Determine if space is enough to download the file, -1 available space if there in error while computing
boolean isSpaceEnough = true;
if (availableSpaceOnDevice >= 0) {
isSpaceEnough = checkIfEnoughSpace(availableSpaceOnDevice, file);
}
if (isSpaceEnough) {
mContainerActivity.getFileOperationsHelper().syncFile(file);
} else {
showSpaceErrorDialog(file, availableSpaceOnDevice);
}
}
}
Aggregations