Skip to content

Commit 095acc9

Browse files
migrate CheckRemoteWipeRemoteOperation to NextcloudClient
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent d525104 commit 095acc9

2 files changed

Lines changed: 31 additions & 39 deletions

File tree

library/src/androidTest/java/com/owncloud/android/lib/resources/users/CheckRemoteWipeRemoteOperationIT.kt

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/*
22
* Nextcloud Android Library
33
*
4-
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
5-
* SPDX-FileCopyrightText: 2023 Tobias Kaminsky <tobias@kaminsky.me>
4+
* SPDX-FileCopyrightText: 2020-2025 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-FileCopyrightText: 2025 Tobias Kaminsky <tobias@kaminsky.me>
66
* SPDX-License-Identifier: MIT
77
*/
88

@@ -11,9 +11,8 @@ package com.owncloud.android.lib.resources.users
1111
import android.text.TextUtils
1212
import com.nextcloud.android.lib.resources.users.GenerateAppPasswordRemoteOperation
1313
import com.owncloud.android.AbstractIT
14-
import com.owncloud.android.lib.common.OwnCloudBasicCredentials
15-
import org.junit.Assert.assertFalse
16-
import org.junit.Assert.assertTrue
14+
import junit.framework.TestCase.assertFalse
15+
import junit.framework.TestCase.assertTrue
1716
import org.junit.Test
1817

1918
class CheckRemoteWipeRemoteOperationIT : AbstractIT() {
@@ -25,14 +24,7 @@ class CheckRemoteWipeRemoteOperationIT : AbstractIT() {
2524
val appPassword = appTokenResult.resultData
2625
assertFalse(TextUtils.isEmpty(appPassword))
2726

28-
client.credentials =
29-
OwnCloudBasicCredentials(
30-
client.credentials.username,
31-
appPassword,
32-
true
33-
)
34-
35-
val wipeResult = CheckRemoteWipeRemoteOperation().execute(client)
27+
val wipeResult = CheckRemoteWipeRemoteOperation(appPassword).execute(nextcloudClient)
3628

3729
// device should not be wiped
3830
assertFalse(wipeResult.isSuccess)

library/src/main/java/com/owncloud/android/lib/resources/users/CheckRemoteWipeRemoteOperation.java

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,74 +7,74 @@
77
*/
88
package com.owncloud.android.lib.resources.users;
99

10-
import com.nextcloud.common.SessionTimeOut;
11-
import com.nextcloud.common.SessionTimeOutKt;
12-
import com.owncloud.android.lib.common.OwnCloudClient;
10+
import com.google.gson.Gson;
11+
import com.nextcloud.common.NextcloudClient;
12+
import com.nextcloud.operations.PostMethod;
1313
import com.owncloud.android.lib.common.operations.RemoteOperation;
1414
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
1515
import com.owncloud.android.lib.common.utils.Log_OC;
1616

1717
import org.apache.commons.httpclient.HttpStatus;
18-
import org.apache.commons.httpclient.methods.Utf8PostMethod;
1918
import org.json.JSONObject;
2019

20+
import java.util.HashMap;
21+
22+
import okhttp3.MediaType;
23+
import okhttp3.RequestBody;
24+
2125

2226
/**
2327
* Remote operation performing check if app token is scheduled for remote wipe
2428
*/
2529

26-
public class CheckRemoteWipeRemoteOperation extends RemoteOperation {
30+
public class CheckRemoteWipeRemoteOperation extends RemoteOperation<Void> {
2731

2832
private static final String TAG = CheckRemoteWipeRemoteOperation.class.getSimpleName();
2933
private static final String REMOTE_WIPE_URL = "/index.php/core/wipe/check";
3034

3135
// JSON node names
3236
private static final String WIPE = "wipe";
33-
private final SessionTimeOut sessionTimeOut;
3437

35-
public CheckRemoteWipeRemoteOperation() {
36-
this(SessionTimeOutKt.getDefaultSessionTimeOut());
37-
}
38+
private final String authToken;
3839

39-
public CheckRemoteWipeRemoteOperation(SessionTimeOut sessionTimeOut) {
40-
this.sessionTimeOut = sessionTimeOut;
40+
public CheckRemoteWipeRemoteOperation(String authToken) {
41+
this.authToken = authToken;
4142
}
4243

4344
/**
4445
* @param client Client object
4546
*/
4647
@Override
47-
protected RemoteOperationResult run(OwnCloudClient client) {
48-
Utf8PostMethod postMethod = null;
49-
RemoteOperationResult result;
48+
public RemoteOperationResult<Void> run(NextcloudClient client) {
49+
PostMethod postMethod = null;
50+
RemoteOperationResult<Void> result;
5051

5152
try {
52-
postMethod = new Utf8PostMethod(client.getBaseUri() + REMOTE_WIPE_URL + JSON_FORMAT);
53+
HashMap<String, String> map = new HashMap<>();
54+
map.put(REMOTE_WIPE_TOKEN, authToken);
55+
56+
String jsonString = new Gson().toJson(map);
57+
58+
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonString);
59+
postMethod = new PostMethod(client.getBaseUri() + REMOTE_WIPE_URL + JSON_FORMAT, true, requestBody);
5360
postMethod.addRequestHeader(CONTENT_TYPE, FORM_URLENCODED);
54-
postMethod.setParameter(REMOTE_WIPE_TOKEN, client.getCredentials().getAuthToken());
5561

56-
int status = client.executeMethod(postMethod, sessionTimeOut.getReadTimeOut(), sessionTimeOut.getConnectionTimeOut());
62+
int status = client.execute(postMethod);
5763

5864
if (HttpStatus.SC_OK == status) {
5965
String response = postMethod.getResponseBodyAsString();
6066

6167
JSONObject json = new JSONObject(response);
6268

63-
if (json.getBoolean(WIPE)) {
64-
result = new RemoteOperationResult<>(true, postMethod);
65-
} else {
66-
result = new RemoteOperationResult<>(false, postMethod);
67-
}
69+
result = new RemoteOperationResult<>(json.getBoolean(WIPE), postMethod);
6870
} else {
6971
result = new RemoteOperationResult<>(false, postMethod);
7072
}
71-
72-
client.exhaustResponse(postMethod.getResponseBodyAsStream());
7373
} catch (Exception e) {
7474
result = new RemoteOperationResult<>(e);
7575
Log_OC.e(TAG,
76-
"Getting remote wipe status failed: " + result.getLogMessage(),
77-
result.getException());
76+
"Getting remote wipe status failed: " + result.getLogMessage(client.getContext()),
77+
result.getException());
7878
} finally {
7979
if (postMethod != null) {
8080
postMethod.releaseConnection();

0 commit comments

Comments
 (0)