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

Apply changes requested in PR

This commit is contained in:
davigonz 2019-04-16 17:25:13 +02:00
parent 6bd64197b4
commit 4f57487f70
4 changed files with 218 additions and 218 deletions

View File

@ -32,11 +32,12 @@ package com.owncloud.android.lib.resources.shares
* 3 - Shared by public link
* 4 - Shared by e-mail
* 5 - Shared by contact
* 6 - Federated
*
* @author masensio
*/
enum class ShareType private constructor(val value: Int) {
enum class ShareType constructor(val value: Int) {
NO_SHARED(-1),
USER(0),
GROUP(1),
@ -48,16 +49,16 @@ enum class ShareType private constructor(val value: Int) {
companion object {
fun fromValue(value: Int): ShareType? {
when (value) {
-1 -> return NO_SHARED
0 -> return USER
1 -> return GROUP
3 -> return PUBLIC_LINK
4 -> return EMAIL
5 -> return CONTACT
6 -> return FEDERATED
return when (value) {
-1 -> NO_SHARED
0 -> USER
1 -> GROUP
3 -> PUBLIC_LINK
4 -> EMAIL
5 -> CONTACT
6 -> FEDERATED
else -> null
}
return null
}
}
}
}

View File

@ -46,12 +46,12 @@ enum class CapabilityBooleanType private constructor(val value: Int) {
companion object {
fun fromValue(value: Int): CapabilityBooleanType? {
when (value) {
-1 -> return UNKNOWN
0 -> return FALSE
1 -> return TRUE
return when (value) {
-1 -> UNKNOWN
0 -> FALSE
1 -> TRUE
else -> null
}
return null
}
fun fromBooleanValue(boolValue: Boolean): CapabilityBooleanType {

View File

@ -65,176 +65,8 @@ class GetRemoteCapabilitiesOperation : RemoteOperation<RemoteCapability>() {
val status = client.executeHttpMethod(getMethod)
val response = getMethod.responseBodyAsString
if (isSuccess(status)) {
Log_OC.d(TAG, "Successful response: " + response!!)
// Parse the response
val respJSON = JSONObject(response)
val respOCS = respJSON.getJSONObject(NODE_OCS)
val respMeta = respOCS.getJSONObject(NODE_META)
val respData = respOCS.getJSONObject(NODE_DATA)
// Read meta
val statusProp = respMeta.getString(PROPERTY_STATUS).equals("ok", ignoreCase = true)
val statuscode = respMeta.getInt(PROPERTY_STATUSCODE)
val message = respMeta.getString(PROPERTY_MESSAGE)
if (statusProp) {
val capability = RemoteCapability()
// Add Version
if (respData.has(NODE_VERSION)) {
val respVersion = respData.getJSONObject(NODE_VERSION)
capability.versionMayor = respVersion.getInt(PROPERTY_MAJOR)
capability.versionMinor = respVersion.getInt(PROPERTY_MINOR)
capability.versionMicro = respVersion.getInt(PROPERTY_MICRO)
capability.versionString = respVersion.getString(PROPERTY_STRING)
capability.versionEdition = respVersion.getString(PROPERTY_EDITION)
Log_OC.d(TAG, "*** Added $NODE_VERSION")
}
// Capabilities Object
if (respData.has(NODE_CAPABILITIES)) {
val respCapabilities = respData.getJSONObject(NODE_CAPABILITIES)
// Add Core: pollinterval
if (respCapabilities.has(NODE_CORE)) {
val respCore = respCapabilities.getJSONObject(NODE_CORE)
capability.corePollinterval = respCore.getInt(PROPERTY_POLLINTERVAL)
Log_OC.d(TAG, "*** Added $NODE_CORE")
}
// Add files_sharing: public, user, resharing
if (respCapabilities.has(NODE_FILES_SHARING)) {
val respFilesSharing = respCapabilities.getJSONObject(NODE_FILES_SHARING)
if (respFilesSharing.has(PROPERTY_API_ENABLED)) {
capability.filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(
respFilesSharing.getBoolean(PROPERTY_API_ENABLED)
)
}
if (respFilesSharing.has(NODE_PUBLIC)) {
val respPublic = respFilesSharing.getJSONObject(NODE_PUBLIC)
capability.filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_ENABLED)
)
if (respPublic.has(NODE_PASSWORD)) {
val respPassword = respPublic.getJSONObject(NODE_PASSWORD)
capability.filesSharingPublicPasswordEnforced =
CapabilityBooleanType.fromBooleanValue(
respPublic.getJSONObject(NODE_PASSWORD).getBoolean(PROPERTY_ENFORCED)
)
if (respPassword.has(NODE_ENFORCED_FOR)) {
capability.filesSharingPublicPasswordEnforcedReadOnly =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_READ_ONLY
)
)
capability.filesSharingPublicPasswordEnforcedReadWrite =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_READ_WRITE
)
)
capability.filesSharingPublicPasswordEnforcedUploadOnly =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_UPLOAD_ONLY
)
)
}
}
if (respPublic.has(NODE_EXPIRE_DATE)) {
val respExpireDate = respPublic.getJSONObject(NODE_EXPIRE_DATE)
capability.filesSharingPublicExpireDateEnabled =
CapabilityBooleanType.fromBooleanValue(
respExpireDate.getBoolean(PROPERTY_ENABLED)
)
if (respExpireDate.has(PROPERTY_DAYS)) {
capability.filesSharingPublicExpireDateDays =
respExpireDate.getInt(PROPERTY_DAYS)
}
if (respExpireDate.has(PROPERTY_ENFORCED)) {
capability.filesSharingPublicExpireDateEnforced =
CapabilityBooleanType.fromBooleanValue(
respExpireDate.getBoolean(PROPERTY_ENFORCED)
)
}
}
if (respPublic.has(PROPERTY_UPLOAD)) {
capability.filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_UPLOAD)
)
}
if (respPublic.has(PROPERTY_UPLOAD_ONLY)) {
capability.filesSharingPublicSupportsUploadOnly =
CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_UPLOAD_ONLY)
)
}
if (respPublic.has(PROPERTY_MULTIPLE)) {
capability.filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_MULTIPLE)
)
}
}
if (respFilesSharing.has(NODE_USER)) {
val respUser = respFilesSharing.getJSONObject(NODE_USER)
capability.filesSharingUserSendMail = CapabilityBooleanType.fromBooleanValue(
respUser.getBoolean(PROPERTY_SEND_MAIL)
)
}
capability.filesSharingResharing = CapabilityBooleanType.fromBooleanValue(
respFilesSharing.getBoolean(PROPERTY_RESHARING)
)
if (respFilesSharing.has(NODE_FEDERATION)) {
val respFederation = respFilesSharing.getJSONObject(NODE_FEDERATION)
capability.filesSharingFederationOutgoing =
CapabilityBooleanType.fromBooleanValue(respFederation.getBoolean(PROPERTY_OUTGOING))
capability.filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(
respFederation.getBoolean(PROPERTY_INCOMING)
)
}
Log_OC.d(TAG, "*** Added $NODE_FILES_SHARING")
}
if (respCapabilities.has(NODE_FILES)) {
val respFiles = respCapabilities.getJSONObject(NODE_FILES)
// Add files
capability.filesBigFileChuncking = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_BIGFILECHUNKING)
)
if (respFiles.has(PROPERTY_UNDELETE)) {
capability.filesUndelete = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_UNDELETE)
)
}
if (respFiles.has(PROPERTY_VERSIONING)) {
capability.filesVersioning = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_VERSIONING)
)
}
Log_OC.d(TAG, "*** Added $NODE_FILES")
}
}
// Result
result = RemoteOperationResult(OK)
result.data = capability
Log_OC.d(TAG, "*** Get Capabilities completed ")
} else {
result = RemoteOperationResult(statuscode, message, null)
Log_OC.e(TAG, "Failed response while getting capabilities from the server ")
Log_OC.e(TAG, "*** status: $statusProp; message: $message")
}
} else {
if (!isSuccess(status)) {
result = RemoteOperationResult(getMethod)
Log_OC.e(TAG, "Failed response while getting capabilities from the server ")
if (response != null) {
@ -242,6 +74,176 @@ class GetRemoteCapabilitiesOperation : RemoteOperation<RemoteCapability>() {
} else {
Log_OC.e(TAG, "*** status code: $status")
}
return result
}
Log_OC.d(TAG, "Successful response: " + response!!)
// Parse the response
val respJSON = JSONObject(response)
val respOCS = respJSON.getJSONObject(NODE_OCS)
val respMeta = respOCS.getJSONObject(NODE_META)
val respData = respOCS.getJSONObject(NODE_DATA)
// Read meta
val statusProp = respMeta.getString(PROPERTY_STATUS).equals(PROPERTY_STATUS_OK, ignoreCase = true)
val statuscode = respMeta.getInt(PROPERTY_STATUSCODE)
val message = respMeta.getString(PROPERTY_MESSAGE)
if (statusProp) {
val capability = RemoteCapability()
// Add Version
if (respData.has(NODE_VERSION)) {
val respVersion = respData.getJSONObject(NODE_VERSION)
capability.versionMayor = respVersion.getInt(PROPERTY_MAJOR)
capability.versionMinor = respVersion.getInt(PROPERTY_MINOR)
capability.versionMicro = respVersion.getInt(PROPERTY_MICRO)
capability.versionString = respVersion.getString(PROPERTY_STRING)
capability.versionEdition = respVersion.getString(PROPERTY_EDITION)
Log_OC.d(TAG, "*** Added $NODE_VERSION")
}
// Capabilities Object
if (respData.has(NODE_CAPABILITIES)) {
val respCapabilities = respData.getJSONObject(NODE_CAPABILITIES)
// Add Core: pollinterval
if (respCapabilities.has(NODE_CORE)) {
val respCore = respCapabilities.getJSONObject(NODE_CORE)
capability.corePollinterval = respCore.getInt(PROPERTY_POLLINTERVAL)
Log_OC.d(TAG, "*** Added $NODE_CORE")
}
// Add files_sharing: public, user, resharing
if (respCapabilities.has(NODE_FILES_SHARING)) {
val respFilesSharing = respCapabilities.getJSONObject(NODE_FILES_SHARING)
if (respFilesSharing.has(PROPERTY_API_ENABLED)) {
capability.filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(
respFilesSharing.getBoolean(PROPERTY_API_ENABLED)
)
}
if (respFilesSharing.has(NODE_PUBLIC)) {
val respPublic = respFilesSharing.getJSONObject(NODE_PUBLIC)
capability.filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_ENABLED)
)
if (respPublic.has(NODE_PASSWORD)) {
val respPassword = respPublic.getJSONObject(NODE_PASSWORD)
capability.filesSharingPublicPasswordEnforced =
CapabilityBooleanType.fromBooleanValue(
respPublic.getJSONObject(NODE_PASSWORD).getBoolean(PROPERTY_ENFORCED)
)
if (respPassword.has(NODE_ENFORCED_FOR)) {
capability.filesSharingPublicPasswordEnforcedReadOnly =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_READ_ONLY
)
)
capability.filesSharingPublicPasswordEnforcedReadWrite =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_READ_WRITE
)
)
capability.filesSharingPublicPasswordEnforcedUploadOnly =
CapabilityBooleanType.fromBooleanValue(
respPassword.getJSONObject(NODE_ENFORCED_FOR).getBoolean(
PROPERTY_ENFORCED_UPLOAD_ONLY
)
)
}
}
if (respPublic.has(NODE_EXPIRE_DATE)) {
val respExpireDate = respPublic.getJSONObject(NODE_EXPIRE_DATE)
capability.filesSharingPublicExpireDateEnabled =
CapabilityBooleanType.fromBooleanValue(
respExpireDate.getBoolean(PROPERTY_ENABLED)
)
if (respExpireDate.has(PROPERTY_DAYS)) {
capability.filesSharingPublicExpireDateDays =
respExpireDate.getInt(PROPERTY_DAYS)
}
if (respExpireDate.has(PROPERTY_ENFORCED)) {
capability.filesSharingPublicExpireDateEnforced =
CapabilityBooleanType.fromBooleanValue(
respExpireDate.getBoolean(PROPERTY_ENFORCED)
)
}
}
if (respPublic.has(PROPERTY_UPLOAD)) {
capability.filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_UPLOAD)
)
}
if (respPublic.has(PROPERTY_UPLOAD_ONLY)) {
capability.filesSharingPublicSupportsUploadOnly =
CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_UPLOAD_ONLY)
)
}
if (respPublic.has(PROPERTY_MULTIPLE)) {
capability.filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(
respPublic.getBoolean(PROPERTY_MULTIPLE)
)
}
}
if (respFilesSharing.has(NODE_USER)) {
val respUser = respFilesSharing.getJSONObject(NODE_USER)
capability.filesSharingUserSendMail = CapabilityBooleanType.fromBooleanValue(
respUser.getBoolean(PROPERTY_SEND_MAIL)
)
}
capability.filesSharingResharing = CapabilityBooleanType.fromBooleanValue(
respFilesSharing.getBoolean(PROPERTY_RESHARING)
)
if (respFilesSharing.has(NODE_FEDERATION)) {
val respFederation = respFilesSharing.getJSONObject(NODE_FEDERATION)
capability.filesSharingFederationOutgoing =
CapabilityBooleanType.fromBooleanValue(respFederation.getBoolean(PROPERTY_OUTGOING))
capability.filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(
respFederation.getBoolean(PROPERTY_INCOMING)
)
}
Log_OC.d(TAG, "*** Added $NODE_FILES_SHARING")
}
if (respCapabilities.has(NODE_FILES)) {
val respFiles = respCapabilities.getJSONObject(NODE_FILES)
// Add files
capability.filesBigFileChuncking = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_BIGFILECHUNKING)
)
if (respFiles.has(PROPERTY_UNDELETE)) {
capability.filesUndelete = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_UNDELETE)
)
}
if (respFiles.has(PROPERTY_VERSIONING)) {
capability.filesVersioning = CapabilityBooleanType.fromBooleanValue(
respFiles.getBoolean(PROPERTY_VERSIONING)
)
}
Log_OC.d(TAG, "*** Added $NODE_FILES")
}
}
// Result
result = RemoteOperationResult(OK)
result.data = capability
Log_OC.d(TAG, "*** Get Capabilities completed ")
} else {
result = RemoteOperationResult(statuscode, message, null)
Log_OC.e(TAG, "Failed response while getting capabilities from the server ")
Log_OC.e(TAG, "*** status: $statusProp; message: $message")
}
} catch (e: Exception) {
@ -290,6 +292,7 @@ class GetRemoteCapabilitiesOperation : RemoteOperation<RemoteCapability>() {
private val NODE_FILES = "files"
private val PROPERTY_STATUS = "status"
private val PROPERTY_STATUS_OK = "ok"
private val PROPERTY_STATUSCODE = "statuscode"
private val PROPERTY_MESSAGE = "message"
@ -320,4 +323,4 @@ class GetRemoteCapabilitiesOperation : RemoteOperation<RemoteCapability>() {
private val PROPERTY_UNDELETE = "undelete"
private val PROPERTY_VERSIONING = "versioning"
}
}
}

View File

@ -29,45 +29,41 @@ package com.owncloud.android.lib.resources.status
* Contains data of the Capabilities for an account, from the Capabilities API
*/
class RemoteCapability {
var accountName: String? = null
var accountName: String
// Server version
var versionMayor: Int = 0
var versionMinor: Int = 0
var versionMicro: Int = 0
var versionString: String? = null
var versionEdition: String? = null
var versionMayor: Int
var versionMinor: Int
var versionMicro: Int
var versionString: String
var versionEdition: String
// Core PollInterval
var corePollinterval: Int = 0
var corePollinterval: Int
// Files Sharing
var filesSharingApiEnabled: CapabilityBooleanType? = null
var filesSharingPublicEnabled: CapabilityBooleanType? = null
var filesSharingPublicPasswordEnforced: CapabilityBooleanType? = null
var filesSharingPublicPasswordEnforcedReadOnly: CapabilityBooleanType? = null
var filesSharingPublicPasswordEnforcedReadWrite: CapabilityBooleanType? = null
var filesSharingPublicPasswordEnforcedUploadOnly: CapabilityBooleanType? = null
var filesSharingPublicExpireDateEnabled: CapabilityBooleanType? = null
var filesSharingPublicExpireDateDays: Int = 0
var filesSharingPublicExpireDateEnforced: CapabilityBooleanType? = null
var filesSharingPublicSendMail: CapabilityBooleanType? = null
var filesSharingPublicUpload: CapabilityBooleanType? = null
var filesSharingPublicMultiple: CapabilityBooleanType? = null
var filesSharingPublicSupportsUploadOnly: CapabilityBooleanType? = null
var filesSharingUserSendMail: CapabilityBooleanType? = null
var filesSharingResharing: CapabilityBooleanType? = null
var filesSharingFederationOutgoing: CapabilityBooleanType? = null
var filesSharingFederationIncoming: CapabilityBooleanType? = null
var filesSharingApiEnabled: CapabilityBooleanType
var filesSharingPublicEnabled: CapabilityBooleanType
var filesSharingPublicPasswordEnforced: CapabilityBooleanType
var filesSharingPublicPasswordEnforcedReadOnly: CapabilityBooleanType
var filesSharingPublicPasswordEnforcedReadWrite: CapabilityBooleanType
var filesSharingPublicPasswordEnforcedUploadOnly: CapabilityBooleanType
var filesSharingPublicExpireDateEnabled: CapabilityBooleanType
var filesSharingPublicExpireDateDays: Int
var filesSharingPublicExpireDateEnforced: CapabilityBooleanType
var filesSharingPublicSendMail: CapabilityBooleanType
var filesSharingPublicUpload: CapabilityBooleanType
var filesSharingPublicMultiple: CapabilityBooleanType
var filesSharingPublicSupportsUploadOnly: CapabilityBooleanType
var filesSharingUserSendMail: CapabilityBooleanType
var filesSharingResharing: CapabilityBooleanType
var filesSharingFederationOutgoing: CapabilityBooleanType
var filesSharingFederationIncoming: CapabilityBooleanType
// Files
var filesBigFileChuncking: CapabilityBooleanType? = null
var filesUndelete: CapabilityBooleanType? = null
var filesVersioning: CapabilityBooleanType? = null
var filesBigFileChuncking: CapabilityBooleanType
var filesUndelete: CapabilityBooleanType
var filesVersioning: CapabilityBooleanType
init {
accountName = ""
@ -76,7 +72,7 @@ class RemoteCapability {
versionMinor = 0
versionMicro = 0
versionString = ""
versionString = ""
versionEdition = ""
corePollinterval = 0