X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8c6e0692938469495918abd40c4448a045733201..e901b609baa4dd5f681e2a5257c9e504997e3377:/src/com/owncloud/android/operations/GetSharesOperation.java diff --git a/src/com/owncloud/android/operations/GetSharesOperation.java b/src/com/owncloud/android/operations/GetSharesOperation.java index 97d49a49..d096788a 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,75 +17,45 @@ 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 com.owncloud.android.utils.Log_OC; +import java.util.ArrayList; + +import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.operations.RemoteOperationResult; +import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.lib.resources.shares.OCShare; +import com.owncloud.android.lib.resources.shares.GetRemoteSharesOperation; +import com.owncloud.android.operations.common.SyncOperation; /** * Access to remote operation to get the share files/folders * 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.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); - } - } + return result; } }