/* 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,
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;
/**
* Save the data in Database
*
* @author masensio
+ * @author David A. Velasco
*/
-public class GetSharesOperation extends RemoteOperation {
-
- private static final String TAG = GetSharesOperation.class.getSimpleName();
-
- protected FileDataStorageManager mStorageManager;
-
+public class GetSharesOperation extends SyncOperation {
- public GetSharesOperation(FileDataStorageManager storageManager) {
- mStorageManager = storageManager;
- }
+ private static final String TAG = GetSharesOperation.class.getSimpleName();
@Override
protected RemoteOperationResult run(OwnCloudClient client) {
- GetRemoteSharesOperation operation = new GetRemoteSharesOperation(client.getBaseUri().toString());
+ GetRemoteSharesOperation operation = new GetRemoteSharesOperation();
RemoteOperationResult result = operation.execute(client);
-
+
if (result.isSuccess()) {
-
- // Clean Share data in filelist table
- mStorageManager.cleanShares();
-
+
// Update DB with the response
Log_OC.d(TAG, "Share list size = " + result.getData().size());
+ ArrayList<OCShare> shares = new ArrayList<OCShare>();
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;
}
}