Przeglądaj źródła

use RestoreFileVersionRemoteOperation

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 6 lat temu
rodzic
commit
bbd1f96f76

+ 0 - 92
src/main/java/com/owncloud/android/operations/RestoreFileVersionOperation.java

@@ -1,92 +0,0 @@
-/*
- * Nextcloud Android client application
- *
- * @author Tobias Kaminsky
- * Copyright (C) 2018 Tobias Kaminsky
- * Copyright (C) 2018 Nextcloud GmbH.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * 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 <https://www.gnu.org/licenses/>.
- */
-
-package com.owncloud.android.operations;
-
-import android.util.Log;
-
-import com.owncloud.android.lib.common.OwnCloudClient;
-import com.owncloud.android.lib.common.operations.RemoteOperationResult;
-import com.owncloud.android.operations.common.SyncOperation;
-
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.jackrabbit.webdav.client.methods.MoveMethod;
-
-import java.io.IOException;
-
-
-/**
- * Restore a {@link com.owncloud.android.lib.resources.files.FileVersion}.
- */
-public class RestoreFileVersionOperation extends SyncOperation {
-
-    private static final String TAG = RestoreFileVersionOperation.class.getSimpleName();
-    private static final int RESTORE_READ_TIMEOUT = 30000;
-    private static final int RESTORE_CONNECTION_TIMEOUT = 5000;
-
-    private String fileId;
-    private String fileName;
-    private String userId;
-
-    /**
-     * Constructor
-     *
-     * @param fileId fileId
-     * @param fileName version date in unixtime
-     * @param userId userId to access correct dav endpoint
-     */
-    public RestoreFileVersionOperation(String fileId, String fileName, String userId) {
-        this.fileId = fileId;
-        this.fileName = fileName;
-        this.userId = userId;
-    }
-
-    /**
-     * Performs the operation.
-     *
-     * @param client Client object to communicate with the remote ownCloud server.
-     */
-    @Override
-    protected RemoteOperationResult run(OwnCloudClient client) {
-
-        RemoteOperationResult result;
-        try {
-            String source = client.getNewWebdavUri() + "/versions/" + userId + "/versions/" + fileId + "/" + fileName;
-            String target = client.getNewWebdavUri() + "/versions/" + userId + "/restore/" + fileId;
-
-            MoveMethod move = new MoveMethod(source, target, true);
-            int status = client.executeMethod(move, RESTORE_READ_TIMEOUT, RESTORE_CONNECTION_TIMEOUT);
-
-            result = new RemoteOperationResult(isSuccess(status), move);
-
-            client.exhaustResponse(move.getResponseBodyAsStream());
-        } catch (IOException e) {
-            result = new RemoteOperationResult(e);
-            Log.e(TAG, "Restore file version with id " + fileId + " failed: " + result.getLogMessage(), e);
-        }
-
-        return result;
-    }
-
-    private boolean isSuccess(int status) {
-        return status == HttpStatus.SC_CREATED || status == HttpStatus.SC_NO_CONTENT;
-    }
-}

+ 3 - 3
src/main/java/com/owncloud/android/services/OperationsService.java

@@ -52,6 +52,7 @@ import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation;
 import com.owncloud.android.lib.resources.files.model.FileVersion;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
@@ -66,7 +67,6 @@ import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.OAuth2GetAccessToken;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
-import com.owncloud.android.operations.RestoreFileVersionOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
 import com.owncloud.android.operations.UnshareOperation;
@@ -708,8 +708,8 @@ public class OperationsService extends Service {
                     case ACTION_RESTORE_VERSION:
                         FileVersion fileVersion = operationIntent.getParcelableExtra(EXTRA_FILE_VERSION);
                         String userId = operationIntent.getStringExtra(EXTRA_USER_ID);
-                        operation = new RestoreFileVersionOperation(fileVersion.getRemoteId(),
-                                fileVersion.getFileName(), userId);
+                        operation = new RestoreFileVersionRemoteOperation(fileVersion.getRemoteId(),
+                                                                          fileVersion.getFileName(), userId);
                         break;
 
                     default:

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -84,6 +84,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.files.RestoreFileVersionRemoteOperation;
 import com.owncloud.android.lib.resources.shares.OCShare;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
@@ -97,7 +98,6 @@ import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RefreshFolderOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
-import com.owncloud.android.operations.RestoreFileVersionOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.UnshareOperation;
 import com.owncloud.android.operations.UpdateNoteForShareOperation;
@@ -1779,7 +1779,7 @@ public class FileDisplayActivity extends HookActivity
             onUpdateShareInformation(result, R.string.updating_share_failed);
         } else if (operation instanceof UnshareOperation) {
             onUpdateShareInformation(result, R.string.unsharing_failed);
-        } else if (operation instanceof RestoreFileVersionOperation) {
+        } else if (operation instanceof RestoreFileVersionRemoteOperation) {
             onRestoreFileVersionOperationFinish(result);
         } else if (operation instanceof UpdateNoteForShareOperation) {
             onUpdateNoteForShareOperationFinish(result);