diff options
author | knn <knn@chromium.org> | 2015-09-15 08:49:46 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-15 15:50:48 +0000 |
commit | 02d798fe1ad6da982ec4ea2554ea20a3a676ce26 (patch) | |
tree | fbf0796bd55173b025ebf739b0740275bfbd4ae7 /components/signin | |
parent | 96bc5ccc7965045ece2271cb810d4956bf502668 (diff) | |
download | chromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.zip chromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.tar.gz chromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.tar.bz2 |
[Android] Map GAIA id <-> email in ChildAccountInfoFetcherAndroid.
This will fix child account detection post http://crrev.com/1256283002
BUG=531608
Review URL: https://codereview.chromium.org/1337723004
Cr-Commit-Position: refs/heads/master@{#348896}
Diffstat (limited to 'components/signin')
4 files changed, 10 insertions, 18 deletions
diff --git a/components/signin/core/browser/account_fetcher_service.h b/components/signin/core/browser/account_fetcher_service.h index 82042bc..0443d68 100644 --- a/components/signin/core/browser/account_fetcher_service.h +++ b/components/signin/core/browser/account_fetcher_service.h @@ -61,7 +61,6 @@ class AccountFetcherService : public KeyedService, void FetchUserInfoBeforeSignin(const std::string& account_id); - protected: AccountTrackerService* account_tracker_service() const { return account_tracker_service_; } @@ -72,7 +71,6 @@ class AccountFetcherService : public KeyedService, private: friend class AccountInfoFetcher; friend class ChildAccountInfoFetcherImpl; - friend class ChildAccountInfoFetcherAndroid; void RefreshAllAccountInfo(bool only_fetch_if_invalid); void RefreshAllAccountsAndScheduleNext(); diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java index 3dfc915..d2fe991 100644 --- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java +++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java @@ -30,14 +30,15 @@ public final class ChildAccountInfoFetcher { } @CalledByNative - private static void fetch(final long nativeAccountFetcherService, final String accountId) { + private static void fetch(final long nativeAccountFetcherService, final String accountId, + final String accountName) { Context app = ApplicationStatus.getApplicationContext(); assert app != null; AccountManagerHelper helper = AccountManagerHelper.get(app); Account[] accounts = helper.getGoogleAccounts(); Account candidate_account = null; for (Account account : accounts) { - if (account.name.equals(accountId)) { + if (account.name.equals(accountName)) { candidate_account = account; break; } diff --git a/components/signin/core/browser/child_account_info_fetcher_android.cc b/components/signin/core/browser/child_account_info_fetcher_android.cc index 39ec8c4..0c7c59a 100644 --- a/components/signin/core/browser/child_account_info_fetcher_android.cc +++ b/components/signin/core/browser/child_account_info_fetcher_android.cc @@ -7,6 +7,7 @@ #include "base/android/jni_android.h" #include "base/android/jni_string.h" #include "components/signin/core/browser/account_fetcher_service.h" +#include "components/signin/core/browser/account_tracker_service.h" #include "jni/ChildAccountInfoFetcher_jni.h" // static @@ -14,17 +15,12 @@ void ChildAccountInfoFetcherAndroid::StartFetchingChildAccountInfo( AccountFetcherService* service, const std::string& account_id) { JNIEnv* env = base::android::AttachCurrentThread(); + std::string account_name = + service->account_tracker_service()->GetAccountInfo(account_id).email; Java_ChildAccountInfoFetcher_fetch( env, reinterpret_cast<jlong>(service), - base::android::ConvertUTF8ToJavaString(env, account_id).obj()); -} - -// static -void ChildAccountInfoFetcherAndroid::SetIsChildAccount( - AccountFetcherService* service, - std::string account_id, - bool is_child_account) { - service->SetIsChildAccount(account_id, is_child_account); + base::android::ConvertUTF8ToJavaString(env, account_id).obj(), + base::android::ConvertUTF8ToJavaString(env, account_name).obj()); } // static @@ -39,7 +35,7 @@ void SetIsChildAccount(JNIEnv* env, jboolean is_child_account) { AccountFetcherService* service = reinterpret_cast<AccountFetcherService*>(native_service); - ChildAccountInfoFetcherAndroid::SetIsChildAccount( - service, base::android::ConvertJavaStringToUTF8(env, j_account_id), + service->SetIsChildAccount( + base::android::ConvertJavaStringToUTF8(env, j_account_id), is_child_account); } diff --git a/components/signin/core/browser/child_account_info_fetcher_android.h b/components/signin/core/browser/child_account_info_fetcher_android.h index 371a7b1..db8b0f4 100644 --- a/components/signin/core/browser/child_account_info_fetcher_android.h +++ b/components/signin/core/browser/child_account_info_fetcher_android.h @@ -16,9 +16,6 @@ class ChildAccountInfoFetcherAndroid { public: static void StartFetchingChildAccountInfo(AccountFetcherService* service, const std::string& account_id); - static void SetIsChildAccount(AccountFetcherService* service, - std::string account_id, - bool is_child_account); // Register JNI methods. static bool Register(JNIEnv* env); |