From 4849be5daa060a17f4efaf8f80b93ff3205f9386 Mon Sep 17 00:00:00 2001 From: davigonz Date: Wed, 17 Apr 2019 10:24:50 +0200 Subject: [PATCH] Modify remote operations to create or update shares --- .../shares/CreateRemoteShareOperation.kt | 12 ++++---- .../lib/resources/shares/RemoteShare.kt | 3 +- .../shares/UpdateRemoteShareOperation.kt | 30 ++++++++----------- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.kt index 3f7fd18e..1decdf89 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/CreateRemoteShareOperation.kt @@ -65,8 +65,7 @@ import java.util.Locale * To obtain combinations, add the desired values together. * For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27. */ -class CreateRemoteShareOperation - ( +class CreateRemoteShareOperation( private val remoteFilePath: String, private val shareType: ShareType, private val shareWith: String, @@ -107,10 +106,10 @@ class CreateRemoteShareOperation formBodyBuilder.add(PARAM_EXPIRATION_DATE, formattedExpirationDate) } - if (publicUpload == true) { + if (publicUpload) { formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, publicUpload.toString()) } - if (!password.isNullOrEmpty()) { + if (password.isNotEmpty()) { formBodyBuilder.add(PARAM_PASSWORD, password) } if (RemoteShare.DEFAULT_PERMISSION != permissions) { @@ -126,7 +125,7 @@ class CreateRemoteShareOperation postMethod.setRequestBody(formBodyBuilder.build()) postMethod.setRequestHeader(HttpConstants.CONTENT_TYPE_HEADER, HttpConstants.CONTENT_TYPE_URLENCODED_UTF8) - postMethod.addRequestHeader(RemoteOperation.OCS_API_HEADER, RemoteOperation.OCS_API_HEADER_VALUE) + postMethod.addRequestHeader(OCS_API_HEADER, OCS_API_HEADER_VALUE) val status = client.executeHttpMethod(postMethod) @@ -141,7 +140,6 @@ class CreateRemoteShareOperation result = parser.parse(postMethod.responseBodyAsString) if (result.isSuccess && retrieveShareDetails) { - // TODO Use executeHttpMethod // retrieve more info - POST only returns the index of the new share val emptyShare = result.data.shares[0] @@ -178,4 +176,4 @@ class CreateRemoteShareOperation private const val PARAM_PERMISSIONS = "permissions" private const val FORMAT_EXPIRATION_DATE = "yyyy-MM-dd" } -} \ No newline at end of file +} diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt index a4347b63..13eac361 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/RemoteShare.kt @@ -49,7 +49,7 @@ class RemoteShare : Parcelable, Serializable { var fileSource: Long = 0 var itemSource: Long = 0 var shareType: ShareType? = null - var permissions: Int = INIT_PERMISSION + var permissions: Int = DEFAULT_PERMISSION var sharedDate: Long = INIT_SHARED_DATE var expirationDate: Long = INIT_EXPIRATION_DATE_IN_MILLIS var isFolder: Boolean = false @@ -156,7 +156,6 @@ class RemoteShare : Parcelable, Serializable { private val TAG = RemoteShare::class.java.simpleName - const val INIT_PERMISSION = 0 const val DEFAULT_PERMISSION = -1 const val READ_PERMISSION_FLAG = 1 const val UPDATE_PERMISSION_FLAG = 2 diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt index 24f283c2..f1d30d70 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt @@ -31,7 +31,7 @@ import com.owncloud.android.lib.common.http.methods.nonwebdav.PutMethod 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.shares.RemoteShare.Companion.INIT_PERMISSION +import com.owncloud.android.lib.resources.shares.RemoteShare.Companion.DEFAULT_PERMISSION import okhttp3.FormBody import java.net.URL import java.text.SimpleDateFormat @@ -51,11 +51,14 @@ import java.util.Locale class UpdateRemoteShareOperation /** * Constructor. No update is initialized by default, need to be applied with setters below. - * - * @param remoteId Identifier of the share to update. */ - (private val remoteId: Long) : RemoteOperation() { + ( + /** + * @param remoteId Identifier of the share to update. + */ + private val remoteId: Long +) : RemoteOperation() { /** * Password to update in Share resource. * @@ -81,7 +84,7 @@ class UpdateRemoteShareOperation * @param permissions Permissions to set to the target share. * Values <= 0 result in no update applied to the permissions. */ - var permissions: Int = INIT_PERMISSION + var permissions: Int = DEFAULT_PERMISSION /** * Enable upload permissions to update in Share resource. @@ -90,6 +93,7 @@ class UpdateRemoteShareOperation * Null results in no update applied to the upload permission. */ var publicUpload: Boolean? = null + /** * Name to update in Share resource. Ignored by servers previous to version 10.0.0 * @@ -99,13 +103,6 @@ class UpdateRemoteShareOperation */ var name: String? = null - init { - password = null // no update - expirationDateInMillis = INITIAL_EXPIRATION_DATE_IN_MILLIS // no update - publicUpload = null - permissions = RemoteShare.DEFAULT_PERMISSION - } - override fun run(client: OwnCloudClient): RemoteOperationResult { var result: RemoteOperationResult @@ -114,7 +111,7 @@ class UpdateRemoteShareOperation // Parameters to update if (name != null) { - formBodyBuilder.add(PARAM_NAME, name!!) + formBodyBuilder.add(PARAM_NAME, name) } if (expirationDateInMillis < INITIAL_EXPIRATION_DATE_IN_MILLIS) { @@ -136,7 +133,7 @@ class UpdateRemoteShareOperation // IMPORTANT: permissions parameter needs to be updated after mPublicUpload parameter, // otherwise they would be set always as 1 (READ) in the server when mPublicUpload was updated - if (permissions > INIT_PERMISSION) { + if (permissions > DEFAULT_PERMISSION) { // set permissions formBodyBuilder.add(PARAM_PERMISSIONS, permissions.toString()) } @@ -179,7 +176,6 @@ class UpdateRemoteShareOperation private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK companion object { - private val TAG = GetRemoteShareOperation::class.java.simpleName private const val PARAM_NAME = "name" @@ -191,6 +187,6 @@ class UpdateRemoteShareOperation private const val ENTITY_CONTENT_TYPE = "application/x-www-form-urlencoded" private const val ENTITY_CHARSET = "UTF-8" - private const val INITIAL_EXPIRATION_DATE_IN_MILLIS : Long = 0 + private const val INITIAL_EXPIRATION_DATE_IN_MILLIS: Long = 0 } -} \ No newline at end of file +}