123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * ownCloud Android client application
- *
- * @author David A. Velasco
- * Copyright (C) 2015 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,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
- package com.owncloud.android.operations;
- import com.owncloud.android.lib.common.OwnCloudClient;
- import com.owncloud.android.lib.common.operations.RemoteOperation;
- import com.owncloud.android.lib.common.operations.RemoteOperationResult;
- import com.owncloud.android.lib.resources.shares.GetShareRemoteOperation;
- import com.owncloud.android.lib.resources.shares.OCShare;
- import com.owncloud.android.lib.resources.shares.UpdateShareRemoteOperation;
- import com.owncloud.android.operations.common.SyncOperation;
- /**
- * Updates an existing public share for a given file
- */
- public class UpdateShareViaLinkOperation extends SyncOperation {
- private String password;
- /**
- * Enable upload permissions to update in Share resource.
- */
- private boolean publicUpload;
- private Boolean hideFileDownload;
- private long expirationDateInMillis;
- private long shareId;
- private String label;
- public UpdateShareViaLinkOperation(long shareId) {
- expirationDateInMillis = 0;
- this.shareId = shareId;
- }
- @Override
- protected RemoteOperationResult run(OwnCloudClient client) {
- OCShare publicShare = getStorageManager().getShareById(shareId);
- UpdateShareRemoteOperation updateOp = new UpdateShareRemoteOperation(publicShare.getRemoteId());
- updateOp.setPassword(password);
- updateOp.setExpirationDate(expirationDateInMillis);
- updateOp.setHideFileDownload(hideFileDownload);
- updateOp.setLabel(label);
- RemoteOperationResult result = updateOp.execute(client);
- if (result.isSuccess()) {
- // Retrieve updated share / save directly with password? -> no; the password is not to be saved
- RemoteOperation getShareOp = new GetShareRemoteOperation(publicShare.getRemoteId());
- result = getShareOp.execute(client);
- if (result.isSuccess()) {
- OCShare share = (OCShare) result.getData().get(0);
- getStorageManager().saveShare(share);
- }
- }
- return result;
- }
- public String getPassword() {
- return this.password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public void setPublicUpload(boolean publicUpload) {
- this.publicUpload = publicUpload;
- }
- public void setHideFileDownload(Boolean hideFileDownload) {
- this.hideFileDownload = hideFileDownload;
- }
- public void setExpirationDateInMillis(long expirationDateInMillis) {
- this.expirationDateInMillis = expirationDateInMillis;
- }
- public void setLabel(String label) {
- this.label = label;
- }
- }
|