mirror of https://github.com/nextcloud/android
Convert AuthenticatorAsyncTask to kt
Signed-off-by: alperozturk <alper_ozturk@proton.me>
This commit is contained in:
parent
305af05ef7
commit
57564073b8
|
@ -17,105 +17,97 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package com.owncloud.android.authentication;
|
||||
@file:Suppress("DEPRECATION")
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import com.nextcloud.common.NextcloudClient;
|
||||
import com.owncloud.android.lib.common.OwnCloudClient;
|
||||
import com.owncloud.android.lib.common.OwnCloudClientFactory;
|
||||
import com.owncloud.android.lib.common.OwnCloudCredentials;
|
||||
import com.owncloud.android.lib.common.UserInfo;
|
||||
import com.owncloud.android.lib.common.network.RedirectionPath;
|
||||
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
||||
import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
|
||||
import com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import static com.owncloud.android.datamodel.OCFile.ROOT_PATH;
|
||||
package com.owncloud.android.authentication
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import android.os.AsyncTask
|
||||
import com.owncloud.android.datamodel.OCFile
|
||||
import com.owncloud.android.lib.common.OwnCloudClientFactory
|
||||
import com.owncloud.android.lib.common.OwnCloudCredentials
|
||||
import com.owncloud.android.lib.common.UserInfo
|
||||
import com.owncloud.android.lib.common.operations.RemoteOperationResult
|
||||
import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation
|
||||
import com.owncloud.android.lib.resources.users.GetUserInfoRemoteOperation
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
/**
|
||||
* Async Task to verify the credentials of a user
|
||||
*/
|
||||
public class AuthenticatorAsyncTask extends AsyncTask<Object, Void, RemoteOperationResult<UserInfo>> {
|
||||
|
||||
private static final boolean SUCCESS_IF_ABSENT = false;
|
||||
class AuthenticatorAsyncTask(activity: Activity) : AsyncTask<Any?, Void?, RemoteOperationResult<UserInfo?>?>() {
|
||||
private val mWeakContext: WeakReference<Context?>
|
||||
private val mListener: WeakReference<OnAuthenticatorTaskListener>
|
||||
|
||||
private final WeakReference<Context> mWeakContext;
|
||||
private final WeakReference<OnAuthenticatorTaskListener> mListener;
|
||||
|
||||
public AuthenticatorAsyncTask(Activity activity) {
|
||||
mWeakContext = new WeakReference<>(activity.getApplicationContext());
|
||||
mListener = new WeakReference<>((OnAuthenticatorTaskListener) activity);
|
||||
init {
|
||||
mWeakContext = WeakReference(activity.applicationContext)
|
||||
mListener = WeakReference(activity as OnAuthenticatorTaskListener)
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RemoteOperationResult<UserInfo> doInBackground(Object... params) {
|
||||
@Deprecated("Deprecated in Java")
|
||||
override fun doInBackground(vararg params: Any?): RemoteOperationResult<UserInfo?> {
|
||||
val result: RemoteOperationResult<UserInfo?>
|
||||
|
||||
RemoteOperationResult<UserInfo> result;
|
||||
if (params != null && params.length == 2 && mWeakContext.get() != null) {
|
||||
String url = (String) params[0];
|
||||
Context context = mWeakContext.get();
|
||||
OwnCloudCredentials credentials = (OwnCloudCredentials) params[1];
|
||||
if (params.size == 2 && mWeakContext.get() != null) {
|
||||
val url = params[0] as String
|
||||
val context = mWeakContext.get()
|
||||
val credentials = params[1] as OwnCloudCredentials
|
||||
|
||||
// Client
|
||||
Uri uri = Uri.parse(url);
|
||||
NextcloudClient nextcloudClient = OwnCloudClientFactory.createNextcloudClient(uri,
|
||||
credentials.getUsername(),
|
||||
credentials.toOkHttpCredentials(),
|
||||
context,
|
||||
true);
|
||||
|
||||
val uri = Uri.parse(url)
|
||||
val nextcloudClient = OwnCloudClientFactory.createNextcloudClient(
|
||||
uri,
|
||||
credentials.username,
|
||||
credentials.toOkHttpCredentials(),
|
||||
context,
|
||||
true
|
||||
)
|
||||
|
||||
// Operation - get display name
|
||||
RemoteOperationResult<UserInfo> userInfoResult = new GetUserInfoRemoteOperation().execute(nextcloudClient);
|
||||
val userInfoResult = GetUserInfoRemoteOperation().execute(nextcloudClient)
|
||||
|
||||
// Operation - try credentials
|
||||
if (userInfoResult.isSuccess()) {
|
||||
OwnCloudClient client = OwnCloudClientFactory.createOwnCloudClient(uri, context, true);
|
||||
client.setUserId(userInfoResult.getResultData().getId());
|
||||
client.setCredentials(credentials);
|
||||
|
||||
ExistenceCheckRemoteOperation operation = new ExistenceCheckRemoteOperation(ROOT_PATH, SUCCESS_IF_ABSENT);
|
||||
result = operation.execute(client);
|
||||
|
||||
if (userInfoResult.isSuccess) {
|
||||
val client = OwnCloudClientFactory.createOwnCloudClient(uri, context, true)
|
||||
client.userId = userInfoResult.resultData!!.id
|
||||
client.credentials = credentials
|
||||
val operation = ExistenceCheckRemoteOperation(OCFile.ROOT_PATH, SUCCESS_IF_ABSENT)
|
||||
result = operation.execute(client) as RemoteOperationResult<UserInfo?>
|
||||
if (operation.wasRedirected()) {
|
||||
RedirectionPath redirectionPath = operation.getRedirectionPath();
|
||||
String permanentLocation = redirectionPath.getLastPermanentLocation();
|
||||
result.setLastPermanentLocation(permanentLocation);
|
||||
val redirectionPath = operation.redirectionPath
|
||||
val permanentLocation = redirectionPath.lastPermanentLocation
|
||||
result.lastPermanentLocation = permanentLocation
|
||||
}
|
||||
|
||||
result.setResultData(userInfoResult.getResultData());
|
||||
result.setResultData(userInfoResult.resultData)
|
||||
} else {
|
||||
result = userInfoResult;
|
||||
result = userInfoResult
|
||||
}
|
||||
} else {
|
||||
result = new RemoteOperationResult(RemoteOperationResult.ResultCode.UNKNOWN_ERROR);
|
||||
result = RemoteOperationResult<UserInfo?>(RemoteOperationResult.ResultCode.UNKNOWN_ERROR)
|
||||
}
|
||||
|
||||
return result;
|
||||
return result
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(RemoteOperationResult<UserInfo> result) {
|
||||
|
||||
@Deprecated("Deprecated in Java")
|
||||
override fun onPostExecute(result: RemoteOperationResult<UserInfo?>?) {
|
||||
if (result != null) {
|
||||
OnAuthenticatorTaskListener listener = mListener.get();
|
||||
if (listener != null) {
|
||||
listener.onAuthenticatorTaskCallback(result);
|
||||
}
|
||||
val listener = mListener.get()
|
||||
listener?.onAuthenticatorTaskCallback(result)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Interface to retrieve data from recognition task
|
||||
*/
|
||||
public interface OnAuthenticatorTaskListener{
|
||||
interface OnAuthenticatorTaskListener {
|
||||
fun onAuthenticatorTaskCallback(result: RemoteOperationResult<UserInfo?>?)
|
||||
}
|
||||
|
||||
void onAuthenticatorTaskCallback(RemoteOperationResult<UserInfo> result);
|
||||
companion object {
|
||||
private const val SUCCESS_IF_ABSENT = false
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue