diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperation.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperation.java index 9bcdd8f2..9f009bbd 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperation.java +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperation.java @@ -192,7 +192,7 @@ public abstract class RemoteOperation implements Runnable { /** * Synchronously executes the remote operation - *

+ * * Do not call this method from the main thread. * * @param client Client object to reach an ownCloud server during the execution of diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationDeferred.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationHandler.kt similarity index 93% rename from owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationDeferred.kt rename to owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationHandler.kt index 9ffe5df6..6fef26cc 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationDeferred.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/operations/RemoteOperationHandler.kt @@ -20,14 +20,22 @@ package com.owncloud.android.lib.common.operations suspend fun awaitToRemoteOperationResult(remoteOperation: suspend () -> RemoteOperationResult): T { + remoteOperation.invoke().also { + return handleRemoteOperationResult(it) + } +} - val remoteOperationResult = remoteOperation.invoke() +fun waitForRemoteOperationResult(remoteOperation: () -> RemoteOperationResult): T { + remoteOperation.invoke().also { + return handleRemoteOperationResult(it) + } +} +private fun handleRemoteOperationResult(remoteOperationResult: RemoteOperationResult): T { if (remoteOperationResult.isSuccess) { return remoteOperationResult.data } - // Errors when (remoteOperationResult.code) { RemoteOperationResult.ResultCode.UNHANDLED_HTTP_CODE -> throw Exception() RemoteOperationResult.ResultCode.UNAUTHORIZED -> throw Exception()