diff --git a/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesRemoteOperationIT.java b/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesRemoteOperationIT.java index 0b8bcda75..a15461c87 100644 --- a/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesRemoteOperationIT.java +++ b/library/src/androidTest/java/com/owncloud/android/GetCapabilitiesRemoteOperationIT.java @@ -9,6 +9,13 @@ */ package com.owncloud.android; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.resources.status.CapabilityBooleanType; import com.owncloud.android.lib.resources.status.E2EVersion; @@ -19,13 +26,6 @@ import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; - /** * Class to test GetRemoteCapabilitiesOperation */ @@ -164,5 +164,8 @@ private void checkCapability(OCCapability capability, String userId) { if (capability.getVersion().isNewerOrEqual(NextcloudVersion.nextcloud_32)) { assertTrue(capability.getUserStatusSupportsBusy().isTrue()); } + + // support + assertTrue(capability.getHasValidSubscription().isFalse()); } } diff --git a/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java b/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java index 431ac4acb..cddfcbc54 100644 --- a/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java +++ b/library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java @@ -180,6 +180,10 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation { private static final String PROPERTY_DEFAULT_PERMISSIONS = "default_permissions"; + // support + private static final String NODE_SUPPORT = "support"; + private static final String HAS_VALID_SUBSCRIPTION = "hasValidSubscription"; + private OCCapability currentCapability = null; public GetCapabilitiesRemoteOperation() { @@ -805,6 +809,18 @@ private OCCapability parseResponse(String response) throws JSONException { } } + // support + if (respCapabilities.has(NODE_SUPPORT)) { + JSONObject supportCapability = respCapabilities.getJSONObject(NODE_SUPPORT); + + if (supportCapability.getBoolean(HAS_VALID_SUBSCRIPTION)) { + capability.setHasValidSubscription(CapabilityBooleanType.TRUE); + } else { + capability.setHasValidSubscription(CapabilityBooleanType.FALSE); + } + } else { + capability.setHasValidSubscription(CapabilityBooleanType.FALSE); + } } Log_OC.d(TAG, "*** Get Capabilities completed "); diff --git a/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt b/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt index dc435ff38..8bd752133 100644 --- a/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt +++ b/library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt @@ -126,6 +126,9 @@ class OCCapability { var defaultPermissions: Int? = null + // support + var hasValidSubscription = CapabilityBooleanType.UNKNOWN + val version: OwnCloudVersion get() = OwnCloudVersion(