X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/36d4f3d4655f02611a74ef6eb638222ee74677e1..901b6ac61e4a84d281e86b4989aa099801b28de7:/src/com/owncloud/android/operations/GetSharesOperation.java?ds=inline diff --git a/src/com/owncloud/android/operations/GetSharesOperation.java b/src/com/owncloud/android/operations/GetSharesOperation.java index 4e3441c9..c9cce406 100644 --- a/src/com/owncloud/android/operations/GetSharesOperation.java +++ b/src/com/owncloud/android/operations/GetSharesOperation.java @@ -1,5 +1,5 @@ /* ownCloud Android client application - * Copyright (C) 2012-2013 ownCloud Inc. + * Copyright (C) 2012-2014 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -17,15 +17,13 @@ package com.owncloud.android.operations; -import com.owncloud.android.datamodel.FileDataStorageManager; -import com.owncloud.android.datamodel.OCFile; -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.OCShare; -import com.owncloud.android.lib.operations.common.ShareType; -import com.owncloud.android.lib.operations.remote.GetRemoteSharesOperation; -import com.owncloud.android.lib.utils.FileUtils; +import java.util.ArrayList; + +import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.resources.shares.OCShare; +import com.owncloud.android.lib.resources.shares.GetRemoteSharesOperation; +import com.owncloud.android.operations.common.SyncOperation; import com.owncloud.android.utils.Log_OC; /** @@ -33,59 +31,31 @@ import com.owncloud.android.utils.Log_OC; * Save the data in Database * * @author masensio + * @author David A. Velasco */ -public class GetSharesOperation extends RemoteOperation { - - private static final String TAG = GetSharesOperation.class.getSimpleName(); - - private String mUrlServer; - protected FileDataStorageManager mStorageManager; - +public class GetSharesOperation extends SyncOperation { - public GetSharesOperation(String urlServer, FileDataStorageManager storageManager) { - mUrlServer = urlServer; - mStorageManager = storageManager; - } + private static final String TAG = GetSharesOperation.class.getSimpleName(); @Override protected RemoteOperationResult run(OwnCloudClient client) { - GetRemoteSharesOperation operation = new GetRemoteSharesOperation(mUrlServer); + GetRemoteSharesOperation operation = new GetRemoteSharesOperation(); RemoteOperationResult result = operation.execute(client); - + if (result.isSuccess()) { - - // Clean Share data in filelist table - mStorageManager.cleanShare(); - + // Update DB with the response Log_OC.d(TAG, "Share list size = " + result.getData().size()); + ArrayList shares = new ArrayList(); for(Object obj: result.getData()) { - saveShareDB((OCShare) obj); + shares.add((OCShare) obj); } + + getStorageManager().saveSharesDB(shares); } - - return result; - } - private void saveShareDB(OCShare shareFile) { - // Save share file - mStorageManager.saveShare(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); - } - } + return result; } }