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

Allow capabilities to be null

This commit is contained in:
agarcia 2020-04-30 13:31:32 +02:00
parent 679b91df7c
commit 42b923c3b8
2 changed files with 58 additions and 58 deletions
owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources

@ -32,130 +32,130 @@ import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class CapabilityResponse(
@Json(name = "version")
val serverVersion: ServerVersion,
val capabilities: Capabilities
val serverVersion: ServerVersion?,
val capabilities: Capabilities?
) {
fun toRemoteCapability(): RemoteCapability = RemoteCapability(
versionMayor = serverVersion.major,
versionMinor = serverVersion.minor,
versionMicro = serverVersion.micro,
versionString = serverVersion.string,
versionEdition = serverVersion.edition,
corePollinterval = capabilities.coreCapabilities.pollinterval,
filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingApiEnabled),
filesSharingResharing = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingReSharing),
filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.enabled),
filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUpload),
filesSharingPublicSupportsUploadOnly = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUploadOnly),
filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicMultiple),
filesSharingPublicPasswordEnforced = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforced),
versionMayor = serverVersion?.major ?: 0,
versionMinor = serverVersion?.minor ?: 0,
versionMicro = serverVersion?.micro ?: 0,
versionString = serverVersion?.string ?: "",
versionEdition = serverVersion?.edition ?: "",
corePollinterval = capabilities?.coreCapabilities?.pollinterval ?: 0,
filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingApiEnabled),
filesSharingResharing = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingReSharing),
filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.enabled),
filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicUpload),
filesSharingPublicSupportsUploadOnly = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicUploadOnly),
filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicMultiple),
filesSharingPublicPasswordEnforced = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforced),
filesSharingPublicPasswordEnforcedReadOnly = CapabilityBooleanType.fromBooleanValue(
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadOnly
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedReadOnly
),
filesSharingPublicPasswordEnforcedReadWrite = CapabilityBooleanType.fromBooleanValue(
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadWrite
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedReadWrite
),
filesSharingPublicPasswordEnforcedUploadOnly = CapabilityBooleanType.fromBooleanValue(
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedUploadOnly
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedUploadOnly
),
filesSharingPublicExpireDateEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enabled),
filesSharingPublicExpireDateDays = capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.days
filesSharingPublicExpireDateEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.enabled),
filesSharingPublicExpireDateDays = capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.days
?: 0,
filesSharingPublicExpireDateEnforced = CapabilityBooleanType.fromBooleanValue(
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enforced ?: false
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.enforced
),
filesBigFileChunking = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.bigfilechunking),
filesUndelete = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.undelete),
filesVersioning = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.versioning),
filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.incoming),
filesSharingFederationOutgoing = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.outgoing)
filesBigFileChunking = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.bigfilechunking),
filesUndelete = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.undelete),
filesVersioning = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.versioning),
filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.incoming),
filesSharingFederationOutgoing = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.outgoing)
)
}
@JsonClass(generateAdapter = true)
data class Capabilities(
@Json(name = "core")
val coreCapabilities: CoreCapabilities,
val coreCapabilities: CoreCapabilities?,
@Json(name = "files_sharing")
val fileSharingCapabilities: FileSharingCapabilities,
val fileSharingCapabilities: FileSharingCapabilities?,
@Json(name = "files")
val fileCapabilities: FileCapabilities
val fileCapabilities: FileCapabilities?
)
@JsonClass(generateAdapter = true)
data class CoreCapabilities(
val pollinterval: Int
val pollinterval: Int?
)
@JsonClass(generateAdapter = true)
data class FileSharingCapabilities(
@Json(name = "api_enabled")
val fileSharingApiEnabled: Boolean,
val fileSharingApiEnabled: Boolean?,
@Json(name = "public")
val fileSharingPublic: FileSharingPublic,
val fileSharingPublic: FileSharingPublic?,
@Json(name = "resharing")
val fileSharingReSharing: Boolean,
val fileSharingReSharing: Boolean?,
@Json(name = "federation")
val fileSharingFederation: FileSharingFederation
val fileSharingFederation: FileSharingFederation?
)
@JsonClass(generateAdapter = true)
data class FileSharingPublic(
val enabled: Boolean,
val enabled: Boolean?,
@Json(name = "upload")
val fileSharingPublicUpload: Boolean,
val fileSharingPublicUpload: Boolean?,
@Json(name = "supports_upload_only")
val fileSharingPublicUploadOnly: Boolean,
val fileSharingPublicUploadOnly: Boolean?,
@Json(name = "multiple")
val fileSharingPublicMultiple: Boolean,
val fileSharingPublicMultiple: Boolean?,
@Json(name = "password")
val fileSharingPublicPassword: FileSharingPublicPassword,
val fileSharingPublicPassword: FileSharingPublicPassword?,
@Json(name = "expire_date")
val fileSharingPublicExpireDate: FileSharingPublicExpireDate
val fileSharingPublicExpireDate: FileSharingPublicExpireDate?
)
@JsonClass(generateAdapter = true)
data class FileSharingPublicPassword(
val enforced: Boolean,
val enforced: Boolean?,
@Json(name = "enforced_for")
val enforcedFor: FileSharingPublicPasswordEnforced
val enforcedFor: FileSharingPublicPasswordEnforced?
)
@JsonClass(generateAdapter = true)
data class FileSharingPublicPasswordEnforced(
@Json(name = "read_only")
val enforcedReadOnly: Boolean,
val enforcedReadOnly: Boolean?,
@Json(name = "read_write")
val enforcedReadWrite: Boolean,
val enforcedReadWrite: Boolean?,
@Json(name = "upload_only")
val enforcedUploadOnly: Boolean
val enforcedUploadOnly: Boolean?
)
@JsonClass(generateAdapter = true)
data class FileSharingPublicExpireDate(
val enabled: Boolean,
val enabled: Boolean?,
val days: Int?,
val enforced: Boolean?
)
@JsonClass(generateAdapter = true)
data class FileSharingFederation(
val incoming: Boolean,
val outgoing: Boolean
val incoming: Boolean?,
val outgoing: Boolean?
)
@JsonClass(generateAdapter = true)
data class FileCapabilities(
val bigfilechunking: Boolean,
val undelete: Boolean,
val versioning: Boolean
val bigfilechunking: Boolean?,
val undelete: Boolean?,
val versioning: Boolean?
)
@JsonClass(generateAdapter = true)
data class ServerVersion(
var major: Int = 0,
var minor: Int = 0,
var micro: Int = 0,
var string: String = "",
var edition: String = ""
var major: Int?,
var minor: Int?,
var micro: Int?,
var string: String?,
var edition: String?
)

@ -87,8 +87,8 @@ data class RemoteCapability(
}
}
fun fromBooleanValue(boolValue: Boolean): CapabilityBooleanType {
return if (boolValue) {
fun fromBooleanValue(boolValue: Boolean?): CapabilityBooleanType {
return if (boolValue != null && boolValue) {
TRUE
} else {
FALSE