summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java37
1 files changed, 20 insertions, 17 deletions
diff --git a/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java b/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
index 5c1ec826..882f90d 100644
--- a/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
+++ b/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.List;
+import javax.annotation.Nullable;
/**
* AccountManagerHelper wraps our access of AccountManager in Android.
@@ -153,18 +154,12 @@ public class AccountManagerHelper {
*
* - Assumes that the account is a valid account.
*/
- public void getAuthTokenFromForeground(Account account, String authTokenType,
+ public void getAuthTokenFromForeground(Activity activity, Account account, String authTokenType,
GetAuthTokenCallback callback) {
AtomicInteger numTries = new AtomicInteger(0);
AtomicBoolean errorEncountered = new AtomicBoolean(false);
- getAuthTokenAsynchronously(account, authTokenType, callback, numTries, errorEncountered,
- null);
- }
-
- @Deprecated
- public void getAuthTokenFromForeground(Activity activity, Account account,
- String authTokenType, GetAuthTokenCallback callback) {
- getAuthTokenFromForeground(account, authTokenType, callback);
+ getAuthTokenAsynchronously(activity, account, authTokenType, callback, numTries,
+ errorEncountered, null);
}
private class ConnectionRetry implements NetworkChangeNotifier.ConnectionTypeObserver {
@@ -192,7 +187,7 @@ public class AccountManagerHelper {
}
if (NetworkChangeNotifier.isOnline()) {
NetworkChangeNotifier.removeConnectionTypeObserver(this);
- getAuthTokenAsynchronously(mAccount, mAuthTokenType, mCallback, mNumTries,
+ getAuthTokenAsynchronously(null, mAccount, mAuthTokenType, mCallback, mNumTries,
mErrorEncountered, this);
}
}
@@ -229,16 +224,24 @@ public class AccountManagerHelper {
return null;
}
- private void getAuthTokenAsynchronously(final Account account, final String authTokenType,
- final GetAuthTokenCallback callback, final AtomicInteger numTries,
- final AtomicBoolean errorEncountered, final ConnectionRetry retry) {
- final AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(account,
- authTokenType, false, null, null);
+ private void getAuthTokenAsynchronously(@Nullable Activity activity, final Account account,
+ final String authTokenType, final GetAuthTokenCallback callback,
+ final AtomicInteger numTries, final AtomicBoolean errorEncountered,
+ final ConnectionRetry retry) {
+ AccountManagerFuture<Bundle> future;
+ if (numTries.get() == 0 && activity != null) {
+ future = mAccountManager.getAuthToken(
+ account, authTokenType, null, activity, null, null);
+ } else {
+ future = mAccountManager.getAuthToken(
+ account, authTokenType, false, null, null);
+ }
+ final AccountManagerFuture<Bundle> finalFuture = future;
errorEncountered.set(false);
new AsyncTask<Void, Void, String>() {
@Override
public String doInBackground(Void... params) {
- return getAuthTokenInner(future, errorEncountered);
+ return getAuthTokenInner(finalFuture, errorEncountered);
}
@Override
public void onPostExecute(String authToken) {
@@ -301,6 +304,6 @@ public class AccountManagerHelper {
AtomicInteger numTries = new AtomicInteger(0);
AtomicBoolean errorEncountered = new AtomicBoolean(false);
getAuthTokenAsynchronously(
- account, authTokenType, callback, numTries, errorEncountered, null);
+ null, account, authTokenType, callback, numTries, errorEncountered, null);
}
}