From 14857a15fdf6be490eb34c9ed148d9ebff227b8a Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 13 May 2026 09:29:47 +0200 Subject: [PATCH 1/2] Rename .java to .kt Signed-off-by: alperozturk96 --- .../{CheckRemoteWipeTask.java => CheckRemoteWipeTask.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/java/com/owncloud/android/ui/asynctasks/{CheckRemoteWipeTask.java => CheckRemoteWipeTask.kt} (100%) diff --git a/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.java b/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt similarity index 100% rename from app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.java rename to app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt From 4e83c3e0c0aa5e8c18017f9d6e82997ce8461a88 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 13 May 2026 09:29:47 +0200 Subject: [PATCH 2/2] improve check remote wipe task Signed-off-by: alperozturk96 --- .../android/ui/activity/FileActivity.java | 35 ------ .../ui/asynctasks/CheckRemoteWipeTask.kt | 100 ++++++++++-------- 2 files changed, 55 insertions(+), 80 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java index ec834e983c1d..6219511b295d 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java @@ -15,7 +15,6 @@ package com.owncloud.android.ui.activity; import android.accounts.Account; -import android.accounts.AccountManager; import android.accounts.AuthenticatorException; import android.app.Activity; import android.content.ComponentName; @@ -53,9 +52,6 @@ import com.owncloud.android.datamodel.ArbitraryDataProviderImpl; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudAccount; -import com.owncloud.android.lib.common.OwnCloudClient; -import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; -import com.owncloud.android.lib.common.OwnCloudCredentials; import com.owncloud.android.lib.common.network.CertificateCombinedException; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; @@ -481,37 +477,6 @@ protected void requestCredentialsUpdate(Account account) { new CheckRemoteWipeTask(backgroundJobManager, account, new WeakReference<>(this)).execute(); } - public void performCredentialsUpdate(Account account, Context context) { - try { - /// step 1 - invalidate credentials of current account - OwnCloudAccount ocAccount = new OwnCloudAccount(account, context); - OwnCloudClient client = OwnCloudClientManagerFactory.getDefaultSingleton().removeClientFor(ocAccount); - - if (client != null) { - OwnCloudCredentials credentials = client.getCredentials(); - if (credentials != null) { - AccountManager accountManager = AccountManager.get(context); - if (credentials.authTokenExpires()) { - accountManager.invalidateAuthToken(account.type, credentials.getAuthToken()); - } else { - accountManager.clearPassword(account); - } - } - } - - /// step 2 - request credentials to user - Intent updateAccountCredentials = new Intent(context, AuthenticatorActivity.class); - updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, account); - updateAccountCredentials.putExtra( - AuthenticatorActivity.EXTRA_ACTION, - AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN); - updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - startActivityForResult(updateAccountCredentials, REQUEST_CODE__UPDATE_CREDENTIALS); - } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) { - DisplayUtils.showSnackMessage(this, R.string.auth_account_does_not_exist); - } - } - /** * Show untrusted cert dialog */ diff --git a/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt b/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt index a5d1db9f2633..be616975b95b 100644 --- a/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt +++ b/app/src/main/java/com/owncloud/android/ui/asynctasks/CheckRemoteWipeTask.kt @@ -1,59 +1,69 @@ /* + * Nextcloud - Android Client * - * * Nextcloud Android client application - * * - * * @author Tobias Kaminsky - * * Copyright (C) 2019 Tobias Kaminsky - * * Copyright (C) 2019 Nextcloud GmbH - * * - * SPDX-License-Identifier: AGPL-3.0-or-later OR GPL-2.0-only - * + * SPDX-FileCopyrightText: 2026 Alper Ozturk + * SPDX-License-Identifier: AGPL-3.0-or-later */ +package com.owncloud.android.ui.asynctasks -package com.owncloud.android.ui.asynctasks; - -import android.accounts.Account; -import android.os.AsyncTask; - -import com.nextcloud.client.jobs.BackgroundJobManager; -import com.owncloud.android.lib.common.operations.RemoteOperationResult; -import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.lib.resources.users.CheckRemoteWipeRemoteOperation; -import com.owncloud.android.ui.activity.FileActivity; +import android.accounts.Account +import android.accounts.AccountManager +import android.content.Intent +import com.nextcloud.client.jobs.BackgroundJobManager +import com.owncloud.android.R +import com.owncloud.android.authentication.AuthenticatorActivity +import com.owncloud.android.lib.common.OwnCloudAccount +import com.owncloud.android.lib.common.OwnCloudClientManagerFactory +import com.owncloud.android.lib.common.accounts.AccountUtils +import com.owncloud.android.lib.common.utils.Log_OC +import com.owncloud.android.lib.resources.users.CheckRemoteWipeRemoteOperation +import com.owncloud.android.ui.activity.FileActivity +import com.owncloud.android.utils.DisplayUtils +import java.lang.ref.WeakReference -import java.lang.ref.WeakReference; +class CheckRemoteWipeTask( + private val backgroundJobManager: BackgroundJobManager, + private val account: Account, + private val fileActivityWeakReference: WeakReference +) { + fun execute() { + val fileActivity = fileActivityWeakReference.get() ?: run { + Log_OC.e(this, "Check for remote wipe: no context available") + return + } -public class CheckRemoteWipeTask extends AsyncTask { - private BackgroundJobManager backgroundJobManager; - private Account account; - private WeakReference fileActivityWeakReference; + val checkWipeResult = CheckRemoteWipeRemoteOperation().execute(account, fileActivity) - public CheckRemoteWipeTask(BackgroundJobManager backgroundJobManager, - Account account, - WeakReference fileActivityWeakReference) { - this.backgroundJobManager = backgroundJobManager; - this.account = account; - this.fileActivityWeakReference = fileActivityWeakReference; + if (checkWipeResult.isSuccess) { + backgroundJobManager.startAccountRemovalJob(account.name, true) + } else { + Log_OC.e(this, "Check for remote wipe not needed -> update credentials") + performCredentialsUpdate(fileActivity) + } } - @Override - protected Boolean doInBackground(Void... voids) { - final FileActivity fileActivity = fileActivityWeakReference.get(); - - if (fileActivity == null) { - Log_OC.e(this, "Check for remote wipe: no context available"); - return Boolean.FALSE; - } + private fun performCredentialsUpdate(fileActivity: FileActivity) { + try { + val ocAccount = OwnCloudAccount(account, fileActivity) + val client = OwnCloudClientManagerFactory.getDefaultSingleton().removeClientFor(ocAccount) - RemoteOperationResult checkWipeResult = new CheckRemoteWipeRemoteOperation().execute(account, fileActivity); + client?.credentials?.let { credentials -> + val accountManager = AccountManager.get(fileActivity) + if (credentials.authTokenExpires()) { + accountManager.invalidateAuthToken(account.type, credentials.authToken) + } else { + accountManager.clearPassword(account) + } + } - if (checkWipeResult.isSuccess()) { - backgroundJobManager.startAccountRemovalJob(account.name, true); - } else { - Log_OC.e(this, "Check for remote wipe not needed -> update credentials"); - fileActivity.performCredentialsUpdate(account, fileActivity); + val intent = Intent(fileActivity, AuthenticatorActivity::class.java).apply { + putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, account) + putExtra(AuthenticatorActivity.EXTRA_ACTION, AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN) + addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) + } + fileActivity.startActivityForResult(intent, FileActivity.REQUEST_CODE__UPDATE_CREDENTIALS) + } catch (_: AccountUtils.AccountNotFoundException) { + DisplayUtils.showSnackMessage(fileActivity, R.string.auth_account_does_not_exist) } - - return Boolean.TRUE; } }