Skip to content
This repository was archived by the owner on Mar 19, 2024. It is now read-only.

Commit 42b923c

Browse files
committed
Allow capabilities to be null
1 parent 679b91d commit 42b923c

File tree

2 files changed

+58
-58
lines changed

2 files changed

+58
-58
lines changed

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/response/CapabilityResponse.kt

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -32,130 +32,130 @@ import com.squareup.moshi.JsonClass
3232
@JsonClass(generateAdapter = true)
3333
data class CapabilityResponse(
3434
@Json(name = "version")
35-
val serverVersion: ServerVersion,
36-
val capabilities: Capabilities
35+
val serverVersion: ServerVersion?,
36+
val capabilities: Capabilities?
3737
) {
3838
fun toRemoteCapability(): RemoteCapability = RemoteCapability(
39-
versionMayor = serverVersion.major,
40-
versionMinor = serverVersion.minor,
41-
versionMicro = serverVersion.micro,
42-
versionString = serverVersion.string,
43-
versionEdition = serverVersion.edition,
44-
corePollinterval = capabilities.coreCapabilities.pollinterval,
45-
filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingApiEnabled),
46-
filesSharingResharing = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingReSharing),
47-
filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.enabled),
48-
filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUpload),
49-
filesSharingPublicSupportsUploadOnly = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicUploadOnly),
50-
filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicMultiple),
51-
filesSharingPublicPasswordEnforced = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforced),
39+
versionMayor = serverVersion?.major ?: 0,
40+
versionMinor = serverVersion?.minor ?: 0,
41+
versionMicro = serverVersion?.micro ?: 0,
42+
versionString = serverVersion?.string ?: "",
43+
versionEdition = serverVersion?.edition ?: "",
44+
corePollinterval = capabilities?.coreCapabilities?.pollinterval ?: 0,
45+
filesSharingApiEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingApiEnabled),
46+
filesSharingResharing = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingReSharing),
47+
filesSharingPublicEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.enabled),
48+
filesSharingPublicUpload = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicUpload),
49+
filesSharingPublicSupportsUploadOnly = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicUploadOnly),
50+
filesSharingPublicMultiple = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicMultiple),
51+
filesSharingPublicPasswordEnforced = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforced),
5252
filesSharingPublicPasswordEnforcedReadOnly = CapabilityBooleanType.fromBooleanValue(
53-
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadOnly
53+
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedReadOnly
5454
),
5555
filesSharingPublicPasswordEnforcedReadWrite = CapabilityBooleanType.fromBooleanValue(
56-
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedReadWrite
56+
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedReadWrite
5757
),
5858
filesSharingPublicPasswordEnforcedUploadOnly = CapabilityBooleanType.fromBooleanValue(
59-
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicPassword.enforcedFor.enforcedUploadOnly
59+
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicPassword?.enforcedFor?.enforcedUploadOnly
6060
),
61-
filesSharingPublicExpireDateEnabled = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enabled),
62-
filesSharingPublicExpireDateDays = capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.days
61+
filesSharingPublicExpireDateEnabled = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.enabled),
62+
filesSharingPublicExpireDateDays = capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.days
6363
?: 0,
6464
filesSharingPublicExpireDateEnforced = CapabilityBooleanType.fromBooleanValue(
65-
capabilities.fileSharingCapabilities.fileSharingPublic.fileSharingPublicExpireDate.enforced ?: false
65+
capabilities?.fileSharingCapabilities?.fileSharingPublic?.fileSharingPublicExpireDate?.enforced
6666
),
67-
filesBigFileChunking = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.bigfilechunking),
68-
filesUndelete = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.undelete),
69-
filesVersioning = CapabilityBooleanType.fromBooleanValue(capabilities.fileCapabilities.versioning),
70-
filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.incoming),
71-
filesSharingFederationOutgoing = CapabilityBooleanType.fromBooleanValue(capabilities.fileSharingCapabilities.fileSharingFederation.outgoing)
67+
filesBigFileChunking = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.bigfilechunking),
68+
filesUndelete = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.undelete),
69+
filesVersioning = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.versioning),
70+
filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.incoming),
71+
filesSharingFederationOutgoing = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.outgoing)
7272
)
7373
}
7474

7575
@JsonClass(generateAdapter = true)
7676
data class Capabilities(
7777
@Json(name = "core")
78-
val coreCapabilities: CoreCapabilities,
78+
val coreCapabilities: CoreCapabilities?,
7979
@Json(name = "files_sharing")
80-
val fileSharingCapabilities: FileSharingCapabilities,
80+
val fileSharingCapabilities: FileSharingCapabilities?,
8181
@Json(name = "files")
82-
val fileCapabilities: FileCapabilities
82+
val fileCapabilities: FileCapabilities?
8383
)
8484

8585
@JsonClass(generateAdapter = true)
8686
data class CoreCapabilities(
87-
val pollinterval: Int
87+
val pollinterval: Int?
8888
)
8989

9090
@JsonClass(generateAdapter = true)
9191
data class FileSharingCapabilities(
9292
@Json(name = "api_enabled")
93-
val fileSharingApiEnabled: Boolean,
93+
val fileSharingApiEnabled: Boolean?,
9494
@Json(name = "public")
95-
val fileSharingPublic: FileSharingPublic,
95+
val fileSharingPublic: FileSharingPublic?,
9696
@Json(name = "resharing")
97-
val fileSharingReSharing: Boolean,
97+
val fileSharingReSharing: Boolean?,
9898
@Json(name = "federation")
99-
val fileSharingFederation: FileSharingFederation
99+
val fileSharingFederation: FileSharingFederation?
100100
)
101101

102102
@JsonClass(generateAdapter = true)
103103
data class FileSharingPublic(
104-
val enabled: Boolean,
104+
val enabled: Boolean?,
105105
@Json(name = "upload")
106-
val fileSharingPublicUpload: Boolean,
106+
val fileSharingPublicUpload: Boolean?,
107107
@Json(name = "supports_upload_only")
108-
val fileSharingPublicUploadOnly: Boolean,
108+
val fileSharingPublicUploadOnly: Boolean?,
109109
@Json(name = "multiple")
110-
val fileSharingPublicMultiple: Boolean,
110+
val fileSharingPublicMultiple: Boolean?,
111111
@Json(name = "password")
112-
val fileSharingPublicPassword: FileSharingPublicPassword,
112+
val fileSharingPublicPassword: FileSharingPublicPassword?,
113113
@Json(name = "expire_date")
114-
val fileSharingPublicExpireDate: FileSharingPublicExpireDate
114+
val fileSharingPublicExpireDate: FileSharingPublicExpireDate?
115115
)
116116

117117
@JsonClass(generateAdapter = true)
118118
data class FileSharingPublicPassword(
119-
val enforced: Boolean,
119+
val enforced: Boolean?,
120120
@Json(name = "enforced_for")
121-
val enforcedFor: FileSharingPublicPasswordEnforced
121+
val enforcedFor: FileSharingPublicPasswordEnforced?
122122
)
123123

124124
@JsonClass(generateAdapter = true)
125125
data class FileSharingPublicPasswordEnforced(
126126
@Json(name = "read_only")
127-
val enforcedReadOnly: Boolean,
127+
val enforcedReadOnly: Boolean?,
128128
@Json(name = "read_write")
129-
val enforcedReadWrite: Boolean,
129+
val enforcedReadWrite: Boolean?,
130130
@Json(name = "upload_only")
131-
val enforcedUploadOnly: Boolean
131+
val enforcedUploadOnly: Boolean?
132132
)
133133

134134
@JsonClass(generateAdapter = true)
135135
data class FileSharingPublicExpireDate(
136-
val enabled: Boolean,
136+
val enabled: Boolean?,
137137
val days: Int?,
138138
val enforced: Boolean?
139139
)
140140

141141
@JsonClass(generateAdapter = true)
142142
data class FileSharingFederation(
143-
val incoming: Boolean,
144-
val outgoing: Boolean
143+
val incoming: Boolean?,
144+
val outgoing: Boolean?
145145
)
146146

147147
@JsonClass(generateAdapter = true)
148148
data class FileCapabilities(
149-
val bigfilechunking: Boolean,
150-
val undelete: Boolean,
151-
val versioning: Boolean
149+
val bigfilechunking: Boolean?,
150+
val undelete: Boolean?,
151+
val versioning: Boolean?
152152
)
153153

154154
@JsonClass(generateAdapter = true)
155155
data class ServerVersion(
156-
var major: Int = 0,
157-
var minor: Int = 0,
158-
var micro: Int = 0,
159-
var string: String = "",
160-
var edition: String = ""
156+
var major: Int?,
157+
var minor: Int?,
158+
var micro: Int?,
159+
var string: String?,
160+
var edition: String?
161161
)

owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/RemoteCapability.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ data class RemoteCapability(
8787
}
8888
}
8989

90-
fun fromBooleanValue(boolValue: Boolean): CapabilityBooleanType {
91-
return if (boolValue) {
90+
fun fromBooleanValue(boolValue: Boolean?): CapabilityBooleanType {
91+
return if (boolValue != null && boolValue) {
9292
TRUE
9393
} else {
9494
FALSE

0 commit comments

Comments
 (0)