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

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

Issue 2351703003: Refactor: move components/sync/../signin to components/signin/../ (Closed)
Patch Set: rebase Created 4 years, 3 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: components/sync/android/java/src/org/chromium/components/sync/signin/SystemAccountManagerDelegate.java
diff --git a/components/sync/android/java/src/org/chromium/components/sync/signin/SystemAccountManagerDelegate.java b/components/sync/android/java/src/org/chromium/components/sync/signin/SystemAccountManagerDelegate.java
deleted file mode 100644
index 60821351e3c562a1ec5163a489b220553536fa4f..0000000000000000000000000000000000000000
--- a/components/sync/android/java/src/org/chromium/components/sync/signin/SystemAccountManagerDelegate.java
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.components.sync.signin;
-
-import android.accounts.Account;
-import android.accounts.AccountManager;
-import android.accounts.AccountManagerCallback;
-import android.accounts.AccountManagerFuture;
-import android.accounts.AuthenticatorDescription;
-import android.accounts.AuthenticatorException;
-import android.accounts.OperationCanceledException;
-import android.app.Activity;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.SystemClock;
-
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
-import com.google.android.gms.auth.GooglePlayServicesAvailabilityException;
-
-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;
-
-import java.io.IOException;
-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;
- private final Context mApplicationContext;
- private static final String TAG = "Auth";
-
- public SystemAccountManagerDelegate(Context context) {
- mApplicationContext = context.getApplicationContext();
- mAccountManager = AccountManager.get(context.getApplicationContext());
- }
-
- @Override
- public Account[] getAccountsByType(String type) {
- if (!AccountManagerHelper.get(mApplicationContext).hasGetAccountsPermission()) {
- return new Account[] {};
- }
- long now = SystemClock.elapsedRealtime();
- Account[] accounts = mAccountManager.getAccountsByType(type);
- long elapsed = SystemClock.elapsedRealtime() - now;
- recordElapsedTimeHistogram("Signin.AndroidGetAccountsTime_AccountManager", elapsed);
- return accounts;
- }
-
- @Override
- public void getAccountsByType(final String type, final Callback<Account[]> callback) {
- new AsyncTask<Void, Void, Account[]>() {
- @Override
- protected Account[] doInBackground(Void... params) {
- return getAccountsByType(type);
- }
-
- @Override
- protected void onPostExecute(Account[] accounts) {
- callback.onResult(accounts);
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- @Override
- public String getAuthToken(Account account, String authTokenScope) throws AuthException {
- assert !ThreadUtils.runningOnUiThread();
- assert AccountManagerHelper.GOOGLE_ACCOUNT_TYPE.equals(account.type);
- try {
- return GoogleAuthUtil.getTokenWithNotification(
- mApplicationContext, account, authTokenScope, null);
- } catch (GoogleAuthException ex) {
- // This case includes a UserRecoverableNotifiedException, but most clients will have
- // their own retry mechanism anyway.
- // TODO(bauerb): Investigate integrating the callback with ConnectionRetry.
- throw new AuthException(false /* isTransientError */, ex);
- } catch (IOException ex) {
- throw new AuthException(true /* isTransientError */, ex);
- }
- }
-
- @Override
- public void invalidateAuthToken(String authToken) throws AuthException {
- try {
- GoogleAuthUtil.clearToken(mApplicationContext, authToken);
- } catch (GooglePlayServicesAvailabilityException ex) {
- throw new AuthException(false /* isTransientError */, ex);
- } catch (GoogleAuthException ex) {
- throw new AuthException(false /* isTransientError */, ex);
- } catch (IOException ex) {
- throw new AuthException(true /* isTransientError */, ex);
- }
- }
-
- @Override
- public AuthenticatorDescription[] getAuthenticatorTypes() {
- return mAccountManager.getAuthenticatorTypes();
- }
-
- @Override
- public void hasFeatures(Account account, String[] features, final Callback<Boolean> callback) {
- if (!AccountManagerHelper.get(mApplicationContext).hasGetAccountsPermission()) {
- ThreadUtils.postOnUiThread(new Runnable() {
- @Override
- public void run() {
- callback.onResult(false);
- }
- });
- return;
- }
- mAccountManager.hasFeatures(account, features, new AccountManagerCallback<Boolean>() {
- @Override
- public void run(AccountManagerFuture<Boolean> future) {
- assert future.isDone();
- boolean hasFeatures = false;
- try {
- hasFeatures = future.getResult();
- } catch (AuthenticatorException | IOException e) {
- Log.e(TAG, "Error while checking features: ", e);
- } catch (OperationCanceledException e) {
- Log.e(TAG, "Checking features was cancelled. This should not happen.");
- }
- callback.onResult(hasFeatures);
- }
- }, null /* handler */);
- }
-
- /**
- * Records a histogram value for how long time an action has taken using
- * {@link RecordHistogram#recordTimesHistogram(String, long, TimeUnit))} iff the browser
- * process has been initialized.
- *
- * @param histogramName the name of the histogram.
- * @param elapsedMs the elapsed time in milliseconds.
- */
- protected static void recordElapsedTimeHistogram(String histogramName, long elapsedMs) {
- if (!LibraryLoader.isInitialized()) return;
- RecordHistogram.recordTimesHistogram(histogramName, elapsedMs, TimeUnit.MILLISECONDS);
- }
-
- @Override
- public void updateCredentials(
- Account account, Activity activity, final Callback<Boolean> callback) {
- ThreadUtils.assertOnUiThread();
- if (!AccountManagerHelper.get(mApplicationContext).hasGetAccountsPermission()) {
- ThreadUtils.postOnUiThread(new Runnable() {
- @Override
- public void run() {
- callback.onResult(false);
- }
- });
- return;
- }
-
- mAccountManager.updateCredentials(
- account, "android", null, activity, new AccountManagerCallback<Bundle>() {
- @Override
- public void run(AccountManagerFuture<Bundle> future) {
- assert future.isDone();
- Bundle bundle = null;
- try {
- bundle = future.getResult();
- } catch (AuthenticatorException | IOException e) {
- Log.e(TAG, "Error while update credentials: ", e);
- } catch (OperationCanceledException e) {
- Log.w(TAG, "Updating credentials was cancelled.");
- }
- if (bundle != null
- && bundle.getString(AccountManager.KEY_ACCOUNT_NAME) != null
- && bundle.getString(AccountManager.KEY_ACCOUNT_TYPE) != null) {
- callback.onResult(true);
- } else {
- callback.onResult(false);
- }
- }
- }, null /* handler */);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698