X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/0368e8fa547b26afabd9e80de68a3760cf21bdc8..388fdd2265b24b78808d1e51a994cc543d2a43c8:/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 426da31e..174ebbc0 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 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.remote.GetRemoteSharedFilesOperation; +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.lib.network.OwnCloudClient; +import com.owncloud.android.lib.operations.common.RemoteOperation; +import com.owncloud.android.lib.operations.common.RemoteOperationResult; +import com.owncloud.android.lib.operations.common.ShareRemoteFile; +import com.owncloud.android.lib.operations.common.ShareType; +import com.owncloud.android.lib.operations.remote.GetRemoteSharedFilesOperation; +import com.owncloud.android.lib.utils.FileUtils; +import com.owncloud.android.utils.Log_OC; /** * Access to remote operation to get the share files/folders @@ -30,23 +39,57 @@ 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() { - // TODO Auto-generated constructor stub + public GetSharedFilesOperation(String urlServer, FileDataStorageManager storageManager) { + mUrlServer = urlServer; + mStorageManager = storageManager; } @Override - protected RemoteOperationResult run(WebdavClient client) { - GetRemoteSharedFilesOperation operation = new GetRemoteSharedFilesOperation(); + protected RemoteOperationResult run(OwnCloudClient client) { + GetRemoteSharedFilesOperation operation = new GetRemoteSharedFilesOperation(mUrlServer); RemoteOperationResult result = operation.execute(client); if (result.isSuccess()) { - } else { - + // Clean Share data in filelist table + mStorageManager.cleanShareFile(); + // Update DB with the response + 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 null; + 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); + } + } } }