1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-07-23 09:56:02 +00:00

Apply CR changes

This commit is contained in:
davigonz 2019-03-26 18:31:42 +01:00
parent a28f58f0fe
commit 64f5f08ded
4 changed files with 67 additions and 54 deletions

View File

@ -72,7 +72,7 @@ class CreateRemoteShareOperation
private val shareWith: String, private val shareWith: String,
private val permissions: Int private val permissions: Int
) : RemoteOperation<ShareParserResult>() { ) : RemoteOperation<ShareParserResult>() {
var getShareDetails = false // To retrieve more info about the just created share var retrieveShareDetails = false // To retrieve more info about the just created share
var name = "" // Name to set for the public link var name = "" // Name to set for the public link
@ -83,7 +83,7 @@ class CreateRemoteShareOperation
var publicUpload: Boolean = false // Upload permissions for the public link (only folders) var publicUpload: Boolean = false // Upload permissions for the public link (only folders)
init { init {
getShareDetails = false // defaults to false for backwards compatibility retrieveShareDetails = false // defaults to false for backwards compatibility
} }
override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> { override fun run(client: OwnCloudClient): RemoteOperationResult<ShareParserResult> {
@ -140,7 +140,7 @@ class CreateRemoteShareOperation
parser.serverBaseUri = client.baseUri parser.serverBaseUri = client.baseUri
result = parser.parse(postMethod.responseBodyAsString) result = parser.parse(postMethod.responseBodyAsString)
if (result.isSuccess && getShareDetails) { if (result.isSuccess && retrieveShareDetails) {
// TODO Use executeHttpMethod // TODO Use executeHttpMethod
// retrieve more info - POST only returns the index of the new share // retrieve more info - POST only returns the index of the new share

View File

@ -25,6 +25,4 @@
package com.owncloud.android.lib.resources.shares package com.owncloud.android.lib.resources.shares
import java.util.ArrayList class ShareParserResult(val shares: List<RemoteShare>)
class ShareParserResult(val shares: ArrayList<RemoteShare>)

View File

@ -58,14 +58,16 @@ class ShareToRemoteOperationResultParser(private var shareXmlParser: ShareXMLPar
} }
val shares = shareXmlParser?.parseXMLResponse(byteArrayServerResponse) val shares = shareXmlParser?.parseXMLResponse(byteArrayServerResponse)
if (shareXmlParser?.isSuccess!!) { when {
shareXmlParser?.isSuccess!! -> {
if (!shares.isNullOrEmpty() || !oneOrMoreSharesRequired) { if (!shares.isNullOrEmpty() || !oneOrMoreSharesRequired) {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.OK) result = RemoteOperationResult(RemoteOperationResult.ResultCode.OK)
resultData = shares?.map { share -> resultData = shares?.map { share ->
if (share.shareType != ShareType.PUBLIC_LINK || if (share.shareType != ShareType.PUBLIC_LINK ||
share.shareLink.isNotEmpty() || share.shareLink.isNotEmpty() ||
share.token.isEmpty()) { share.token.isEmpty()
) {
return@map share return@map share
} }
@ -85,20 +87,23 @@ class ShareToRemoteOperationResultParser(private var shareXmlParser: ShareXMLPar
result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE) result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE)
Log_OC.e(TAG, "Successful status with no share in the response") Log_OC.e(TAG, "Successful status with no share in the response")
} }
}
} else if (shareXmlParser?.isWrongParameter!!) { shareXmlParser?.isWrongParameter!! -> {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER) result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_WRONG_PARAMETER)
result.httpPhrase = shareXmlParser?.message result.httpPhrase = shareXmlParser?.message
} else if (shareXmlParser?.isNotFound!!) { }
shareXmlParser?.isNotFound!! -> {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_NOT_FOUND) result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_NOT_FOUND)
result.httpPhrase = shareXmlParser?.message result.httpPhrase = shareXmlParser?.message
} else if (shareXmlParser?.isForbidden!!) { }
shareXmlParser?.isForbidden!! -> {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_FORBIDDEN) result = RemoteOperationResult(RemoteOperationResult.ResultCode.SHARE_FORBIDDEN)
result.httpPhrase = shareXmlParser?.message result.httpPhrase = shareXmlParser?.message
} else { }
else -> {
result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE) result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE)
} }
}
} catch (e: XmlPullParserException) { } catch (e: XmlPullParserException) {
Log_OC.e(TAG, "Error parsing response from server ", e) Log_OC.e(TAG, "Error parsing response from server ", e)
result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE) result = RemoteOperationResult(RemoteOperationResult.ResultCode.WRONG_SERVER_RESPONSE)

View File

@ -87,6 +87,11 @@ class OwnCloudVersion(version: String) : Comparable<OwnCloudVersion>, Parcelable
val isPublicSharingWriteOnlySupported: Boolean val isPublicSharingWriteOnlySupported: Boolean
get() = mVersion >= MINIMUM_VERSION_WITH_WRITE_ONLY_PUBLIC_SHARING get() = mVersion >= MINIMUM_VERSION_WITH_WRITE_ONLY_PUBLIC_SHARING
val isPublicUploadPermissionNeeded: Boolean
get() = mVersion >= MINIMUN_MAJOR_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION &&
(mVersion > MINIMUN_MINOR_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION ||
mVersion > MINIMUN_MICRO_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION)
init { init {
var version = version var version = version
mVersion = 0 mVersion = 0
@ -171,34 +176,39 @@ class OwnCloudVersion(version: String) : Comparable<OwnCloudVersion>, Parcelable
} }
companion object { companion object {
private const val MINIMUN_MINOR_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION = 0x01000000 // 1.0.0
val MINIMUN_VERSION_FOR_CHUNKED_UPLOADS = 0x04050000 // 4.5 private const val MINIMUN_MICRO_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION = 0x03000000 // 3.0.0
val MINIMUM_VERSION_FOR_SHARING_API = 0x05001B00 // 5.0.27 const val MINIMUN_VERSION_FOR_CHUNKED_UPLOADS = 0x04050000 // 4.5
val MINIMUM_VERSION_WITH_FORBIDDEN_CHARS = 0x08010000 // 8.1 const val MINIMUM_VERSION_FOR_SHARING_API = 0x05001B00 // 5.0.27
val MINIMUM_SERVER_VERSION_FOR_REMOTE_THUMBNAILS = 0x07080000 // 7.8.0 const val MINIMUM_VERSION_WITH_FORBIDDEN_CHARS = 0x08010000 // 8.1
val MINIMUM_VERSION_FOR_SEARCHING_USERS = 0x08020000 //8.2 const val MINIMUM_SERVER_VERSION_FOR_REMOTE_THUMBNAILS = 0x07080000 // 7.8.0
val VERSION_8 = 0x08000000 // 8.0 const val MINIMUM_VERSION_FOR_SEARCHING_USERS = 0x08020000 //8.2
val MINIMUM_VERSION_CAPABILITIES_API = 0x08010000 // 8.1 const val VERSION_8 = 0x08000000 // 8.0
private val MINIMUM_VERSION_WITH_NOT_RESHAREABLE_FEDERATED = 0x09010000 // 9.1 const val MINIMUM_VERSION_CAPABILITIES_API = 0x08010000 // 8.1
private val MINIMUM_VERSION_WITH_SESSION_MONITORING = 0x09010000 // 9.1 private const val MINIMUM_VERSION_WITH_NOT_RESHAREABLE_FEDERATED = 0x09010000 // 9.1
private val MINIMUM_VERSION_WITH_SESSION_MONITORING_WORKING_IN_PREEMPTIVE_MODE = 0x09010301 private const val MINIMUM_VERSION_WITH_SESSION_MONITORING = 0x09010000 // 9.1
private const val MINIMUM_VERSION_WITH_SESSION_MONITORING_WORKING_IN_PREEMPTIVE_MODE = 0x09010301
// 9.1.3.1, final 9.1.3: https://github.com/owncloud/core/commit/f9a867b70c217463289a741d4d26079eb2a80dfd // 9.1.3.1, final 9.1.3: https://github.com/owncloud/core/commit/f9a867b70c217463289a741d4d26079eb2a80dfd
private val MINIMUM_VERSION_WITH_MULTIPLE_PUBLIC_SHARING = 0xA000000 // 10.0.0 private const val MINIMUM_VERSION_WITH_MULTIPLE_PUBLIC_SHARING = 0xA000000 // 10.0.0
private val MINIMUM_VERSION_WITH_WRITE_ONLY_PUBLIC_SHARING = 0xA000100 // 10.0.1 private const val MINIMUN_MAJOR_VERSION_WITHOUT_PUBLIC_UPLOAD_PERMISSION = 0xA000000 // 10.0.0
private val INVALID_ZERO_VERSION = "0.0.0" private const val MINIMUM_VERSION_WITH_WRITE_ONLY_PUBLIC_SHARING = 0xA000100 // 10.0.1
private val MAX_DOTS = 3 private const val INVALID_ZERO_VERSION = "0.0.0"
private const val MAX_DOTS = 3
} }
} }