Skip to content

Commit da51ecb

Browse files
committed
use ResultParser
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 8bb1f2a commit da51ecb

3 files changed

Lines changed: 28 additions & 13 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Nextcloud - Android Client
3+
*
4+
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
5+
* SPDX-License-Identifier: AGPL-3.0-or-later
6+
*/
7+
8+
package com.nextcloud.utils
9+
10+
import com.owncloud.android.lib.common.operations.RemoteOperationResult
11+
12+
object ResultParser {
13+
@Suppress("DEPRECATION", "ReturnCount")
14+
@JvmStatic
15+
fun <T : Any> RemoteOperationResult<*>.dataOfType(type: Class<T>): List<T> {
16+
if (!isSuccess) return emptyList()
17+
val data = data ?: return emptyList()
18+
return data.filterIsInstance(type)
19+
}
20+
21+
inline fun <reified T : Any> RemoteOperationResult<*>.dataOfType(): List<T> = dataOfType(T::class.java)
22+
23+
@JvmStatic
24+
fun <T : Any> RemoteOperationResult<*>.firstDataOfTypeOrNull(type: Class<T>): T? = dataOfType(type).firstOrNull()
25+
}

app/src/main/java/com/nextcloud/utils/extensions/RemoteOperationResultExtensions.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,6 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult
1414
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode
1515
import com.owncloud.android.utils.ErrorMessageAdapter
1616

17-
@Suppress("DEPRECATION", "ReturnCount")
18-
fun <T : Any> RemoteOperationResult<*>.dataOfType(type: Class<T>): List<T> {
19-
if (!isSuccess) return emptyList()
20-
val data = data ?: return emptyList()
21-
return data.filterIsInstance(type)
22-
}
23-
24-
inline fun <reified T : Any> RemoteOperationResult<*>.dataOfType(): List<T> = dataOfType(T::class.java)
25-
26-
fun <T : Any> RemoteOperationResult<*>.firstDataOfTypeOrNull(type: Class<T>): T? = dataOfType(type).firstOrNull()
27-
2817
@Suppress("ReturnCount")
2918
fun Pair<RemoteOperationResult<*>?, RemoteOperation<*>?>?.getErrorMessage(): String {
3019
val result = this?.first ?: return MainApp.string(R.string.unexpected_error_occurred)

app/src/main/java/com/owncloud/android/operations/RefreshFolderOperation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import com.nextcloud.android.lib.resources.directediting.DirectEditingObtainRemoteOperation;
1717
import com.nextcloud.client.account.User;
1818
import com.nextcloud.common.NextcloudClient;
19+
import com.nextcloud.utils.ResultParser;
1920
import com.nextcloud.utils.e2ee.E2EVersionHelper;
20-
import com.nextcloud.utils.extensions.RemoteOperationResultExtensionsKt;
2121
import com.nextcloud.utils.extensions.StringExtensionsKt;
2222
import com.owncloud.android.datamodel.ArbitraryDataProvider;
2323
import com.owncloud.android.datamodel.ArbitraryDataProviderImpl;
@@ -304,7 +304,8 @@ protected RemoteOperationResult run(OwnCloudClient client) {
304304
sendLocalBroadcast(EVENT_SINGLE_FOLDER_CONTENTS_SYNCED, mLocalFolder.getRemotePath(), result);
305305
}
306306

307-
final List<RemoteFile> remoteFiles = RemoteOperationResultExtensionsKt.dataOfType(result, RemoteFile.class);
307+
308+
final var remoteFiles = ResultParser.dataOfType(result, RemoteFile.class);
308309
if (!remoteFiles.isEmpty() && !mSyncFullAccount && !mOnlyFileMetadata) {
309310
// this needed because if file has new share or share is removed, eTag is not changing.
310311
// that's why another separate EVENT_SINGLE_FOLDER_SHARES_SYNCED introduced before.

0 commit comments

Comments
 (0)