X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/b9ef747a0be9e50d50b709474daf9dca47d60f5f..refs/heads/master:/src/com/owncloud/android/operations/RefreshFolderOperation.java diff --git a/src/com/owncloud/android/operations/RefreshFolderOperation.java b/src/com/owncloud/android/operations/RefreshFolderOperation.java index cf5bccd6..368833e5 100644 --- a/src/com/owncloud/android/operations/RefreshFolderOperation.java +++ b/src/com/owncloud/android/operations/RefreshFolderOperation.java @@ -187,6 +187,7 @@ public class RefreshFolderOperation extends RemoteOperation { if (OCFile.ROOT_PATH.equals(mLocalFolder.getRemotePath()) && !mSyncFullAccount) { updateOCVersion(client); + } result = checkForChanges(client); @@ -231,10 +232,24 @@ public class RefreshFolderOperation extends RemoteOperation { RemoteOperationResult result = update.execute(client); if (result.isSuccess()) { mIsShareSupported = update.getOCVersion().isSharedSupported(); + + // Update Capabilities for this account + if (update.getOCVersion().isVersionWithCapabilitiesAPI()) { + updateCapabilities(client); + } else { + Log_OC.d(TAG, "Capabilities API disabled"); + } + } + } + + private void updateCapabilities(OwnCloudClient client){ + GetCapabilitiesOperarion getCapabilities = new GetCapabilitiesOperarion(); + RemoteOperationResult result = getCapabilities.execute(mStorageManager,mContext); + if (!result.isSuccess()){ + Log_OC.w(TAG, "Update Capabilities unsuccessfully"); } } - private RemoteOperationResult checkForChanges(OwnCloudClient client) { mRemoteFolderChanged = true; RemoteOperationResult result = null; @@ -391,8 +406,9 @@ public class RefreshFolderOperation extends RemoteOperation { Log.d(TAG, "Image " + remoteFile.getFileName() + " updated on the server"); } updatedFile.setPublicLink(localFile.getPublicLink()); - updatedFile.setShareByLink(localFile.isShareByLink()); - updatedFile.setInConflict(localFile.isInConflict()); + updatedFile.setShareViaLink(localFile.isSharedViaLink()); + updatedFile.setShareWithSharee(localFile.isSharedWithSharee()); + updatedFile.setEtagInConflict(localFile.getEtagInConflict()); } else { // remote eTag will not be updated unless file CONTENTS are synchronized updatedFile.setEtag(""); @@ -456,12 +472,19 @@ public class RefreshFolderOperation extends RemoteOperation { } + /** + * Syncs the Share resources for the files contained in the folder refreshed (children, not deeper descendants). + * + * @param client Handler of a session with an OC server. + * @return The result of the remote operation retrieving the Share resources in the folder refreshed by + * the operation. + */ private RemoteOperationResult refreshSharesForFolder(OwnCloudClient client) { RemoteOperationResult result = null; // remote request GetRemoteSharesForFileOperation operation = - new GetRemoteSharesForFileOperation(mLocalFolder.getRemotePath(), false, true); + new GetRemoteSharesForFileOperation(mLocalFolder.getRemotePath(), true, true); result = operation.execute(client); if (result.isSuccess()) {