Skip to content

Commit d04786b

Browse files
tobiasKaminskyAndyScherzinger
authored andcommitted
Update file version
Signed-off-by: tobiasKaminsky <[email protected]>
1 parent 2b1da4c commit d04786b

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

library/src/androidTest/java/com/owncloud/android/lib/resources/files/ReadFileVersionsRemoteOperationIT.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
3636
fun listVersions() {
3737
val txtFile = getFile(ASSETS__TEXT_FILE_NAME)
3838
val filePath = "/test.md"
39+
val mimetype = "txt/plain"
3940

4041
var uploadResult =
4142
UploadFileRemoteOperation(
4243
txtFile.absolutePath,
4344
filePath,
44-
"txt/plain",
45+
mimetype,
4546
System.currentTimeMillis() / MILLI_TO_SECOND
4647
)
4748
.execute(client)
@@ -62,7 +63,7 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
6263
// with NC26+ we always have a starting version
6364
versionCount++
6465
}
65-
assertEquals(versionCount, sutResult.data.size)
66+
assertEquals(versionCount, sutResult.resultData.size)
6667

6768
// modify file to have a version
6869
FileWriter(txtFile).apply {
@@ -75,7 +76,7 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
7576
UploadFileRemoteOperation(
7677
txtFile.absolutePath,
7778
filePath,
78-
"txt/plain",
79+
mimetype,
7980
System.currentTimeMillis() / MILLI_TO_SECOND
8081
)
8182
.execute(client)
@@ -89,6 +90,11 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
8990
assertTrue(sutResult.isSuccess)
9091

9192
versionCount++
92-
assertEquals(versionCount, sutResult.data.size)
93+
val versions = sutResult.resultData
94+
assertEquals(versionCount, versions.size)
95+
versions[0].apply {
96+
assertTrue(fileLength > 0)
97+
assertEquals(mimetype, mimeType)
98+
}
9399
}
94100
}

library/src/main/java/com/owncloud/android/lib/resources/files/ReadFileVersionsRemoteOperation.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@
4747
* Remote operation performing the read of remote versions on Nextcloud server.
4848
*/
4949

50-
public class ReadFileVersionsRemoteOperation extends RemoteOperation {
50+
public class ReadFileVersionsRemoteOperation extends RemoteOperation<ArrayList<FileVersion>> {
5151

5252
private static final String TAG = ReadFileVersionsRemoteOperation.class.getSimpleName();
5353

5454
private final long localId;
55-
private ArrayList<Object> versions;
55+
private ArrayList<FileVersion> versions;
5656

5757
/**
5858
* Constructor
@@ -69,8 +69,8 @@ public ReadFileVersionsRemoteOperation(long fileId) {
6969
* @param client Client object to communicate with the remote ownCloud server.
7070
*/
7171
@Override
72-
protected RemoteOperationResult run(OwnCloudClient client) {
73-
RemoteOperationResult result = null;
72+
protected RemoteOperationResult<ArrayList<FileVersion>> run(OwnCloudClient client) {
73+
RemoteOperationResult<ArrayList<FileVersion>> result = null;
7474
PropFindMethod query = null;
7575

7676
try {
@@ -89,34 +89,34 @@ protected RemoteOperationResult run(OwnCloudClient client) {
8989
readData(dataInServer, client);
9090

9191
// Result of the operation
92-
result = new RemoteOperationResult(true, query);
92+
result = new RemoteOperationResult<>(true, query);
9393
// Add data to the result
9494
if (result.isSuccess()) {
95-
result.setData(versions);
95+
result.setResultData(versions);
9696
}
9797
} else {
9898
// synchronization failed
9999
client.exhaustResponse(query.getResponseBodyAsStream());
100-
result = new RemoteOperationResult(false, query);
100+
result = new RemoteOperationResult<>(false, query);
101101
}
102102
} catch (Exception e) {
103-
result = new RemoteOperationResult(e);
103+
result = new RemoteOperationResult<>(e);
104104
} finally {
105105
if (query != null)
106106
query.releaseConnection(); // let the connection available for other methods
107107

108108
if (result == null) {
109-
result = new RemoteOperationResult(new Exception("unknown error"));
110-
Log_OC.e(TAG, "Synchronized file with id " + localId + ": failed");
109+
result = new RemoteOperationResult<>(new Exception("unknown error"));
110+
Log_OC.e(TAG, "Read file version for " + localId + ": failed");
111111
} else {
112112
if (result.isSuccess()) {
113-
Log_OC.i(TAG, "Synchronized file with id " + localId + ": " + result.getLogMessage());
113+
Log_OC.i(TAG, "Read file version for " + localId + ": " + result.getLogMessage());
114114
} else {
115115
if (result.isException()) {
116-
Log_OC.e(TAG, "Synchronized with id " + localId + ": " + result.getLogMessage(),
117-
result.getException());
116+
Log_OC.e(TAG, "Read file version for " + localId + ": " + result.getLogMessage(),
117+
result.getException());
118118
} else {
119-
Log_OC.w(TAG, "Synchronized with id " + localId + ": " + result.getLogMessage());
119+
Log_OC.w(TAG, "Read file version for " + localId + ": " + result.getLogMessage());
120120
}
121121
}
122122
}
@@ -139,7 +139,10 @@ private void readData(MultiStatus remoteData, OwnCloudClient client) {
139139

140140
// loop to update every child
141141
for (int i = 1; i < remoteData.getResponses().length; ++i) {
142-
versions.add(new FileVersion(localId, new WebdavEntry(remoteData.getResponses()[i], splitElement)));
142+
versions.add(new FileVersion(
143+
localId,
144+
new WebdavEntry(remoteData.getResponses()[i], splitElement))
145+
);
143146
}
144147
}
145148
}

0 commit comments

Comments
 (0)