X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c68012235a0f16b12eba3ffb01bd373e57b4b59f..10e856c2e8e56e43647153faaee6e9e7ab4a3bcd:/src/com/owncloud/android/operations/UnshareLinkOperation.java diff --git a/src/com/owncloud/android/operations/UnshareLinkOperation.java b/src/com/owncloud/android/operations/UnshareLinkOperation.java index 6e273c87..2471e53c 100644 --- a/src/com/owncloud/android/operations/UnshareLinkOperation.java +++ b/src/com/owncloud/android/operations/UnshareLinkOperation.java @@ -23,6 +23,7 @@ import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.network.OwnCloudClient; import com.owncloud.android.lib.operations.common.OCShare; import com.owncloud.android.lib.operations.common.RemoteOperationResult; +import com.owncloud.android.lib.operations.common.ShareType; import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.operations.remote.ExistenceCheckRemoteOperation; import com.owncloud.android.lib.operations.remote.RemoveRemoteShareOperation; @@ -39,12 +40,12 @@ public class UnshareLinkOperation extends SyncOperation { private static final String TAG = UnshareLinkOperation.class.getSimpleName(); - private OCFile mFile; + private String mRemotePath; private Context mContext; - public UnshareLinkOperation(OCFile file, Context context) { - mFile = file; + public UnshareLinkOperation(String remotePath, Context context) { + mRemotePath = remotePath; mContext = context; } @@ -53,11 +54,7 @@ public class UnshareLinkOperation extends SyncOperation { RemoteOperationResult result = null; // Get Share for a file - String path = mFile.getRemotePath(); - if (mFile.isFolder()) { - path = path.substring(0, path.length()-1); // Remove last / - } - OCShare share = getStorageManager().getShareByPath(path); + OCShare share = getStorageManager().getFirstShareByPathAndType(mRemotePath, ShareType.PUBLIC_LINK); if (share != null) { RemoveRemoteShareOperation operation = new RemoveRemoteShareOperation((int) share.getIdRemoteShared()); @@ -66,16 +63,17 @@ public class UnshareLinkOperation extends SyncOperation { if (result.isSuccess() || result.getCode() == ResultCode.SHARE_NOT_FOUND) { Log_OC.d(TAG, "Share id = " + share.getIdRemoteShared() + " deleted"); - mFile.setShareByLink(false); - mFile.setPublicLink(""); - getStorageManager().saveFile(mFile); + OCFile file = getStorageManager().getFileByPath(mRemotePath); + file.setShareByLink(false); + file.setPublicLink(""); + getStorageManager().saveFile(file); getStorageManager().removeShare(share); if (result.getCode() == ResultCode.SHARE_NOT_FOUND) { - if (existsFile(client, mFile.getRemotePath())) { + if (existsFile(client, file.getRemotePath())) { result = new RemoteOperationResult(ResultCode.OK); } else { - getStorageManager().removeFile(mFile, true, true); + getStorageManager().removeFile(file, true, true); } } }