Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
*/
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Nextcloud - Android Client
*
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
package com.owncloud.android.ui.asynctasks

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

class CheckRemoteWipeTask(
private val backgroundJobManager: BackgroundJobManager,
private val account: Account,
private val fileActivityWeakReference: WeakReference<FileActivity?>
) {
fun execute() {
val fileActivity = fileActivityWeakReference.get() ?: run {
Log_OC.e(this, "Check for remote wipe: no context available")
return
}

val checkWipeResult = CheckRemoteWipeRemoteOperation().execute(account, fileActivity)

if (checkWipeResult.isSuccess) {
backgroundJobManager.startAccountRemovalJob(account.name, true)
} else {
Log_OC.e(this, "Check for remote wipe not needed -> update credentials")
performCredentialsUpdate(fileActivity)
}
}

private fun performCredentialsUpdate(fileActivity: FileActivity) {
try {
val ocAccount = OwnCloudAccount(account, fileActivity)
val client = OwnCloudClientManagerFactory.getDefaultSingleton().removeClientFor(ocAccount)

client?.credentials?.let { credentials ->
val accountManager = AccountManager.get(fileActivity)
if (credentials.authTokenExpires()) {
accountManager.invalidateAuthToken(account.type, credentials.authToken)
} else {
accountManager.clearPassword(account)
}
}

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)
}
}
}
Loading