Commit 4a6245e6 authored by bsazonov's avatar bsazonov Committed by Commit bot

Move AsyncTask helpers for accounts and features getters to AccountManagerHelper

This CL moves AsyncTask management from AccountManagerHelper delegates to
AccountManagerHelper itself (see bug for details).

BUG=698258

Review-Url: https://codereview.chromium.org/2778443002
Cr-Commit-Position: refs/heads/master@{#459736}
parent eaf7753c
...@@ -25,13 +25,6 @@ public interface AccountManagerDelegate { ...@@ -25,13 +25,6 @@ public interface AccountManagerDelegate {
@WorkerThread @WorkerThread
Account[] getAccountsByType(String type); Account[] getAccountsByType(String type);
/**
* Async version of {@link #getAccountsByType}
* This method is deprecated and will be removed soon.
*/
@AnyThread
void getAccountsByType(String type, Callback<Account[]> callback);
/** /**
* Get an auth token. * Get an auth token.
* *
...@@ -65,13 +58,6 @@ public interface AccountManagerDelegate { ...@@ -65,13 +58,6 @@ public interface AccountManagerDelegate {
@WorkerThread @WorkerThread
boolean hasFeatures(Account account, String[] features); boolean hasFeatures(Account account, String[] features);
/**
* Asynchronous version of {@link #hasFeatures}
* This method is deprecated and will be removed soon.
*/
@AnyThread
void hasFeatures(Account account, String[] features, Callback<Boolean> callback);
/** /**
* Asks the user to enter a new password for an account, updating the saved credentials for the * Asks the user to enter a new password for an account, updating the saved credentials for the
* account. * account.
......
...@@ -180,8 +180,18 @@ public class AccountManagerHelper { ...@@ -180,8 +180,18 @@ public class AccountManagerHelper {
/** /**
* Retrieves all Google accounts on the device asynchronously. * Retrieves all Google accounts on the device asynchronously.
*/ */
public void getGoogleAccounts(Callback<Account[]> callback) { public void getGoogleAccounts(final Callback<Account[]> callback) {
mAccountManager.getAccountsByType(GOOGLE_ACCOUNT_TYPE, callback); new AsyncTask<Void, Void, Account[]>() {
@Override
protected Account[] doInBackground(Void... params) {
return getGoogleAccounts();
}
@Override
protected void onPostExecute(Account[] accounts) {
callback.onResult(accounts);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} }
/** /**
...@@ -347,8 +357,26 @@ public class AccountManagerHelper { ...@@ -347,8 +357,26 @@ public class AccountManagerHelper {
} }
public void checkChildAccount(Account account, Callback<Boolean> callback) { public void checkChildAccount(Account account, Callback<Boolean> callback) {
String[] features = {FEATURE_IS_CHILD_ACCOUNT_KEY}; hasFeatures(account, new String[] {FEATURE_IS_CHILD_ACCOUNT_KEY}, callback);
mAccountManager.hasFeatures(account, features, callback); }
private boolean hasFeatures(Account account, String[] features) {
return mAccountManager.hasFeatures(account, features);
}
private void hasFeatures(
final Account account, final String[] features, final Callback<Boolean> callback) {
new AsyncTask<Void, Void, Boolean>() {
@Override
public Boolean doInBackground(Void... params) {
return hasFeatures(account, features);
}
@Override
public void onPostExecute(Boolean value) {
callback.onResult(value);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} }
/** /**
......
...@@ -15,7 +15,6 @@ import android.accounts.OperationCanceledException; ...@@ -15,7 +15,6 @@ import android.accounts.OperationCanceledException;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Process; import android.os.Process;
...@@ -63,21 +62,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { ...@@ -63,21 +62,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
return accounts; return accounts;
} }
@Override
public void getAccountsByType(final String type, final Callback<Account[]> callback) {
new AsyncTask<Void, Void, Account[]>() {
@Override
protected Account[] doInBackground(Void... params) {
return getAccountsByType(type);
}
@Override
protected void onPostExecute(Account[] accounts) {
callback.onResult(accounts);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@Override @Override
public String getAuthToken(Account account, String authTokenScope) throws AuthException { public String getAuthToken(Account account, String authTokenScope) throws AuthException {
assert !ThreadUtils.runningOnUiThread(); assert !ThreadUtils.runningOnUiThread();
...@@ -128,23 +112,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { ...@@ -128,23 +112,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
return false; return false;
} }
@Override
public void hasFeatures(
final Account account, final String[] features, final Callback<Boolean> callback) {
AsyncTask<Void, Void, Boolean> task = new AsyncTask<Void, Void, Boolean>() {
@Override
public Boolean doInBackground(Void... params) {
return hasFeatures(account, features);
}
@Override
public void onPostExecute(Boolean value) {
callback.onResult(value);
}
};
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
/** /**
* Records a histogram value for how long time an action has taken using * Records a histogram value for how long time an action has taken using
* {@link RecordHistogram#recordTimesHistogram(String, long, TimeUnit))} iff the browser * {@link RecordHistogram#recordTimesHistogram(String, long, TimeUnit))} iff the browser
......
...@@ -8,7 +8,6 @@ import android.accounts.Account; ...@@ -8,7 +8,6 @@ import android.accounts.Account;
import android.accounts.AuthenticatorDescription; import android.accounts.AuthenticatorDescription;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.AsyncTask;
import org.chromium.base.Callback; import org.chromium.base.Callback;
import org.chromium.base.Log; import org.chromium.base.Log;
...@@ -73,23 +72,6 @@ public class MockAccountManager implements AccountManagerDelegate { ...@@ -73,23 +72,6 @@ public class MockAccountManager implements AccountManagerDelegate {
return validAccounts.toArray(new Account[0]); return validAccounts.toArray(new Account[0]);
} }
@Override
public void getAccountsByType(final String type, final Callback<Account[]> callback) {
mGetAccountsTaskCounter.increment();
new AsyncTask<Void, Void, Account[]>() {
@Override
protected Account[] doInBackground(Void... params) {
return getAccountsByType(type);
}
@Override
protected void onPostExecute(Account[] accounts) {
callback.onResult(accounts);
mGetAccountsTaskCounter.decrement();
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@VisibleForTesting @VisibleForTesting
public void waitForGetAccountsTask() throws InterruptedException { public void waitForGetAccountsTask() throws InterruptedException {
// Wait until all tasks are done because we don't know which is being waited for. // Wait until all tasks are done because we don't know which is being waited for.
...@@ -169,17 +151,6 @@ public class MockAccountManager implements AccountManagerDelegate { ...@@ -169,17 +151,6 @@ public class MockAccountManager implements AccountManagerDelegate {
return hasAllFeatures; return hasAllFeatures;
} }
@Override
public void hasFeatures(
final Account account, final String[] features, final Callback<Boolean> callback) {
ThreadUtils.postOnUiThread(new Runnable() {
@Override
public void run() {
callback.onResult(hasFeatures(account, features));
}
});
}
@Override @Override
public void updateCredentials( public void updateCredentials(
Account account, Activity activity, final Callback<Boolean> callback) { Account account, Activity activity, final Callback<Boolean> callback) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment