Skip to content

Commit e0b542c

Browse files
tobiasKaminskyAndyScherzinger
authored andcommitted
Expose share by mail
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent 2b1da4c commit e0b542c

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
@@ -26,6 +26,13 @@
2626
*/
2727
package com.owncloud.android;
2828

29+
import static org.junit.Assert.assertEquals;
30+
import static org.junit.Assert.assertFalse;
31+
import static org.junit.Assert.assertNotNull;
32+
import static org.junit.Assert.assertNotSame;
33+
import static org.junit.Assert.assertSame;
34+
import static org.junit.Assert.assertTrue;
35+
2936
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
3037
import com.owncloud.android.lib.resources.status.CapabilityBooleanType;
3138
import com.owncloud.android.lib.resources.status.E2EVersion;
@@ -36,13 +43,6 @@
3643

3744
import org.junit.Test;
3845

39-
import static org.junit.Assert.assertEquals;
40-
import static org.junit.Assert.assertFalse;
41-
import static org.junit.Assert.assertNotNull;
42-
import static org.junit.Assert.assertNotSame;
43-
import static org.junit.Assert.assertSame;
44-
import static org.junit.Assert.assertTrue;
45-
4646
/**
4747
* Class to test GetRemoteCapabilitiesOperation
4848
*/
@@ -123,6 +123,25 @@ public void testGetRemoteCapabilitiesOperationEtagWithNextcloudClient() {
123123
checkCapability(capability, nextcloudClient.getUserId());
124124
}
125125

126+
@Test
127+
public void testFilesSharing() {
128+
// get capabilities
129+
RemoteOperationResult result = new GetCapabilitiesRemoteOperation().execute(nextcloudClient);
130+
assertTrue(result.isSuccess());
131+
assertTrue(result.getData() != null && result.getData().size() == 1);
132+
133+
OCCapability capability = (OCCapability) result.getData().get(0);
134+
135+
// share by mail
136+
if (capability.getVersion().isNewerOrEqual(NextcloudVersion.nextcloud_23)) {
137+
assertTrue(capability.getFilesSharingByMail().isTrue());
138+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isTrue());
139+
} else {
140+
assertTrue("Value is:" + capability.getFilesSharingByMail(), capability.getFilesSharingByMail().isTrue());
141+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isUnknown());
142+
}
143+
}
144+
126145
private void checkCapability(OCCapability capability, String userId) {
127146
assertTrue(capability.getActivity().isTrue());
128147
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
@@ -74,6 +74,7 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation {
7474
private static final String NODE_CORE = "core";
7575

7676
private static final String NODE_FILES_SHARING = "files_sharing";
77+
private static final String NODE_SHARE_BY_MAIL = "sharebymail";
7778
private static final String NODE_PUBLIC = "public";
7879
private static final String NODE_PASSWORD = "password";
7980
private static final String NODE_ASK_FOR_OPTIONAL_PASSWORD = "askForOptionalPassword";
@@ -89,6 +90,8 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation {
8990

9091
private static final String PROPERTY_POLLINTERVAL = "pollinterval";
9192

93+
private static final String PROPERTY_SEND_PASSWORD_BY_MAIL = "send_password_by_mail";
94+
9295
private static final String PROPERTY_MAJOR = "major";
9396
private static final String PROPERTY_MINOR = "minor";
9497
private static final String PROPERTY_MICRO = "micro";
@@ -422,6 +425,23 @@ private OCCapability parseResponse(String response) throws JSONException {
422425
capability.setFilesSharingFederationIncoming(CapabilityBooleanType.fromBooleanValue(
423426
respFederation.getBoolean(PROPERTY_INCOMING)));
424427
}
428+
429+
if (respFilesSharing.has(NODE_SHARE_BY_MAIL)) {
430+
JSONObject respByMail = respFilesSharing.getJSONObject(NODE_SHARE_BY_MAIL);
431+
capability.setFilesSharingByMail(CapabilityBooleanType.fromBooleanValue(
432+
respByMail.getBoolean(PROPERTY_ENABLED)));
433+
if (respByMail.has(PROPERTY_SEND_PASSWORD_BY_MAIL)) {
434+
capability.setFilesSharingByMailSendPasswordByMail(
435+
CapabilityBooleanType.fromBooleanValue(
436+
respByMail.getBoolean(PROPERTY_SEND_PASSWORD_BY_MAIL)));
437+
} else {
438+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
439+
}
440+
} else {
441+
capability.setFilesSharingByMail(CapabilityBooleanType.UNKNOWN);
442+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
443+
}
444+
425445
Log_OC.d(TAG, "*** Added " + NODE_FILES_SHARING);
426446
}
427447

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
@@ -68,6 +68,8 @@ class OCCapability {
6868
var filesSharingResharing = CapabilityBooleanType.UNKNOWN
6969
var filesSharingFederationOutgoing = CapabilityBooleanType.UNKNOWN
7070
var filesSharingFederationIncoming = CapabilityBooleanType.UNKNOWN
71+
var filesSharingByMail = CapabilityBooleanType.UNKNOWN
72+
var filesSharingByMailSendPasswordByMail = CapabilityBooleanType.UNKNOWN
7173

7274
// Files
7375
var filesBigFileChunking = CapabilityBooleanType.UNKNOWN

0 commit comments

Comments
 (0)