Skip to content

Commit 46191c6

Browse files
Expose share by mail
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent afe15c5 commit 46191c6

File tree

3 files changed

+48
-6
lines changed

3 files changed

+48
-6
lines changed

src/androidTest/java/com/owncloud/android/GetCapabilitiesIT.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,21 @@
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.assertSame;
33+
import static org.junit.Assert.assertTrue;
34+
2935
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
3036
import com.owncloud.android.lib.resources.status.CapabilityBooleanType;
3137
import com.owncloud.android.lib.resources.status.GetCapabilitiesRemoteOperation;
38+
import com.owncloud.android.lib.resources.status.NextcloudVersion;
3239
import com.owncloud.android.lib.resources.status.OCCapability;
3340
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
3441

3542
import org.junit.Test;
3643

37-
import static org.junit.Assert.assertEquals;
38-
import static org.junit.Assert.assertFalse;
39-
import static org.junit.Assert.assertNotNull;
40-
import static org.junit.Assert.assertSame;
41-
import static org.junit.Assert.assertTrue;
42-
4344
/**
4445
* Class to test GetRemoteCapabilitiesOperation
4546
*/
@@ -120,6 +121,25 @@ public void testGetRemoteCapabilitiesOperationEtagWithNextcloudClient() {
120121
checkCapability(capability);
121122
}
122123

124+
@Test
125+
public void testFilesSharing() {
126+
// get capabilities
127+
RemoteOperationResult result = new GetCapabilitiesRemoteOperation().execute(nextcloudClient);
128+
assertTrue(result.isSuccess());
129+
assertTrue(result.getData() != null && result.getData().size() == 1);
130+
131+
OCCapability capability = (OCCapability) result.getData().get(0);
132+
133+
// share by mail
134+
if (capability.getVersion().isNewerOrEqual(NextcloudVersion.Companion.getNextcloud_23())) {
135+
assertTrue(capability.getFilesSharingByMail().isTrue());
136+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isTrue());
137+
} else {
138+
assertTrue("Value is:" + capability.getFilesSharingByMail(), capability.getFilesSharingByMail().isTrue());
139+
assertTrue(capability.getFilesSharingByMailSendPasswordByMail().isUnknown());
140+
}
141+
}
142+
123143
private void checkCapability(OCCapability capability) {
124144
assertTrue(capability.getActivity().isTrue());
125145
assertTrue(capability.getFilesSharingApiEnabled().isTrue());

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";
@@ -406,6 +409,23 @@ private OCCapability parseResponse(String response) throws JSONException {
406409
capability.setFilesSharingFederationIncoming(CapabilityBooleanType.fromBooleanValue(
407410
respFederation.getBoolean(PROPERTY_INCOMING)));
408411
}
412+
413+
if (respFilesSharing.has(NODE_SHARE_BY_MAIL)) {
414+
JSONObject respByMail = respFilesSharing.getJSONObject(NODE_SHARE_BY_MAIL);
415+
capability.setFilesSharingByMail(CapabilityBooleanType.fromBooleanValue(
416+
respByMail.getBoolean(PROPERTY_ENABLED)));
417+
if (respByMail.has(PROPERTY_SEND_PASSWORD_BY_MAIL)) {
418+
capability.setFilesSharingByMailSendPasswordByMail(
419+
CapabilityBooleanType.fromBooleanValue(
420+
respByMail.getBoolean(PROPERTY_SEND_PASSWORD_BY_MAIL)));
421+
} else {
422+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
423+
}
424+
} else {
425+
capability.setFilesSharingByMail(CapabilityBooleanType.UNKNOWN);
426+
capability.setFilesSharingByMailSendPasswordByMail(CapabilityBooleanType.UNKNOWN);
427+
}
428+
409429
Log_OC.d(TAG, "*** Added " + NODE_FILES_SHARING);
410430
}
411431

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ public class OCCapability {
7878
private CapabilityBooleanType filesSharingResharing;
7979
private CapabilityBooleanType filesSharingFederationOutgoing;
8080
private CapabilityBooleanType filesSharingFederationIncoming;
81+
private CapabilityBooleanType filesSharingByMail;
82+
private CapabilityBooleanType filesSharingByMailSendPasswordByMail;
8183

8284
// Files
8385
private CapabilityBooleanType filesBigFileChunking;

0 commit comments

Comments
 (0)