Skip to content

Commit e595288

Browse files
Expose share by mail
Signed-off-by: tobiasKaminsky <[email protected]>
1 parent 856c251 commit e595288

File tree

3 files changed

+48
-7
lines changed

3 files changed

+48
-7
lines changed

library/src/androidTest/java/com/owncloud/android/GetCapabilitiesRemoteOperationIT.java

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@
99
*/
1010
package com.owncloud.android;
1111

12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.assertFalse;
14+
import static org.junit.Assert.assertNotNull;
15+
import static org.junit.Assert.assertNotSame;
16+
import static org.junit.Assert.assertSame;
17+
import static org.junit.Assert.assertTrue;
18+
1219
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
1320
import com.owncloud.android.lib.resources.status.CapabilityBooleanType;
1421
import com.owncloud.android.lib.resources.status.E2EVersion;
@@ -19,13 +26,6 @@
1926

2027
import org.junit.Test;
2128

22-
import static org.junit.Assert.assertEquals;
23-
import static org.junit.Assert.assertFalse;
24-
import static org.junit.Assert.assertNotNull;
25-
import static org.junit.Assert.assertNotSame;
26-
import static org.junit.Assert.assertSame;
27-
import static org.junit.Assert.assertTrue;
28-
2929
/**
3030
* Class to test GetRemoteCapabilitiesOperation
3131
*/
@@ -106,6 +106,25 @@ public void testGetRemoteCapabilitiesOperationEtagWithNextcloudClient() {
106106
checkCapability(capability, nextcloudClient.getUserId());
107107
}
108108

109+
@Test
110+
public void testFilesSharing() {
111+
// get capabilities
112+
RemoteOperationResult result = new GetCapabilitiesRemoteOperation().execute(nextcloudClient);
113+
assertTrue(result.isSuccess());
114+
assertTrue(result.getData() != null && result.getData().size() == 1);
115+
116+
OCCapability capability = (OCCapability) result.getData().get(0);
117+
118+
// share by mail
119+
if (capability.getVersion().isNewerOrEqual(NextcloudVersion.nextcloud_23)) {
120+
assertTrue(capability.getFilesSharingByMail().isTrue());
121+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isTrue());
122+
} else {
123+
assertTrue("Value is:" + capability.getFilesSharingByMail(), capability.getFilesSharingByMail().isTrue());
124+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isUnknown());
125+
}
126+
}
127+
109128
private void checkCapability(OCCapability capability, String userId) {
110129
assertTrue(capability.getActivity().isTrue());
111130
assertTrue(capability.getFilesSharingApiEnabled().isTrue());

library/src/main/java/com/owncloud/android/lib/resources/status/GetCapabilitiesRemoteOperation.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation {
5959
private static final String NODE_CORE = "core";
6060

6161
private static final String NODE_FILES_SHARING = "files_sharing";
62+
private static final String NODE_SHARE_BY_MAIL = "sharebymail";
6263
private static final String NODE_PUBLIC = "public";
6364
private static final String NODE_PASSWORD = "password";
6465
private static final String NODE_ASK_FOR_OPTIONAL_PASSWORD = "askForOptionalPassword";
@@ -74,6 +75,8 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation {
7475

7576
private static final String PROPERTY_POLLINTERVAL = "pollinterval";
7677

78+
private static final String PROPERTY_SEND_PASSWORD_BY_MAIL = "send_password_by_mail";
79+
7780
private static final String PROPERTY_MAJOR = "major";
7881
private static final String PROPERTY_MINOR = "minor";
7982
private static final String PROPERTY_MICRO = "micro";
@@ -414,6 +417,23 @@ private OCCapability parseResponse(String response) throws JSONException {
414417
capability.setFilesSharingFederationIncoming(CapabilityBooleanType.fromBooleanValue(
415418
respFederation.getBoolean(PROPERTY_INCOMING)));
416419
}
420+
421+
if (respFilesSharing.has(NODE_SHARE_BY_MAIL)) {
422+
JSONObject respByMail = respFilesSharing.getJSONObject(NODE_SHARE_BY_MAIL);
423+
capability.setFilesSharingByMail(CapabilityBooleanType.fromBooleanValue(
424+
respByMail.getBoolean(PROPERTY_ENABLED)));
425+
if (respByMail.has(PROPERTY_SEND_PASSWORD_BY_MAIL)) {
426+
capability.setFilesSharingByMailSendPasswordByMail(
427+
CapabilityBooleanType.fromBooleanValue(
428+
respByMail.getBoolean(PROPERTY_SEND_PASSWORD_BY_MAIL)));
429+
} else {
430+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
431+
}
432+
} else {
433+
capability.setFilesSharingByMail(CapabilityBooleanType.UNKNOWN);
434+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
435+
}
436+
417437
Log_OC.d(TAG, "*** Added " + NODE_FILES_SHARING);
418438
}
419439

library/src/main/java/com/owncloud/android/lib/resources/status/OCCapability.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ class OCCapability {
5353
var filesSharingResharing = CapabilityBooleanType.UNKNOWN
5454
var filesSharingFederationOutgoing = CapabilityBooleanType.UNKNOWN
5555
var filesSharingFederationIncoming = CapabilityBooleanType.UNKNOWN
56+
var filesSharingByMail = CapabilityBooleanType.UNKNOWN
57+
var filesSharingByMailSendPasswordByMail = CapabilityBooleanType.UNKNOWN
5658

5759
// Files
5860
var filesBigFileChunking = CapabilityBooleanType.UNKNOWN

0 commit comments

Comments
 (0)