From 9ab7c139e124dc1b03fbc18557ad8fb7d2112a9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20Garc=C3=ADa=20de=20Prada?= Date: Thu, 18 Aug 2022 12:34:48 +0200 Subject: [PATCH] Retrieve the app providers from the capabilities --- .../lib/resources/status/RemoteCapability.kt | 12 +++++++++- .../status/responses/CapabilityResponse.kt | 22 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/RemoteCapability.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/RemoteCapability.kt index 8295d5ff..2f9f3f86 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/RemoteCapability.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/RemoteCapability.kt @@ -66,7 +66,8 @@ data class RemoteCapability( // Files var filesBigFileChunking: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN, var filesUndelete: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN, - var filesVersioning: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN + var filesVersioning: CapabilityBooleanType = CapabilityBooleanType.UNKNOWN, + val remoteOcisProviders: List?, ) { /** * Enum for Boolean Type in capabilities, with values: @@ -98,4 +99,13 @@ data class RemoteCapability( } } } + + data class RemoteOCISProvider( + val enabled: Boolean, + val version: String, + val appsUrl: String?, + val openUrl: String?, + val openWebUrl: String?, + val newUrl: String?, + ) } diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/responses/CapabilityResponse.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/responses/CapabilityResponse.kt index 2965530b..82a1bca7 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/responses/CapabilityResponse.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/status/responses/CapabilityResponse.kt @@ -26,6 +26,7 @@ package com.owncloud.android.lib.resources.status.responses import com.owncloud.android.lib.resources.status.RemoteCapability import com.owncloud.android.lib.resources.status.RemoteCapability.CapabilityBooleanType +import com.owncloud.android.lib.resources.status.RemoteCapability.RemoteOCISProvider import com.squareup.moshi.Json import com.squareup.moshi.JsonClass @@ -68,6 +69,7 @@ data class CapabilityResponse( filesBigFileChunking = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.bigfilechunking), filesUndelete = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.undelete), filesVersioning = CapabilityBooleanType.fromBooleanValue(capabilities?.fileCapabilities?.versioning), + remoteOcisProviders = capabilities?.fileCapabilities?.appProviders?.map { it.toOCISProvider() }, filesSharingFederationIncoming = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.incoming), filesSharingFederationOutgoing = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingFederation?.outgoing), filesSharingUserProfilePicture = CapabilityBooleanType.fromBooleanValue(capabilities?.fileSharingCapabilities?.fileSharingUser?.profilePicture), @@ -160,9 +162,27 @@ data class FileSharingUser( data class FileCapabilities( val bigfilechunking: Boolean?, val undelete: Boolean?, - val versioning: Boolean? + val versioning: Boolean?, + @Json(name = "app_providers") + val appProviders: List? ) +@JsonClass(generateAdapter = true) +data class AppProvider( + val enabled: Boolean, + val version: String, + @Json(name = "apps_url") + val appsUrl: String?, + @Json(name = "open_url") + val openUrl: String?, + @Json(name = "open_web_url") + val openWebUrl: String?, + @Json(name = "new_url") + val newUrl: String?, +) { + fun toOCISProvider() = RemoteOCISProvider(enabled, version, appsUrl, openUrl, openWebUrl, newUrl) +} + @JsonClass(generateAdapter = true) data class DavCapabilities( val chunking: String?