X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e2f73945571d8690901094f045c9b61d9aecefd0..0e4c56f3161cefc49c0eb91eea2a84a02e2775a3:/src/com/owncloud/android/operations/GetSharedFilesOperation.java diff --git a/src/com/owncloud/android/operations/GetSharedFilesOperation.java b/src/com/owncloud/android/operations/GetSharedFilesOperation.java index 43dff726..daa172b2 100644 --- a/src/com/owncloud/android/operations/GetSharedFilesOperation.java +++ b/src/com/owncloud/android/operations/GetSharedFilesOperation.java @@ -17,10 +17,19 @@ package com.owncloud.android.operations; +import java.util.ArrayList; + +import com.owncloud.android.datamodel.FileDataStorageManager; +import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.datamodel.OCShare; import com.owncloud.android.oc_framework.network.webdav.WebdavClient; import com.owncloud.android.oc_framework.operations.RemoteOperation; import com.owncloud.android.oc_framework.operations.RemoteOperationResult; +import com.owncloud.android.oc_framework.operations.ShareRemoteFile; +import com.owncloud.android.oc_framework.operations.ShareType; import com.owncloud.android.oc_framework.operations.remote.GetRemoteSharedFilesOperation; +import com.owncloud.android.oc_framework.utils.FileUtils; +import com.owncloud.android.utils.Log_OC; /** * Access to remote operation to get the share files/folders @@ -30,11 +39,16 @@ import com.owncloud.android.oc_framework.operations.remote.GetRemoteSharedFilesO */ public class GetSharedFilesOperation extends RemoteOperation { + + private static final String TAG = GetSharedFilesOperation.class.getSimpleName(); private String mUrlServer; + protected FileDataStorageManager mStorageManager; + - public GetSharedFilesOperation(String urlServer) { + public GetSharedFilesOperation(String urlServer, FileDataStorageManager storageManager) { mUrlServer = urlServer; + mStorageManager = storageManager; } @Override @@ -45,12 +59,36 @@ public class GetSharedFilesOperation extends RemoteOperation { if (result.isSuccess()) { // Update DB with the response - - } else { - + ArrayList shareRemoteFiles = operation.getSharedFiles(); + Log_OC.d(TAG, "Share list size = " + shareRemoteFiles.size()); + for (ShareRemoteFile remoteFile: shareRemoteFiles) { + OCShare shareFile = new OCShare(remoteFile); + saveShareFileInDB(shareFile); + } } return result; } + private void saveShareFileInDB(OCShare shareFile) { + // Save share file + mStorageManager.saveShareFile(shareFile); + + // Get the path + String path = shareFile.getPath(); + if (shareFile.isDirectory()) { + path = path + FileUtils.PATH_SEPARATOR; + } + + // Update OCFile with data from share: ShareByLink ¿and publicLink? + OCFile file = mStorageManager.getFileByPath(path); + if (file != null) { + if (shareFile.getShareType().equals(ShareType.PUBLIC_LINK)) { + file.setShareByLink(true); + mStorageManager.saveFile(file); + } + } + } + + }