| Index: sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
|
| diff --git a/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java b/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
|
| index 75777dd85acde0e749bc10292bebb132bcc49aca..15dfbe1a842ff1b3d9639674d702d13715112938 100644
|
| --- a/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
|
| +++ b/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
|
| @@ -13,11 +13,13 @@ import android.accounts.AuthenticatorException;
|
| import android.accounts.OperationCanceledException;
|
| import android.content.Context;
|
| import android.os.AsyncTask;
|
| -import android.os.Bundle;
|
| -import android.os.Handler;
|
| import android.os.StrictMode;
|
| import android.os.SystemClock;
|
|
|
| +import com.google.android.gms.auth.GoogleAuthException;
|
| +import com.google.android.gms.auth.GoogleAuthUtil;
|
| +import com.google.android.gms.auth.UserRecoverableAuthException;
|
| +
|
| import org.chromium.base.Callback;
|
| import org.chromium.base.Log;
|
| import org.chromium.base.ThreadUtils;
|
| @@ -70,10 +72,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
| }
|
|
|
| @Override
|
| - public AccountManagerFuture<Bundle> getAuthToken(Account account, String authTokenType,
|
| - boolean notifyAuthFailure, AccountManagerCallback<Bundle> callback, Handler handler) {
|
| - return mAccountManager.getAuthToken(account, authTokenType, null, notifyAuthFailure,
|
| - callback, handler);
|
| + public String getAuthToken(Account account, String authTokenScope) throws AuthException {
|
| + assert !ThreadUtils.runningOnUiThread();
|
| + assert AccountManagerHelper.GOOGLE_ACCOUNT_TYPE.equals(account.type);
|
| + try {
|
| + return GoogleAuthUtil.getToken(mApplicationContext, account.name, authTokenScope);
|
| + } catch (UserRecoverableAuthException ex) {
|
| + throw new AuthException(false /* isTransientError */, ex.getIntent(), ex);
|
| + } catch (GoogleAuthException ex) {
|
| + throw new AuthException(false /* isTransientError */, null, ex);
|
| + } catch (IOException ex) {
|
| + throw new AuthException(true /* isTransientError */, null, ex);
|
| + }
|
| }
|
|
|
| @Override
|
|
|