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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java

Issue 1256283002: GAIA ID migration for Android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: simple version Created 5 years, 4 months 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
Index: chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java
index 7f6737d1fddc239855f021c9003c76f11162601a..05e45c6d7d49f55ae86c17c64bb7eeb6fe6b8cb5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/OAuth2TokenService.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.signin;
import android.accounts.Account;
import android.app.Activity;
import android.content.Context;
+import android.os.AsyncTask;
import android.preference.PreferenceManager;
import android.util.Log;
@@ -232,10 +233,34 @@ public final class OAuth2TokenService {
@CalledByNative
public void validateAccounts(Context context, boolean forceNotifications) {
ThreadUtils.assertOnUiThread();
- String currentlySignedInAccount =
+ final String currentlySignedInAccount =
ChromeSigninController.get(context).getSignedInAccountName();
- nativeValidateAccounts(mNativeOAuth2TokenServiceDelegateAndroid, currentlySignedInAccount,
- forceNotifications);
+ final String[] accountNames = getSystemAccounts(context);
+ final boolean fForceNotifications = forceNotifications;
+ final Context fContext = context;
+ new AsyncTask<Void, Void, String[]>() {
+ @Override
+ public String[] doInBackground(Void... params) {
+ Log.d(TAG, "Getting id/email mapping");
+ if (AccountIdProvider.getInstance() == null) {
+ AccountIdProvider.setInstance(AccountIdProvider.getGoogleAccountIdProvider());
Roger Tawa OOO till Jul 10th 2015/08/12 15:28:46 Should already be created by now. Under what case
gogerald1 2015/08/13 18:12:12 AccountIdProvider.setInstance is in GoogleServiceM
+ }
+ AccountIdProvider provider = AccountIdProvider.getInstance();
+ String[] accountIds = new String[accountNames.length];
+ for (int i = 0; i < accountIds.length; ++i) {
+ accountIds[i] = provider.getAccountId(fContext, accountNames[i]);
+ }
+ return accountIds;
+ }
+ @Override
+ public void onPostExecute(String[] accountIds) {
+ nativeSeedAccountsInfo(
+ mNativeOAuth2TokenServiceDelegateAndroid, accountIds, accountNames);
+ nativeValidateAccounts(mNativeOAuth2TokenServiceDelegateAndroid,
+ currentlySignedInAccount, fForceNotifications);
+ }
+
+ }.execute();
}
/**
@@ -323,4 +348,6 @@ public final class OAuth2TokenService {
long nativeOAuth2TokenServiceDelegateAndroid, String accountName);
private native void nativeFireRefreshTokensLoadedFromJava(
long nativeOAuth2TokenServiceDelegateAndroid);
+ private native void nativeSeedAccountsInfo(
+ long nativeOAuth2TokenServiceDelegateAndroid, String[] gaiaids, String[] usernames);
}

Powered by Google App Engine
This is Rietveld 408576698