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 |