Search in sources :

Example 66 with OCFile

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);
}
Also used : OCFile(com.owncloud.android.datamodel.OCFile)

Example 67 with OCFile

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();
}
Also used : OCFile(com.owncloud.android.datamodel.OCFile) OCFileListFragment(com.owncloud.android.ui.fragment.OCFileListFragment)

Example 68 with OCFile

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();
}
Also used : OCFile(com.owncloud.android.datamodel.OCFile) UriUploader(com.owncloud.android.ui.helpers.UriUploader) ArrayList(java.util.ArrayList) Parcelable(android.os.Parcelable) SuppressLint(android.annotation.SuppressLint)

Example 69 with OCFile

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;
}
Also used : OCFile(com.owncloud.android.datamodel.OCFile) FileDisplayActivity(com.owncloud.android.ui.activity.FileDisplayActivity) FolderPickerActivity(com.owncloud.android.ui.activity.FolderPickerActivity) RenameFileDialogFragment(com.owncloud.android.ui.dialog.RenameFileDialogFragment) RemoveFilesDialogFragment(com.owncloud.android.ui.dialog.RemoveFilesDialogFragment) ArrayList(java.util.ArrayList) Intent(android.content.Intent)

Example 70 with OCFile

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);
        }
    }
}
Also used : OCFile(com.owncloud.android.datamodel.OCFile)

Aggregations

OCFile (com.owncloud.android.datamodel.OCFile)307 File (java.io.File)56 Test (org.junit.Test)44 FileDataStorageManager (com.owncloud.android.datamodel.FileDataStorageManager)43 RemoteOperationResult (com.owncloud.android.lib.common.operations.RemoteOperationResult)40 ArrayList (java.util.ArrayList)28 Intent (android.content.Intent)27 OCFileListFragment (com.owncloud.android.ui.fragment.OCFileListFragment)22 OCUpload (com.owncloud.android.db.OCUpload)20 ScreenshotTest (com.owncloud.android.utils.ScreenshotTest)20 FileFragment (com.owncloud.android.ui.fragment.FileFragment)19 User (com.nextcloud.client.account.User)17 RemoteFile (com.owncloud.android.lib.resources.files.model.RemoteFile)16 Bundle (android.os.Bundle)13 Fragment (androidx.fragment.app.Fragment)12 RemoteFile (com.owncloud.android.lib.resources.files.RemoteFile)12 FileDetailFragment (com.owncloud.android.ui.fragment.FileDetailFragment)12 Account (android.accounts.Account)11 SuppressLint (android.annotation.SuppressLint)11 PreviewTextFragment (com.owncloud.android.ui.preview.PreviewTextFragment)11