@@ -11,6 +11,9 @@ import androidx.room.ColumnInfo
1111import androidx.room.Entity
1212import androidx.room.PrimaryKey
1313import com.owncloud.android.db.ProviderMeta.ProviderTableMeta
14+ import com.owncloud.android.lib.resources.status.CapabilityBooleanType
15+ import com.owncloud.android.lib.resources.status.E2EVersion
16+ import com.owncloud.android.lib.resources.status.OCCapability
1417
1518@Entity(tableName = ProviderTableMeta .CAPABILITIES_TABLE_NAME )
1619data class CapabilityEntity (
@@ -124,13 +127,13 @@ data class CapabilityEntity(
124127 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_SECURITY_GUARD )
125128 val securityGuard : Int? ,
126129 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FORBIDDEN_FILENAME_CHARACTERS )
127- val forbiddenFileNameCharacters : Int ? ,
130+ val forbiddenFileNameCharacters : String ? ,
128131 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FORBIDDEN_FILENAMES )
129- val forbiddenFileNames : Int ? ,
132+ val forbiddenFileNames : String ? ,
130133 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FORBIDDEN_FORBIDDEN_FILENAME_EXTENSIONS )
131- val forbiddenFileNameExtensions : Int ? ,
134+ val forbiddenFileNameExtensions : String ? ,
132135 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FORBIDDEN_FORBIDDEN_FILENAME_BASE_NAMES )
133- val forbiddenFilenameBaseNames : Int ? ,
136+ val forbiddenFilenameBaseNames : String ? ,
134137 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FILES_DOWNLOAD_LIMIT )
135138 val filesDownloadLimit : Int? ,
136139 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_FILES_DOWNLOAD_LIMIT_DEFAULT )
@@ -150,3 +153,85 @@ data class CapabilityEntity(
150153 @ColumnInfo(name = ProviderTableMeta .CAPABILITIES_CLIENT_INTEGRATION_JSON )
151154 val clientIntegrationJson : String?
152155)
156+
157+ @Suppress(" LongMethod" , " ReturnCount" )
158+ fun CapabilityEntity?.toOCCapability (): OCCapability {
159+ val capability = OCCapability ()
160+ if (this == null ) return capability
161+ val id = this .id ? : return capability
162+
163+ fun intToBoolean (value : Int? ): CapabilityBooleanType =
164+ value?.let { CapabilityBooleanType .fromValue(it) } ? : CapabilityBooleanType .UNKNOWN
165+
166+ capability.id = id.toLong()
167+ capability.accountName = this .accountName
168+ capability.versionMayor = this .versionMajor ? : 0
169+ capability.versionMinor = this .versionMinor ? : 0
170+ capability.versionMicro = this .versionMicro ? : 0
171+ capability.versionString = this .versionString
172+ capability.versionEdition = this .versionEditor
173+ capability.extendedSupport = intToBoolean(this .extendedSupport)
174+ capability.corePollInterval = this .corePollinterval ? : 0
175+ capability.filesSharingApiEnabled = intToBoolean(this .sharingApiEnabled)
176+ capability.filesSharingPublicEnabled = intToBoolean(this .sharingPublicEnabled)
177+ capability.filesSharingPublicPasswordEnforced = intToBoolean(this .sharingPublicPasswordEnforced)
178+ capability.filesSharingPublicAskForOptionalPassword = intToBoolean(this .sharingPublicAskForOptionalPassword)
179+ capability.filesSharingPublicExpireDateEnabled = intToBoolean(this .sharingPublicExpireDateEnabled)
180+ capability.filesSharingPublicExpireDateDays = this .sharingPublicExpireDateDays ? : 0
181+ capability.filesSharingPublicExpireDateEnforced = intToBoolean(this .sharingPublicExpireDateEnforced)
182+ capability.filesSharingPublicSendMail = intToBoolean(this .sharingPublicSendMail)
183+ capability.filesSharingPublicUpload = intToBoolean(this .sharingPublicUpload)
184+ capability.filesSharingUserSendMail = intToBoolean(this .sharingUserSendMail)
185+ capability.filesSharingResharing = intToBoolean(this .sharingResharing)
186+ capability.filesSharingFederationOutgoing = intToBoolean(this .sharingFederationOutgoing)
187+ capability.filesSharingFederationIncoming = intToBoolean(this .sharingFederationIncoming)
188+ capability.filesBigFileChunking = intToBoolean(this .filesBigfilechunking)
189+ capability.filesUndelete = intToBoolean(this .filesUndelete)
190+ capability.filesVersioning = intToBoolean(this .filesVersioning)
191+ capability.externalLinks = intToBoolean(this .externalLinks)
192+ capability.serverName = this .serverName
193+ capability.serverColor = this .serverColor
194+ capability.serverTextColor = this .serverTextColor
195+ capability.serverElementColor = this .serverElementColor
196+ capability.serverSlogan = this .serverSlogan
197+ capability.serverLogo = this .serverLogo
198+ capability.serverBackground = this .serverBackgroundUrl
199+ capability.endToEndEncryption = intToBoolean(this .endToEndEncryption)
200+ capability.endToEndEncryptionKeysExist = intToBoolean(this .endToEndEncryptionKeysExist)
201+ capability.endToEndEncryptionApiVersion = this .endToEndEncryptionApiVersion?.let {
202+ E2EVersion .fromValue(it)
203+ } ? : E2EVersion .UNKNOWN
204+ capability.serverBackgroundDefault = intToBoolean(this .serverBackgroundDefault)
205+ capability.serverBackgroundPlain = intToBoolean(this .serverBackgroundPlain)
206+ capability.activity = intToBoolean(this .activity)
207+ capability.richDocuments = intToBoolean(this .richdocument)
208+ capability.richDocumentsDirectEditing = intToBoolean(this .richdocumentDirectEditing)
209+ capability.richDocumentsTemplatesAvailable = intToBoolean(this .richdocumentTemplates)
210+ capability.richDocumentsMimeTypeList = this .richdocumentMimetypeList?.split(" ," ) ? : emptyList()
211+ capability.richDocumentsOptionalMimeTypeList = this .richdocumentOptionalMimetypeList?.split(" ," ) ? : emptyList()
212+ capability.richDocumentsProductName = this .richdocumentProductName
213+ capability.directEditingEtag = this .directEditingEtag
214+ capability.etag = this .etag
215+ capability.userStatus = intToBoolean(this .userStatus)
216+ capability.userStatusSupportsEmoji = intToBoolean(this .userStatusSupportsEmoji)
217+ capability.userStatusSupportsBusy = intToBoolean(this .userStatusSupportsBusy)
218+ capability.filesLockingVersion = this .filesLockingVersion
219+ capability.assistant = intToBoolean(this .assistant)
220+ capability.groupfolders = intToBoolean(this .groupfolders)
221+ capability.dropAccount = intToBoolean(this .dropAccount)
222+ capability.securityGuard = intToBoolean(this .securityGuard)
223+ capability.forbiddenFilenameCharactersJson = this .forbiddenFileNameCharacters
224+ capability.forbiddenFilenamesJson = this .forbiddenFileNames
225+ capability.forbiddenFilenameExtensionJson = this .forbiddenFileNameExtensions
226+ capability.forbiddenFilenameBaseNamesJson = this .forbiddenFilenameBaseNames
227+ capability.isWCFEnabled = intToBoolean(this .isWCFEnabled)
228+ capability.filesDownloadLimit = intToBoolean(this .filesDownloadLimit)
229+ capability.filesDownloadLimitDefault = this .filesDownloadLimitDefault ? : 0
230+ capability.recommendations = intToBoolean(this .recommendation)
231+ capability.notesFolderPath = this .notesFolderPath
232+ capability.defaultPermissions = this .defaultPermissions ? : 0
233+ capability.hasValidSubscription = intToBoolean(this .hasValidSubscription)
234+ capability.clientIntegrationJson = this .clientIntegrationJson
235+
236+ return capability
237+ }
0 commit comments