Chromium Code Reviews| 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..bfe83f5cfeb1d0438b936d8524754a20349f6929 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,21 @@ 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) { |
| + Log.w(TAG, "getAuthToken UserRecoverableAuthException", ex); |
| + throw new AuthException(false /* isTransientError */, ex.getIntent()); |
|
Bernhard Bauer
2015/11/19 15:23:34
Could you add the caught exception to the AuthExce
knn
2015/11/19 16:09:25
Done.
|
| + } catch (GoogleAuthException ex) { |
| + Log.w(TAG, "getAuthToken GoogleAuthException", ex); |
| + throw new AuthException(false /* isTransientError */, null); |
| + } catch (IOException ex) { |
| + Log.w(TAG, "getAuthToken IOException", ex); |
| + throw new AuthException(true /* isTransientError */, null); |
| + } |
| } |
| @Override |