use of com.owncloud.android.ui.fragment.FileDetailFragment in project android by nextcloud.
the class FileDisplayActivity method refreshDetailsFragmentIfVisible.
protected void refreshDetailsFragmentIfVisible(String downloadEvent, String downloadedRemotePath, boolean success) {
Fragment leftFragment = getLeftFragment();
if (leftFragment instanceof FileDetailFragment) {
boolean waitedPreview = mWaitingToPreview != null && mWaitingToPreview.getRemotePath().equals(downloadedRemotePath);
FileDetailFragment detailsFragment = (FileDetailFragment) leftFragment;
OCFile fileInFragment = detailsFragment.getFile();
if (fileInFragment != null && !downloadedRemotePath.equals(fileInFragment.getRemotePath())) {
// the user browsed to other file ; forget the automatic preview
mWaitingToPreview = null;
} else if (downloadEvent.equals(FileDownloader.getDownloadAddedMessage())) {
// grant that the right panel updates the progress bar
detailsFragment.listenForTransferProgress();
detailsFragment.updateFileDetails(true, false);
} else if (downloadEvent.equals(FileDownloader.getDownloadFinishMessage())) {
// update the right panel
boolean detailsFragmentChanged = false;
if (waitedPreview) {
if (success) {
// update the file from database, for the local storage path
mWaitingToPreview = getStorageManager().getFileById(mWaitingToPreview.getFileId());
if (PreviewMediaFragment.canBePreviewed(mWaitingToPreview)) {
startMediaPreview(mWaitingToPreview, 0, true, true, true);
detailsFragmentChanged = true;
} else if (MimeTypeUtil.isVCard(mWaitingToPreview.getMimeType())) {
startContactListFragment(mWaitingToPreview);
detailsFragmentChanged = true;
} else if (PreviewTextFileFragment.canBePreviewed(mWaitingToPreview)) {
startTextPreview(mWaitingToPreview, true);
detailsFragmentChanged = true;
} else if (MimeTypeUtil.isPDF(mWaitingToPreview)) {
startPdfPreview(mWaitingToPreview);
detailsFragmentChanged = true;
} else {
getFileOperationsHelper().openFile(mWaitingToPreview);
}
}
mWaitingToPreview = null;
}
if (!detailsFragmentChanged) {
detailsFragment.updateFileDetails(false, success);
}
}
}
}
use of com.owncloud.android.ui.fragment.FileDetailFragment in project android by nextcloud.
the class FileDisplayActivity method onTransferStateChanged.
/**
* {@inheritDoc}
*/
@Override
public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) {
updateListOfFilesFragment(false);
Fragment leftFragment = getLeftFragment();
Optional<User> optionalUser = getUser();
if (leftFragment instanceof FileDetailFragment && file.equals(((FileDetailFragment) leftFragment).getFile()) && optionalUser.isPresent()) {
final User currentUser = optionalUser.get();
if (downloading || uploading) {
((FileDetailFragment) leftFragment).updateFileDetails(file, currentUser);
} else {
if (!file.fileExists()) {
cleanSecondFragment();
} else {
((FileDetailFragment) leftFragment).updateFileDetails(false, true);
}
}
}
}
use of com.owncloud.android.ui.fragment.FileDetailFragment in project android by owncloud.
the class FileDisplayActivity method startSyncThenOpen.
/**
* Requests the synchronization of the received {@link OCFile},
* updates the UI to monitor the progress and prepares the activity
* to preview or open the file when the download finishes.
*
* @param file {@link OCFile} to sync and open.
*/
public void startSyncThenOpen(OCFile file) {
FileDetailFragment detailFragment = FileDetailFragment.newInstance(file, getAccount());
setSecondFragment(detailFragment);
mWaitingToPreview = file;
getFileOperationsHelper().syncFile(file);
updateFragmentsVisibility(true);
updateActionBarTitleAndHomeButton(file);
setFile(file);
}
use of com.owncloud.android.ui.fragment.FileDetailFragment in project android by nextcloud.
the class FileDisplayActivity method refreshSecondFragment.
protected void refreshSecondFragment(String downloadEvent, String downloadedRemotePath, boolean success) {
FileFragment secondFragment = getSecondFragment();
boolean waitedPreview = (mWaitingToPreview != null && mWaitingToPreview.getRemotePath().equals(downloadedRemotePath));
if (secondFragment instanceof FileDetailFragment) {
FileDetailFragment detailsFragment = (FileDetailFragment) secondFragment;
OCFile fileInFragment = detailsFragment.getFile();
if (fileInFragment != null && !downloadedRemotePath.equals(fileInFragment.getRemotePath())) {
// the user browsed to other file ; forget the automatic preview
mWaitingToPreview = null;
} else if (downloadEvent.equals(FileDownloader.getDownloadAddedMessage())) {
// grant that the right panel updates the progress bar
detailsFragment.listenForTransferProgress();
detailsFragment.updateFileDetails(true, false);
} else if (downloadEvent.equals(FileDownloader.getDownloadFinishMessage())) {
// update the right panel
boolean detailsFragmentChanged = false;
if (waitedPreview) {
if (success) {
mWaitingToPreview = getStorageManager().getFileById(// update the file from database,
mWaitingToPreview.getFileId());
// for the local storage path
if (PreviewMediaFragment.canBePreviewed(mWaitingToPreview)) {
startMediaPreview(mWaitingToPreview, 0, true, true);
detailsFragmentChanged = true;
} else if (MimeTypeUtil.isVCard(mWaitingToPreview.getMimetype())) {
startContactListFragment(mWaitingToPreview);
detailsFragmentChanged = true;
} else if (PreviewTextFragment.canBePreviewed(mWaitingToPreview)) {
startTextPreview(mWaitingToPreview, true);
detailsFragmentChanged = true;
} else {
getFileOperationsHelper().openFile(mWaitingToPreview);
}
}
mWaitingToPreview = null;
}
if (!detailsFragmentChanged) {
detailsFragment.updateFileDetails(false, (success));
}
}
}
}
use of com.owncloud.android.ui.fragment.FileDetailFragment in project android by nextcloud.
the class FileDisplayActivity method onRenameFileOperationFinish.
/**
* Updates the view associated to the activity after the finish of an operation trying to rename a file.
*
* @param operation Renaming operation performed.
* @param result Result of the renaming.
*/
private void onRenameFileOperationFinish(RenameFileOperation operation, RemoteOperationResult result) {
Optional<User> optionalUser = getUser();
OCFile renamedFile = operation.getFile();
if (result.isSuccess() && optionalUser.isPresent()) {
final User currentUser = optionalUser.get();
Fragment leftFragment = getLeftFragment();
if (leftFragment instanceof FileFragment) {
final FileFragment fileFragment = (FileFragment) leftFragment;
if (fileFragment instanceof FileDetailFragment && renamedFile.equals(fileFragment.getFile())) {
((FileDetailFragment) fileFragment).updateFileDetails(renamedFile, currentUser);
showDetails(renamedFile);
} else if (fileFragment instanceof PreviewMediaFragment && renamedFile.equals(fileFragment.getFile())) {
((PreviewMediaFragment) fileFragment).updateFile(renamedFile);
if (PreviewMediaFragment.canBePreviewed(renamedFile)) {
long position = ((PreviewMediaFragment) fileFragment).getPosition();
startMediaPreview(renamedFile, position, true, true, true);
} else {
getFileOperationsHelper().openFile(renamedFile);
}
} else if (fileFragment instanceof PreviewTextFragment && renamedFile.equals(fileFragment.getFile())) {
((PreviewTextFileFragment) fileFragment).updateFile(renamedFile);
if (PreviewTextFileFragment.canBePreviewed(renamedFile)) {
startTextPreview(renamedFile, true);
} else {
getFileOperationsHelper().openFile(renamedFile);
}
}
}
OCFile file = getStorageManager().getFileById(renamedFile.getParentId());
if (file != null && file.equals(getCurrentDir())) {
updateListOfFilesFragment(false);
}
} else {
DisplayUtils.showSnackMessage(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()));
if (result.isSslRecoverableException()) {
mLastSslUntrustedServerResult = result;
showUntrustedCertDialog(mLastSslUntrustedServerResult);
}
}
}
Aggregations