Skip to content

Commit a0e7ce2

Browse files
Update file version
Signed-off-by: tobiasKaminsky <[email protected]>
1 parent 84d07c8 commit a0e7ce2

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,11 +36,12 @@ 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 = UploadFileRemoteOperation(
4142
txtFile.absolutePath,
4243
filePath,
43-
"txt/plain",
44+
mimetype,
4445
System.currentTimeMillis() / MILLI_TO_SECOND
4546
)
4647
.execute(client)
@@ -60,7 +61,7 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
6061
// with NC26+ we always have a starting version
6162
versionCount++
6263
}
63-
assertEquals(versionCount, sutResult.data.size)
64+
assertEquals(versionCount, sutResult.resultData.size)
6465

6566
// modify file to have a version
6667
FileWriter(txtFile).apply {
@@ -72,7 +73,7 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
7273
uploadResult = UploadFileRemoteOperation(
7374
txtFile.absolutePath,
7475
filePath,
75-
"txt/plain",
76+
mimetype,
7677
System.currentTimeMillis() / MILLI_TO_SECOND
7778
)
7879
.execute(client)
@@ -86,6 +87,11 @@ class ReadFileVersionsRemoteOperationIT : AbstractIT() {
8687
assertTrue(sutResult.isSuccess)
8788

8889
versionCount++
89-
assertEquals(versionCount, sutResult.data.size)
90+
val versions = sutResult.resultData
91+
assertEquals(versionCount, versions.size)
92+
versions[0].apply {
93+
assertTrue(fileLength > 0)
94+
assertEquals(mimetype, mimeType)
95+
}
9096
}
9197
}

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)