1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Apply code review changes

This commit is contained in:
davigonz 2019-03-05 15:59:34 +01:00
parent 261e7a762d
commit af6b18e042
6 changed files with 153 additions and 279 deletions

View File

@ -68,90 +68,27 @@ class CreateRemoteShareOperation
* For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
*/
(
private val mRemoteFilePath: String,
private val mShareType: ShareType,
private val mShareWith: String,
/**
* Upload permissions for the public link (only folders)
*/
private var mPublicUpload: Boolean?,
/**
* Password to set for the public link
*/
private var mPassword: String?,
/**
* Access permissions for the file bound to the share
*/
private var mPermissions: Int
private val remoteFilePath: String,
private val shareType: ShareType,
private val shareWith: String,
var publicUpload: Boolean?, // Upload permissions for the public link (only folders)
var password: String?, // Password to set for the public link
var permissions: Int // Access permissions for the file bound to the share
) : RemoteOperation<ShareParserResult>() {
private var mGetShareDetails: Boolean = false
var getShareDetails: Boolean = false
/**
* Name to set for the public link
*/
private var mName = ""
var name = ""
/**
* Expiration date to set for the public link
*/
private var mExpirationDateInMillis: Long = 0
var expirationDateInMillis: Long = INITIAL_EXPIRATION_DATE_IN_MILLIS
init {
mGetShareDetails = false // defaults to false for backwards compatibility
}
/**
* Set name to create in Share resource. Ignored by servers previous to version 10.0.0
*
* @param name Name to set to the target share.
* Null or empty string result in no value set for the name.
*/
fun setName(name: String?) {
this.mName = name ?: ""
}
/**
* Set password to create in Share resource.
*
* @param password Password to set to the target share.
* Null or empty string result in no value set for the password.
*/
fun setPassword(password: String) {
mPassword = password
}
/**
* Set expiration date to create in Share resource.
*
* @param expirationDateInMillis Expiration date to set to the target share.
* Zero or negative value results in no value sent for expiration date.
*/
fun setExpirationDate(expirationDateInMillis: Long) {
mExpirationDateInMillis = expirationDateInMillis
}
/**
* Set permissions to create in Share resource.
*
* @param permissions Permissions to set to the target share.
* Values <= 0 result in value set to the permissions.
*/
fun setPermissions(permissions: Int) {
mPermissions = permissions
}
/**
* * Enable upload permissions to create in Share resource.
* *
* * @param publicUpload Upload permission to set to the target share.
* * Null results in no update applied to the upload permission.
*/
fun setPublicUpload(publicUpload: Boolean?) {
mPublicUpload = publicUpload
}
fun setGetShareDetails(set: Boolean) {
mGetShareDetails = set
getShareDetails = false // defaults to false for backwards compatibility
}
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
@ -159,30 +96,30 @@ class CreateRemoteShareOperation
try {
val formBodyBuilder = FormBody.Builder()
.add(PARAM_PATH, mRemoteFilePath)
.add(PARAM_SHARE_TYPE, Integer.toString(mShareType.value))
.add(PARAM_SHARE_WITH, mShareWith)
.add(PARAM_PATH, remoteFilePath)
.add(PARAM_SHARE_TYPE, Integer.toString(shareType.value))
.add(PARAM_SHARE_WITH, shareWith)
if (mName.length > 0) {
formBodyBuilder.add(PARAM_NAME, mName)
if (name.isNotEmpty()) {
formBodyBuilder.add(PARAM_NAME, name)
}
if (mExpirationDateInMillis > 0) {
if (expirationDateInMillis > INITIAL_EXPIRATION_DATE_IN_MILLIS) {
val dateFormat = SimpleDateFormat(FORMAT_EXPIRATION_DATE, Locale.getDefault())
val expirationDate = Calendar.getInstance()
expirationDate.timeInMillis = mExpirationDateInMillis
expirationDate.timeInMillis = expirationDateInMillis
val formattedExpirationDate = dateFormat.format(expirationDate.time)
formBodyBuilder.add(PARAM_EXPIRATION_DATE, formattedExpirationDate)
}
if (mPublicUpload!!) {
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, java.lang.Boolean.toString(true))
if (publicUpload == true) {
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, publicUpload.toString())
}
if (mPassword != null && mPassword!!.length > 0) {
formBodyBuilder.add(PARAM_PASSWORD, mPassword!!)
if (!password.isNullOrEmpty()) {
formBodyBuilder.add(PARAM_PASSWORD, password!!)
}
if (RemoteShare.DEFAULT_PERMISSION != mPermissions) {
formBodyBuilder.add(PARAM_PERMISSIONS, Integer.toString(mPermissions))
if (RemoteShare.DEFAULT_PERMISSION != permissions) {
formBodyBuilder.add(PARAM_PERMISSIONS, Integer.toString(permissions))
}
val requestUri = client.baseUri
@ -203,12 +140,12 @@ class CreateRemoteShareOperation
)
if (isSuccess(status)) {
parser.setOneOrMoreSharesRequired(true)
parser.setOwnCloudVersion(client.ownCloudVersion)
parser.setServerBaseUri(client.baseUri)
parser.oneOrMoreSharesRequired = true
parser.ownCloudVersion = client.ownCloudVersion
parser.serverBaseUri = client.baseUri
result = parser.parse(postMethod.responseBodyAsString)
if (result.isSuccess && mGetShareDetails) {
if (result.isSuccess && getShareDetails) {
// TODO Use executeHttpMethod
// retrieve more info - POST only returns the index of the new share
@ -248,5 +185,7 @@ class CreateRemoteShareOperation
private val PARAM_SHARE_WITH = "shareWith"
private val PARAM_PERMISSIONS = "permissions"
private val FORMAT_EXPIRATION_DATE = "yyyy-MM-dd"
const val INITIAL_EXPIRATION_DATE_IN_MILLIS : Long = 0
}
}

View File

@ -38,64 +38,26 @@ import java.io.Serializable
* @author David González Verdugo
*/
class RemoteShare : Parcelable, Serializable {
/// Getters and Setters
var shareWith: String = ""
var path: String = ""
var token: String = ""
var sharedWithDisplayName: String = ""
var sharedWithAdditionalInfo: String = ""
var name: String = ""
var shareLink: String = ""
var fileSource: Long = 0
var itemSource: Long = 0
var shareType: ShareType? = null
private var mShareWith: String? = null
private var mPath: String? = null
var permissions: Int = 0
var sharedDate: Long = 0
var expirationDate: Long = 0
private var mToken: String? = null
private var mSharedWithDisplayName: String? = null
var sharedWithAdditionalInfo: String? = null
private var mName: String? = null
var isFolder: Boolean = false
var userId: Long = 0
var remoteId: Long = 0
private set
private var mShareLink: String? = null
var shareWith: String?
get() = mShareWith
set(shareWith) {
this.mShareWith = shareWith ?: ""
}
var path: String?
get() = mPath
set(path) {
this.mPath = path ?: ""
}
var token: String?
get() = mToken
set(token) {
this.mToken = token ?: ""
}
var sharedWithDisplayName: String?
get() = mSharedWithDisplayName
set(sharedWithDisplayName) {
this.mSharedWithDisplayName = sharedWithDisplayName ?: ""
}
var name: String?
get() = mName
set(name) {
mName = name ?: ""
}
var shareLink: String?
get() = this.mShareLink
set(shareLink) {
this.mShareLink = shareLink ?: ""
}
val isPasswordProtected: Boolean
get() = ShareType.PUBLIC_LINK == shareType && mShareWith!!.length > 0
get() = ShareType.PUBLIC_LINK == shareType && shareWith.isNotEmpty()
constructor() : super() {
resetData()
@ -103,33 +65,34 @@ class RemoteShare : Parcelable, Serializable {
constructor(path: String?) {
resetData()
if (path == null || path.length <= 0 || !path.startsWith(FileUtils.PATH_SEPARATOR)) {
if (path == null || path.isEmpty() || !path.startsWith(FileUtils.PATH_SEPARATOR)) {
Log_OC.e(TAG, "Trying to create a RemoteShare with a non valid path")
throw IllegalArgumentException("Trying to create a RemoteShare with a non valid path: " + path!!)
}
mPath = path
this.path = path
}
/**
* Used internally. Reset all file properties
*/
private fun resetData() {
shareWith = ""
path = ""
token = ""
sharedWithDisplayName = ""
sharedWithAdditionalInfo = ""
name = ""
shareLink = ""
fileSource = 0
itemSource = 0
shareType = ShareType.NO_SHARED
mShareWith = ""
mPath = ""
permissions = -1
permissions = DEFAULT_PERMISSION
sharedDate = 0
expirationDate = 0
mToken = ""
mSharedWithDisplayName = ""
sharedWithAdditionalInfo = ""
isFolder = false
userId = -1
remoteId = -1
mShareLink = ""
mName = ""
}
fun setIdRemoteShared(remoteId: Long) {
@ -146,6 +109,13 @@ class RemoteShare : Parcelable, Serializable {
}
fun readFromParcel(source: Parcel) {
shareWith = source.readString()
path = source.readString()
token = source.readString()
sharedWithDisplayName = source.readString()
sharedWithAdditionalInfo = source.readString()
name = source.readString()
shareLink = source.readString()
fileSource = source.readLong()
itemSource = source.readLong()
try {
@ -153,20 +123,12 @@ class RemoteShare : Parcelable, Serializable {
} catch (x: IllegalArgumentException) {
shareType = ShareType.NO_SHARED
}
mShareWith = source.readString()
mPath = source.readString()
permissions = source.readInt()
sharedDate = source.readLong()
expirationDate = source.readLong()
mToken = source.readString()
mSharedWithDisplayName = source.readString()
sharedWithAdditionalInfo = source.readString()
isFolder = source.readInt() == 0
userId = source.readLong()
remoteId = source.readLong()
mShareLink = source.readString()
mName = source.readString()
}
override fun describeContents(): Int {
@ -174,22 +136,22 @@ class RemoteShare : Parcelable, Serializable {
}
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeString(shareWith)
dest.writeString(path)
dest.writeString(token)
dest.writeString(sharedWithDisplayName)
dest.writeString(sharedWithAdditionalInfo)
dest.writeString(name)
dest.writeString(shareLink)
dest.writeLong(fileSource)
dest.writeLong(itemSource)
dest.writeString(if (shareType == null) "" else shareType!!.name)
dest.writeString(mShareWith)
dest.writeString(mPath)
dest.writeInt(permissions)
dest.writeLong(sharedDate)
dest.writeLong(expirationDate)
dest.writeString(mToken)
dest.writeString(mSharedWithDisplayName)
dest.writeString(sharedWithAdditionalInfo)
dest.writeInt(if (isFolder) 1 else 0)
dest.writeLong(userId)
dest.writeLong(remoteId)
dest.writeString(mShareLink)
dest.writeString(mName)
}
companion object {

View File

@ -90,9 +90,7 @@ class RemoveRemoteShareOperation
return result
}
private fun isSuccess(status: Int): Boolean {
return status == HttpConstants.HTTP_OK
}
private fun isSuccess(status: Int): Boolean = status == HttpConstants.HTTP_OK
companion object {

View File

@ -28,42 +28,21 @@
package com.owncloud.android.lib.resources.shares
import android.net.Uri
import com.owncloud.android.lib.common.operations.RemoteOperationResult
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.status.OwnCloudVersion
import org.xmlpull.v1.XmlPullParserException
import java.io.ByteArrayInputStream
import java.io.IOException
import java.io.InputStream
import java.util.ArrayList
class ShareToRemoteOperationResultParser(shareXmlParser: ShareXMLParser) {
private var mShareXmlParser: ShareXMLParser? = null
private var mOneOrMoreSharesRequired = false
private var mOwnCloudVersion: OwnCloudVersion? = null
private var mServerBaseUri: Uri? = null
init {
mShareXmlParser = shareXmlParser
}
fun setOneOrMoreSharesRequired(oneOrMoreSharesRequired: Boolean) {
mOneOrMoreSharesRequired = oneOrMoreSharesRequired
}
fun setOwnCloudVersion(ownCloudVersion: OwnCloudVersion?) {
mOwnCloudVersion = ownCloudVersion
}
fun setServerBaseUri(serverBaseURi: Uri) {
mServerBaseUri = serverBaseURi
}
class ShareToRemoteOperationResultParser(private var shareXmlParser: ShareXMLParser?) {
var oneOrMoreSharesRequired = false
var ownCloudVersion: OwnCloudVersion? = null
var serverBaseUri: Uri? = null
fun parse(serverResponse: String?): RemoteOperationResult<ShareParserResult> {
if (serverResponse == null || serverResponse.length == 0) {
if (serverResponse.isNullOrEmpty()) {
return RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE)
}
@ -72,15 +51,15 @@ class ShareToRemoteOperationResultParser(shareXmlParser: ShareXMLParser) {
try {
// Parse xml response and obtain the list of shares
val `is` = ByteArrayInputStream(serverResponse.toByteArray())
if (mShareXmlParser == null) {
val byteArrayServerResponse = ByteArrayInputStream(serverResponse.toByteArray())
if (shareXmlParser == null) {
Log_OC.w(TAG, "No ShareXmlParser provided, creating new instance ")
mShareXmlParser = ShareXMLParser()
shareXmlParser = ShareXMLParser()
}
val shares = mShareXmlParser!!.parseXMLResponse(`is`)
val shares = shareXmlParser?.parseXMLResponse(byteArrayServerResponse)
if (mShareXmlParser!!.isSuccess) {
if (shares != null && shares.size > 0 || !mOneOrMoreSharesRequired) {
if (shareXmlParser?.isSuccess!!) {
if (!shares.isNullOrEmpty() || !oneOrMoreSharesRequired) {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.OK)
if (shares != null) {
for (share in shares) {
@ -88,12 +67,12 @@ class ShareToRemoteOperationResultParser(shareXmlParser: ShareXMLParser) {
// build the share link if not in the response
// (needed for OC servers < 9.0.0, see ShareXMLParser.java#line256)
if (share.shareType == ShareType.PUBLIC_LINK
&& (share.shareLink == null || share.shareLink!!.length <= 0)
&& share.token!!.length > 0
&& share.shareLink.isEmpty()
&& share.token.isNotEmpty()
) {
if (mServerBaseUri != null) {
val sharingLinkPath = ShareUtils.getSharingLinkPath(mOwnCloudVersion)
share.shareLink = mServerBaseUri.toString() + sharingLinkPath + share.token
if (serverBaseUri != null) {
val sharingLinkPath = ShareUtils.getSharingLinkPath(ownCloudVersion)
share.shareLink = serverBaseUri.toString() + sharingLinkPath + share.token
} else {
Log_OC.e(TAG, "Couldn't build link for public share :(")
}
@ -107,18 +86,15 @@ class ShareToRemoteOperationResultParser(shareXmlParser: ShareXMLParser) {
Log_OC.e(TAG, "Successful status with no share in the response")
}
} else if (mShareXmlParser!!.isWrongParameter) {
} else if (shareXmlParser?.isWrongParameter!!) {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER)
result.setData(ShareParserResult(null!!, mShareXmlParser!!.message!!))
} else if (mShareXmlParser!!.isNotFound) {
result.data = ShareParserResult(arrayListOf(), shareXmlParser?.message!!)
} else if (shareXmlParser?.isNotFound!!) {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_NOT_FOUND)
result.setData(ShareParserResult(null!!, mShareXmlParser!!.message!!))
} else if (mShareXmlParser!!.isForbidden) {
result.data = ShareParserResult(arrayListOf(), shareXmlParser?.message!!)
} else if (shareXmlParser?.isForbidden!!) {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_FORBIDDEN)
result.setData(ShareParserResult(null!!, mShareXmlParser!!.message!!))
result.data = ShareParserResult(arrayListOf(), shareXmlParser?.message!!)
} else {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE)
}
@ -136,7 +112,6 @@ class ShareToRemoteOperationResultParser(shareXmlParser: ShareXMLParser) {
}
companion object {
private val TAG = ShareToRemoteOperationResultParser::class.java.simpleName
}
}

View File

@ -45,7 +45,6 @@ import java.util.ArrayList
*/
class ShareXMLParser {
// Getters and Setters
var status: String? = null
var statusCode: Int = 0
@ -65,18 +64,18 @@ class ShareXMLParser {
// Constructor
init {
statusCode = -1
statusCode = INIT
}
/**
* Parse is as response of Share API
* @param is
* @param inputStream
* @return List of ShareRemoteFiles
* @throws XmlPullParserException
* @throws IOException
*/
@Throws(XmlPullParserException::class, IOException::class)
fun parseXMLResponse(`is`: InputStream): ArrayList<RemoteShare> {
fun parseXMLResponse(inputStream: InputStream): ArrayList<RemoteShare> {
try {
// XMLPullParser
@ -85,12 +84,12 @@ class ShareXMLParser {
val parser = Xml.newPullParser()
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false)
parser.setInput(`is`, null)
parser.setInput(inputStream, null)
parser.nextTag()
return readOCS(parser)
} finally {
`is`.close()
inputStream.close()
}
}
@ -307,10 +306,10 @@ class ShareXMLParser {
}
private fun fixPathForFolder(share: RemoteShare) {
if (share.isFolder && share.path != null && share.path!!.length > 0 &&
!share.path!!.endsWith(FileUtils.PATH_SEPARATOR)
if (share.isFolder && share.path.isNotEmpty() &&
!share.path.endsWith(FileUtils.PATH_SEPARATOR)
) {
share.path = share.path!! + FileUtils.PATH_SEPARATOR
share.path = share.path + FileUtils.PATH_SEPARATOR
}
}
@ -376,40 +375,41 @@ class ShareXMLParser {
private val ns: String? = null
// NODES for XML Parser
private val NODE_OCS = "ocs"
private const val NODE_OCS = "ocs"
private val NODE_META = "meta"
private val NODE_STATUS = "status"
private val NODE_STATUS_CODE = "statuscode"
private val NODE_MESSAGE = "message"
private const val NODE_META = "meta"
private const val NODE_STATUS = "status"
private const val NODE_STATUS_CODE = "statuscode"
private const val NODE_MESSAGE = "message"
private val NODE_DATA = "data"
private val NODE_ELEMENT = "element"
private val NODE_ID = "id"
private val NODE_ITEM_TYPE = "item_type"
private val NODE_ITEM_SOURCE = "item_source"
private val NODE_PARENT = "parent"
private val NODE_SHARE_TYPE = "share_type"
private val NODE_SHARE_WITH = "share_with"
private val NODE_FILE_SOURCE = "file_source"
private val NODE_PATH = "path"
private val NODE_PERMISSIONS = "permissions"
private val NODE_STIME = "stime"
private val NODE_EXPIRATION = "expiration"
private val NODE_TOKEN = "token"
private val NODE_STORAGE = "storage"
private val NODE_MAIL_SEND = "mail_send"
private val NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname"
private val NODE_SHARE_WITH_ADDITIONAL_INFO = "share_with_additional_info"
private val NODE_NAME = "name"
private const val NODE_DATA = "data"
private const val NODE_ELEMENT = "element"
private const val NODE_ID = "id"
private const val NODE_ITEM_TYPE = "item_type"
private const val NODE_ITEM_SOURCE = "item_source"
private const val NODE_PARENT = "parent"
private const val NODE_SHARE_TYPE = "share_type"
private const val NODE_SHARE_WITH = "share_with"
private const val NODE_FILE_SOURCE = "file_source"
private const val NODE_PATH = "path"
private const val NODE_PERMISSIONS = "permissions"
private const val NODE_STIME = "stime"
private const val NODE_EXPIRATION = "expiration"
private const val NODE_TOKEN = "token"
private const val NODE_STORAGE = "storage"
private const val NODE_MAIL_SEND = "mail_send"
private const val NODE_SHARE_WITH_DISPLAY_NAME = "share_with_displayname"
private const val NODE_SHARE_WITH_ADDITIONAL_INFO = "share_with_additional_info"
private const val NODE_NAME = "name"
private val NODE_URL = "url"
private const val NODE_URL = "url"
private val TYPE_FOLDER = "folder"
private const val TYPE_FOLDER = "folder"
private val SUCCESS = 200
private val ERROR_WRONG_PARAMETER = 400
private val ERROR_FORBIDDEN = 403
private val ERROR_NOT_FOUND = 404
private const val SUCCESS = 200
private const val ERROR_WRONG_PARAMETER = 400
private const val ERROR_FORBIDDEN = 403
private const val ERROR_NOT_FOUND = 404
private const val INIT = -1
}
}

View File

@ -57,35 +57,35 @@ class UpdateRemoteShareOperation
/**
* Identifier of the share to update
*/
private val mRemoteId: Long
private val remoteId: Long
) : RemoteOperation<ShareParserResult>() {
/**
* Password to set for the public link
*/
private var mPassword: String? = null
private var password: String? = null
/**
* Expiration date to set for the public link
*/
private var mExpirationDateInMillis: Long = 0
private var expirationDateInMillis: Long = 0
/**
* Access permissions for the file bound to the share
*/
private var mPermissions: Int = 0
private var permissions: Int = 0
/**
* Upload permissions for the public link (only folders)
*/
private var mPublicUpload: Boolean? = null
private var mName: String? = null
private var publicUpload: Boolean? = null
private var name: String? = null
init {
mPassword = null // no update
mExpirationDateInMillis = 0 // no update
mPublicUpload = null
mPermissions = RemoteShare.DEFAULT_PERMISSION
password = null // no update
expirationDateInMillis = 0 // no update
publicUpload = null
permissions = RemoteShare.DEFAULT_PERMISSION
}
/**
@ -96,7 +96,7 @@ class UpdateRemoteShareOperation
* Null results in no update applied to the name.
*/
fun setName(name: String) {
this.mName = name
this.name = name
}
/**
@ -107,7 +107,7 @@ class UpdateRemoteShareOperation
* Null results in no update applied to the password.
*/
fun setPassword(password: String) {
mPassword = password
this.password = password
}
/**
@ -119,7 +119,7 @@ class UpdateRemoteShareOperation
* the expiration date.
*/
fun setExpirationDate(expirationDateInMillis: Long) {
mExpirationDateInMillis = expirationDateInMillis
this.expirationDateInMillis = expirationDateInMillis
}
/**
@ -129,7 +129,7 @@ class UpdateRemoteShareOperation
* Values <= 0 result in no update applied to the permissions.
*/
fun setPermissions(permissions: Int) {
mPermissions = permissions
this.permissions = permissions
}
/**
@ -139,7 +139,7 @@ class UpdateRemoteShareOperation
* Null results in no update applied to the upload permission.
*/
fun setPublicUpload(publicUpload: Boolean?) {
mPublicUpload = publicUpload
this.publicUpload = publicUpload
}
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
@ -149,38 +149,38 @@ class UpdateRemoteShareOperation
val formBodyBuilder = FormBody.Builder()
// Parameters to update
if (mName != null) {
formBodyBuilder.add(PARAM_NAME, mName!!)
if (name != null) {
formBodyBuilder.add(PARAM_NAME, name!!)
}
if (mExpirationDateInMillis < 0) {
if (expirationDateInMillis < 0) {
// clear expiration date
formBodyBuilder.add(PARAM_EXPIRATION_DATE, "")
} else if (mExpirationDateInMillis > 0) {
} else if (expirationDateInMillis > 0) {
// set expiration date
val dateFormat = SimpleDateFormat(FORMAT_EXPIRATION_DATE, Locale.GERMAN)
val dateFormat = SimpleDateFormat(FORMAT_EXPIRATION_DATE, Locale.getDefault())
val expirationDate = Calendar.getInstance()
expirationDate.timeInMillis = mExpirationDateInMillis
expirationDate.timeInMillis = expirationDateInMillis
val formattedExpirationDate = dateFormat.format(expirationDate.time)
formBodyBuilder.add(PARAM_EXPIRATION_DATE, formattedExpirationDate)
} // else, ignore - no update
if (mPublicUpload != null) {
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, java.lang.Boolean.toString(mPublicUpload!!))
if (publicUpload != null) {
formBodyBuilder.add(PARAM_PUBLIC_UPLOAD, publicUpload.toString())
}
// 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 (mPermissions > 0) {
if (permissions > 0) {
// set permissions
formBodyBuilder.add(PARAM_PERMISSIONS, Integer.toString(mPermissions))
formBodyBuilder.add(PARAM_PERMISSIONS, permissions.toString())
}
val requestUri = client.baseUri
val uriBuilder = requestUri.buildUpon()
uriBuilder.appendEncodedPath(ShareUtils.SHARING_API_PATH)
uriBuilder.appendEncodedPath(java.lang.Long.toString(mRemoteId))
uriBuilder.appendEncodedPath(remoteId.toString())
val putMethod = PutMethod(URL(uriBuilder.build().toString()))
@ -196,8 +196,8 @@ class UpdateRemoteShareOperation
val parser = ShareToRemoteOperationResultParser(
ShareXMLParser()
)
parser.setOwnCloudVersion(client.ownCloudVersion)
parser.setServerBaseUri(client.baseUri)
parser.ownCloudVersion = client.ownCloudVersion
parser.serverBaseUri = client.baseUri
result = parser.parse(putMethod.responseBodyAsString)
} else {