Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@
*/
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;
Expand All @@ -26,6 +19,13 @@

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
*/
Expand Down Expand Up @@ -153,11 +153,16 @@ private void checkCapability(OCCapability capability, String userId) {
}

// e2e
assertNotSame(capability.getEndToEndEncryptionApiVersion(), E2EVersion.UNKNOWN);
assertNotSame(E2EVersion.UNKNOWN, capability.getEndToEndEncryptionApiVersion());

// recommendations
if (capability.getVersion().isNewerOrEqual(NextcloudVersion.nextcloud_31)) {
assertTrue(capability.getRecommendations().isTrue());
}

// busy
if (capability.getVersion().isNewerOrEqual(NextcloudVersion.nextcloud_32)) {
assertTrue(capability.getUserStatusSupportsBusy().isTrue());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ public class GetCapabilitiesRemoteOperation extends RemoteOperation {
private static final String NODE_USER_STATUS = "user_status";
private static final String NODE_USER_STATUS_ENABLED = "enabled";
private static final String NODE_USER_STATUS_SUPPORTS_EMOJI = "supports_emoji";
private static final String NODE_USER_STATUS_SUPPORTS_BUSY = "supports_busy";

// groupfolders
private static final String NODE_GROUPFOLDERS = "groupfolders";
Expand Down Expand Up @@ -697,9 +698,16 @@ private OCCapability parseResponse(String response) throws JSONException {
} else {
capability.setUserStatusSupportsEmoji(CapabilityBooleanType.FALSE);
}

if (userStatusCapability.getBoolean(NODE_USER_STATUS_SUPPORTS_BUSY)) {
capability.setUserStatusSupportsBusy(CapabilityBooleanType.TRUE);
} else {
capability.setUserStatusSupportsBusy(CapabilityBooleanType.FALSE);
}
} else {
capability.setUserStatus(CapabilityBooleanType.FALSE);
capability.setUserStatusSupportsEmoji(CapabilityBooleanType.FALSE);
capability.setUserStatusSupportsBusy(CapabilityBooleanType.FALSE);
}

// groupfolders
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ class NextcloudVersion : OwnCloudVersion {

@JvmField
val nextcloud_31 = NextcloudVersion(0x1F000000) // 31.0

@JvmField
val nextcloud_32 = NextcloudVersion(0x20000000) // 32.0
}

constructor(string: String) : super(string)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ class OCCapability {
// user status
var userStatus = CapabilityBooleanType.UNKNOWN
var userStatusSupportsEmoji = CapabilityBooleanType.UNKNOWN
var userStatusSupportsBusy = CapabilityBooleanType.UNKNOWN

// Groupfolders
var groupfolders = CapabilityBooleanType.UNKNOWN
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

import org.apache.commons.httpclient.HttpStatus;

import androidx.annotation.Nullable;

/**
* Remote operation performing setting user defined custom status message
*/
Expand All @@ -28,7 +30,7 @@ public class SetUserDefinedCustomStatusMessageRemoteOperation extends OCSRemoteO
private final String statusIcon;
private final Long clearAt;

public SetUserDefinedCustomStatusMessageRemoteOperation(String message, String statusIcon, Long clearAt) {
public SetUserDefinedCustomStatusMessageRemoteOperation(String message, String statusIcon, @Nullable Long clearAt) {
this.message = message;
this.statusIcon = statusIcon;
this.clearAt = clearAt;
Expand All @@ -46,7 +48,9 @@ public RemoteOperationResult<Void> run(NextcloudClient client) {
// request body
JSONRequestBody jsonRequestBody = new JSONRequestBody("message", message);
jsonRequestBody.put("statusIcon", statusIcon);
jsonRequestBody.put("clearAt", clearAt.toString());
if (clearAt != null) {
jsonRequestBody.put("clearAt", clearAt.toString());
}

// remote request
putMethod = new PutMethod(client.getBaseUri() + SET_STATUS_URL, true, jsonRequestBody.get());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import android.os.Parcelable
class Status(
val status: StatusType,
val message: String?,
val icon: String,
val icon: String?,
val clearAt: Long
) : Parcelable {
constructor(parcel: Parcel) : this(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,8 @@ enum class StatusType(
AWAY("away"),

@SerializedName("invisible")
INVISIBLE("invisible")
INVISIBLE("invisible"),

@SerializedName("busy")
BUSY("busy")
}
Loading