Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java

Issue 1440363002: Use GoogleAuthUtil's getToken instead of AccountManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: multidex Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/android/java/src/org/chromium/sync/signin/AuthException.java ('k') | sync/sync_android.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..d90280ab3fd3831e84f42aa09d68cc9bdf7a815e 100644
--- a/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
+++ b/sync/android/java/src/org/chromium/sync/signin/SystemAccountManagerDelegate.java
@@ -13,14 +13,17 @@ 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;
+import org.chromium.base.annotations.MainDex;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.metrics.RecordHistogram;
@@ -31,6 +34,7 @@ import java.util.concurrent.TimeUnit;
* Default implementation of {@link AccountManagerDelegate} which delegates all calls to the
* Android account manager.
*/
+@MainDex
public class SystemAccountManagerDelegate implements AccountManagerDelegate {
private final AccountManager mAccountManager;
@@ -70,10 +74,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, 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
« no previous file with comments | « sync/android/java/src/org/chromium/sync/signin/AuthException.java ('k') | sync/sync_android.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698