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

View File

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

View File

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