Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/android-library.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobiasKaminsky <tobias@kaminsky.me>2022-08-23 09:34:50 +0300
committertobiasKaminsky <tobias@kaminsky.me>2022-10-10 13:31:02 +0300
commitdd315dadabfa2a12db156bb9ad70a55813a15740 (patch)
treeba40d03178a5c1bb191860a0bd4f9c0e5fe05e60
parent5c318c706e4415be3d75e793b6e96ce2c965fe4e (diff)
Add dashboard
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
-rw-r--r--gradle.properties2
-rw-r--r--library/build.gradle2
-rw-r--r--library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardGetWidgetItemsRemoteOperationIT.kt19
-rw-r--r--library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardListWidgetsRemoteOperationIT.kt9
-rw-r--r--library/src/androidTest/java/com/owncloud/android/AbstractIT.java9
-rw-r--r--library/src/main/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperation.kt2
-rw-r--r--library/src/main/java/com/owncloud/android/lib/common/network/WebdavEntry.java40
7 files changed, 61 insertions, 22 deletions
diff --git a/gradle.properties b/gradle.properties
index 60377ad6..d20565d6 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,4 +2,6 @@
NC_TEST_SERVER_BASEURL=https://server
NC_TEST_SERVER_USERNAME=test
NC_TEST_SERVER_PASSWORD=test
+NC_TEST_SERVER_USERNAME2=admin
+NC_TEST_SERVER_PASSWORD2=admin
android.useAndroidX=true
diff --git a/library/build.gradle b/library/build.gradle
index a813250d..e441791b 100644
--- a/library/build.gradle
+++ b/library/build.gradle
@@ -131,6 +131,8 @@ android {
testInstrumentationRunnerArgument "TEST_SERVER_URL", "${NC_TEST_SERVER_BASEURL}"
testInstrumentationRunnerArgument "TEST_SERVER_USERNAME", "${NC_TEST_SERVER_USERNAME}"
testInstrumentationRunnerArgument "TEST_SERVER_PASSWORD", "${NC_TEST_SERVER_PASSWORD}"
+ testInstrumentationRunnerArgument "TEST_SERVER_USERNAME2", "${NC_TEST_SERVER_USERNAME2}"
+ testInstrumentationRunnerArgument "TEST_SERVER_PASSWORD2", "${NC_TEST_SERVER_PASSWORD2}"
testInstrumentationRunnerArguments disableAnalytics: 'true'
multiDexEnabled true
diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardGetWidgetItemsRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardGetWidgetItemsRemoteOperationIT.kt
index 75a59a39..a52be361 100644
--- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardGetWidgetItemsRemoteOperationIT.kt
+++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardGetWidgetItemsRemoteOperationIT.kt
@@ -23,13 +23,30 @@
package com.nextcloud.android.lib.resources.dashboard
import com.owncloud.android.AbstractIT
+import com.owncloud.android.lib.resources.files.CreateFolderRemoteOperation
+import com.owncloud.android.lib.resources.shares.CreateShareRemoteOperation
+import com.owncloud.android.lib.resources.shares.ShareType
import org.junit.Assert.assertTrue
import org.junit.Test
class DashboardGetWidgetItemsRemoteOperationIT : AbstractIT() {
@Test
fun getItems() {
- val widgetId = "recommendations"
+ // create folder to have some content
+ assertTrue(CreateFolderRemoteOperation("/testFolder", false).execute(client2).isSuccess)
+ assertTrue(
+ CreateShareRemoteOperation(
+ "/testFolder",
+ ShareType.USER,
+ client.userId,
+ false,
+ "",
+ 31
+ ).execute(client2)
+ .isSuccess
+ )
+
+ val widgetId = "activity"
val result =
DashboardGetWidgetItemsRemoteOperation(widgetId, LIMIT_SIZE).execute(nextcloudClient)
diff --git a/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardListWidgetsRemoteOperationIT.kt b/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardListWidgetsRemoteOperationIT.kt
index df163e53..69b2d1f6 100644
--- a/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardListWidgetsRemoteOperationIT.kt
+++ b/library/src/androidTest/java/com/nextcloud/android/lib/resources/dashboard/DashboardListWidgetsRemoteOperationIT.kt
@@ -37,11 +37,10 @@ class DashboardListWidgetsRemoteOperationIT : AbstractIT() {
assertTrue(result.resultData["recommendations"]?.buttons?.getOrNull(0) == null)
- assertTrue(result.resultData["notes"]?.buttons?.getOrNull(0)?.text?.isNotEmpty() == true)
- assertTrue(result.resultData["notes"]?.buttons?.getOrNull(0)?.type == DashBoardButtonType.NEW)
- assertTrue(result.resultData["notes"]?.roundIcons == false)
+ assertEquals(1, result.resultData["activity"]?.buttons?.size)
+ assertTrue(result.resultData["activity"]?.buttons?.getOrNull(0)?.type == DashBoardButtonType.MORE)
+ assertTrue(result.resultData["activity"]?.roundIcons == false)
- assertEquals(0, result.resultData["activity"]?.buttons?.size)
- assertTrue(result.resultData["activity"]?.roundIcons == true)
+ assertTrue(result.resultData["user_status"]?.roundIcons == true)
}
}
diff --git a/library/src/androidTest/java/com/owncloud/android/AbstractIT.java b/library/src/androidTest/java/com/owncloud/android/AbstractIT.java
index 352761a6..c8692779 100644
--- a/library/src/androidTest/java/com/owncloud/android/AbstractIT.java
+++ b/library/src/androidTest/java/com/owncloud/android/AbstractIT.java
@@ -81,6 +81,7 @@ public abstract class AbstractIT {
public static final int MILLI_TO_SECOND = 1000;
public static OwnCloudClient client;
+ public static OwnCloudClient client2;
protected static NextcloudClient nextcloudClient;
protected static Context context;
protected static Uri url;
@@ -107,6 +108,14 @@ public abstract class AbstractIT {
client.setCredentials(new OwnCloudBasicCredentials(loginName, password));
client.setUserId(loginName); // for test same as userId
+ // second user to test internal sharing
+ String loginName2 = arguments.getString("TEST_SERVER_USERNAME2");
+ String password2 = arguments.getString("TEST_SERVER_PASSWORD2");
+
+ client2 = OwnCloudClientFactory.createOwnCloudClient(url, context, true);
+ client2.setCredentials(new OwnCloudBasicCredentials(loginName2, password2));
+ client2.setUserId(loginName2); // for test same as userId
+
OwnCloudClientManagerFactory.setUserAgent("Mozilla/5.0 (Android) Nextcloud-android/1.0.0");
String userId = loginName; // for test same as userId
diff --git a/library/src/main/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperation.kt b/library/src/main/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperation.kt
index 91b03bfb..093adaf0 100644
--- a/library/src/main/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperation.kt
+++ b/library/src/main/java/com/nextcloud/android/lib/resources/search/UnifiedSearchRemoteOperation.kt
@@ -66,8 +66,8 @@ class UnifiedSearchRemoteOperation(
var uri = client.baseUri.toString() +
ENDPOINT +
provider +
- JSON_FORMAT +
SEARCH +
+ JSON_FORMAT +
TERM +
URLEncoder.encode(query, "UTF-8") +
LIMIT.format(limit)
diff --git a/library/src/main/java/com/owncloud/android/lib/common/network/WebdavEntry.java b/library/src/main/java/com/owncloud/android/lib/common/network/WebdavEntry.java
index fa872fe8..57c830c9 100644
--- a/library/src/main/java/com/owncloud/android/lib/common/network/WebdavEntry.java
+++ b/library/src/main/java/com/owncloud/android/lib/common/network/WebdavEntry.java
@@ -46,6 +46,7 @@ import java.util.List;
import javax.annotation.Nullable;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import lombok.Getter;
import lombok.Setter;
@@ -124,16 +125,26 @@ public class WebdavEntry {
@Getter private ShareeUser[] sharees = new ShareeUser[0];
@Getter private String richWorkspace = null;
@Getter private boolean isLocked = false;
- @Getter private FileLockType lockOwnerType = null;
- @Getter private String lockOwnerId = null;
- @Getter private String lockOwnerDisplayName = null;
- @Getter private long lockTimestamp;
- @Getter private String lockOwnerEditor = null;
- @Getter private long lockTimeout;
- @Getter private String lockToken = null;
+ @Getter
+ private FileLockType lockOwnerType = null;
+ @Getter
+ private String lockOwnerId = null;
+ @Getter
+ private String lockOwnerDisplayName = null;
+ @Getter
+ private long lockTimestamp;
+ @Getter
+ private String lockOwnerEditor = null;
+ @Getter
+ private long lockTimeout;
+ @Getter
+ private String lockToken = null;
public enum MountType {INTERNAL, EXTERNAL, GROUP}
+ @SuppressFBWarnings(
+ value = "STT_TOSTRING_STORED_IN_FIELD",
+ justification = "Will be replaced with davX5")
public WebdavEntry(MultiStatusResponse ms, String splitElement) {
resetData();
@@ -155,8 +166,7 @@ public class WebdavEntry {
if (prop != null) {
name = prop.getName().toString();
name = name.substring(1, name.length() - 1);
- }
- else {
+ } else {
String[] tmp = path.split("/");
if (tmp.length > 0)
name = tmp[tmp.length - 1];
@@ -178,7 +188,7 @@ public class WebdavEntry {
}
}
}
-
+
// check if it's a folder in the standard way: see RFC2518 12.2 . RFC4918 14.3
// {DAV:}resourcetype
prop = propSet.get(DavPropertyName.RESOURCETYPE);
@@ -186,9 +196,9 @@ public class WebdavEntry {
Object value = prop.getValue();
if (value != null) {
contentType = "DIR"; // a specific attribute would be better,
- // but this is enough;
- // unless while we have no reason to distinguish
- // MIME types for folders
+ // but this is enough;
+ // unless while we have no reason to distinguish
+ // MIME types for folders
}
}
@@ -341,7 +351,7 @@ public class WebdavEntry {
} else {
hasPreview = true;
}
-
+
// NC trashbin-original-location <nc:trashbin-original-location>
prop = propSet.get(TRASHBIN_ORIGINAL_LOCATION, ncNamespace);
if (prop != null) {
@@ -386,7 +396,7 @@ public class WebdavEntry {
ArrayList list = (ArrayList) prop.getValue();
List<ShareeUser> tempList = new ArrayList<>();
-
+
for (int i = 0; i < list.size(); i++) {
Element element = (Element) list.get(i);