Commit 2c7cd7e0 authored by Tanmoy Mollik's avatar Tanmoy Mollik Committed by Commit Bot

Cleanup AccountAdder

Remove AccountAdder.addAccount usage and replace it with calls to
SignUtils.openSettingsForAllAccounts.

Bug: 842860
Change-Id: I9187b916f7a8805dcdd7c39d9fca2580bd7eac62
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1712676Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Reviewed-by: default avatarColin Blundell <blundell@chromium.org>
Commit-Queue: Tanmoy Mollik <triploblastic@google.com>
Cr-Commit-Position: refs/heads/master@{#681782}
parent 9b299888
...@@ -1407,7 +1407,6 @@ chrome_java_sources = [ ...@@ -1407,7 +1407,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/share/ShareParams.java", "java/src/org/chromium/chrome/browser/share/ShareParams.java",
"java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallMessageHandler.java", "java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallMessageHandler.java",
"java/src/org/chromium/chrome/browser/sharing/SharingJNIBridge.java", "java/src/org/chromium/chrome/browser/sharing/SharingJNIBridge.java",
"java/src/org/chromium/chrome/browser/signin/AccountAdder.java",
"java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java", "java/src/org/chromium/chrome/browser/signin/AccountPickerDialogFragment.java",
"java/src/org/chromium/chrome/browser/signin/IdentityServicesProvider.java", "java/src/org/chromium/chrome/browser/signin/IdentityServicesProvider.java",
"java/src/org/chromium/chrome/browser/signin/ConfirmImportSyncDataDialog.java", "java/src/org/chromium/chrome/browser/signin/ConfirmImportSyncDataDialog.java",
......
...@@ -83,7 +83,6 @@ def _CheckAlertDialogBuilder(input_api, output_api): ...@@ -83,7 +83,6 @@ def _CheckAlertDialogBuilder(input_api, output_api):
BROWSER_ROOT + 'password_manager/AccountChooserDialog.java', BROWSER_ROOT + 'password_manager/AccountChooserDialog.java',
BROWSER_ROOT + 'password_manager/AutoSigninFirstRunDialog.java', BROWSER_ROOT + 'password_manager/AutoSigninFirstRunDialog.java',
BROWSER_ROOT + r'preferences[\\\/].*', BROWSER_ROOT + r'preferences[\\\/].*',
BROWSER_ROOT + 'signin/AccountAdder.java',
BROWSER_ROOT + 'signin/AccountPickerDialogFragment.java', BROWSER_ROOT + 'signin/AccountPickerDialogFragment.java',
BROWSER_ROOT + 'signin/AccountSigninView.java', BROWSER_ROOT + 'signin/AccountSigninView.java',
BROWSER_ROOT + 'signin/ConfirmImportSyncDataDialog.java', BROWSER_ROOT + 'signin/ConfirmImportSyncDataDialog.java',
......
...@@ -77,9 +77,6 @@ class CheckAlertDialogBuilder(unittest.TestCase): ...@@ -77,9 +77,6 @@ class CheckAlertDialogBuilder(unittest.TestCase):
"""Examples of when AlertDialog.Builder should not be flagged.""" """Examples of when AlertDialog.Builder should not be flagged."""
mock_input = MockInputApi() mock_input = MockInputApi()
mock_input.files = [ mock_input.files = [
MockFile('chrome/android/java/src/org/chromium/chrome/browser/signin'
'/AccountAdder.java',
['new AlertDialog.Builder()']),
MockFile('path/One.java', ['AlertDialog.Builder']), MockFile('path/One.java', ['AlertDialog.Builder']),
MockFile('path/Two.java', ['// do not: new AlertDialog.Builder()']), MockFile('path/Two.java', ['// do not: new AlertDialog.Builder()']),
MockFile('path/Three.java', MockFile('path/Three.java',
......
...@@ -5,12 +5,10 @@ ...@@ -5,12 +5,10 @@
package org.chromium.chrome.browser.firstrun; package org.chromium.chrome.browser.firstrun;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.support.v4.app.Fragment;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.metrics.UmaSessionStats; import org.chromium.chrome.browser.metrics.UmaSessionStats;
import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.signin.AccountAdder;
/** Provides first run related utility functions. */ /** Provides first run related utility functions. */
public class FirstRunUtils { public class FirstRunUtils {
...@@ -65,12 +63,4 @@ public class FirstRunUtils { ...@@ -65,12 +63,4 @@ public class FirstRunUtils {
.apply(); .apply();
PrefServiceBridge.getInstance().setEulaAccepted(); PrefServiceBridge.getInstance().setEulaAccepted();
} }
/**
* Opens the Android account adder UI.
* @param fragment A fragment that requested the service.
*/
public static void openAccountAdder(Fragment fragment) {
AccountAdder.getInstance().addAccount(fragment, AccountAdder.ADD_ACCOUNT_RESULT);
}
} }
...@@ -9,6 +9,7 @@ import android.annotation.TargetApi; ...@@ -9,6 +9,7 @@ import android.annotation.TargetApi;
import android.app.Dialog; import android.app.Dialog;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
...@@ -34,7 +35,6 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge; ...@@ -34,7 +35,6 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.PreferencesLauncher; import org.chromium.chrome.browser.preferences.PreferencesLauncher;
import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics; import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics;
import org.chromium.chrome.browser.signin.AccountAdder;
import org.chromium.chrome.browser.signin.ConfirmManagedSyncDataDialog; import org.chromium.chrome.browser.signin.ConfirmManagedSyncDataDialog;
import org.chromium.chrome.browser.signin.IdentityServicesProvider; import org.chromium.chrome.browser.signin.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.ProfileDataCache; import org.chromium.chrome.browser.signin.ProfileDataCache;
...@@ -321,7 +321,16 @@ public class AccountManagementFragment extends PreferenceFragmentCompat ...@@ -321,7 +321,16 @@ public class AccountManagementFragment extends PreferenceFragmentCompat
SigninUtils.logEvent(ProfileAccountManagementMetrics.ADD_ACCOUNT, mGaiaServiceType); SigninUtils.logEvent(ProfileAccountManagementMetrics.ADD_ACCOUNT, mGaiaServiceType);
AccountAdder.getInstance().addAccount(getActivity(), AccountAdder.ADD_ACCOUNT_RESULT); AccountManagerFacade.get().createAddAccountIntent((@Nullable Intent intent) -> {
if (intent != null) {
startActivity(intent);
return;
}
// AccountManagerFacade couldn't create intent, use SigninUtils to open settings
// instead.
SigninUtils.openSettingsForAllAccounts(getActivity());
});
// Return to the last opened tab if triggered from the content area. // Return to the last opened tab if triggered from the content area.
if (mGaiaServiceType != GAIAServiceType.GAIA_SERVICE_TYPE_NONE) { if (mGaiaServiceType != GAIAServiceType.GAIA_SERVICE_TYPE_NONE) {
......
// Copyright 2015 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.chrome.browser.signin;
import android.app.Activity;
import android.content.Intent;
import android.provider.Settings;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
/**
* Triggers Android's account adding dialog.
*/
public class AccountAdder {
public static final int ADD_ACCOUNT_RESULT = 102;
private static final String EXTRA_ACCOUNT_TYPES = "account_types";
private static final String EXTRA_VALUE_GOOGLE_ACCOUNTS = "com.google";
private static AccountAdder sInstance = new AccountAdder();
protected AccountAdder() {}
/**
* Returns the singleton instance of AccountAdder.
*/
public static AccountAdder getInstance() {
return sInstance;
}
/**
* Overrides the singleton instance of AccountAdder with the specified instance, for use in
* tests.
*/
@VisibleForTesting
public static void overrideAccountAdderForTests(AccountAdder adder) {
sInstance = adder;
}
private static Intent createAddGoogleAccountIntent() {
Intent createAccountIntent = new Intent(Settings.ACTION_ADD_ACCOUNT);
// NOTE: the documentation says Settings.EXTRA_AUTHORITIES should be used,
// but it doesn't work.
createAccountIntent.putExtra(
EXTRA_ACCOUNT_TYPES, new String[]{EXTRA_VALUE_GOOGLE_ACCOUNTS});
return createAccountIntent;
}
private void onOpenAddGoogleAccountPageFailed(final Activity activity, final int result) {
AlertDialog.Builder builder =
new AlertDialog.Builder(activity, R.style.Theme_Chromium_AlertDialog);
builder.setMessage(R.string.signin_open_add_google_account_page_failed);
builder.setPositiveButton(R.string.signin_open_settings_accounts, (dialog, which) -> {
// Open Accounts page in device's Settings app.
Intent openSettingsAccounts = new Intent(Settings.ACTION_SYNC_SETTINGS);
if (openSettingsAccounts.resolveActivity(activity.getPackageManager()) != null) {
activity.startActivityForResult(openSettingsAccounts, result);
}
});
builder.create().show();
}
/**
* Triggers Android's account adding dialog from a fragment.
* @param fragment A fragment
* @param result An intent result code
*/
public void addAccount(Fragment fragment, int result) {
Intent addGoogleAccount = createAddGoogleAccountIntent();
if (addGoogleAccount.resolveActivity(fragment.getActivity().getPackageManager()) != null) {
fragment.startActivityForResult(addGoogleAccount, result);
} else {
onOpenAddGoogleAccountPageFailed(fragment.getActivity(), result);
}
}
/**
* Triggers Android's account adding dialog from an activity.
* @param activity An activity
* @param result An intent result code
*/
public void addAccount(Activity activity, int result) {
Intent addGoogleAccount = createAddGoogleAccountIntent();
if (addGoogleAccount.resolveActivity(activity.getPackageManager()) != null) {
activity.startActivityForResult(addGoogleAccount, result);
} else {
onOpenAddGoogleAccountPageFailed(activity, result);
}
}
}
...@@ -535,8 +535,9 @@ public abstract class SigninFragmentBase ...@@ -535,8 +535,9 @@ public abstract class SigninFragmentBase
return; return;
} }
// AccountManagerFacade couldn't create intent, use AccountAdder as fallback. // AccountManagerFacade couldn't create intent, use SigninUtils to open settings
AccountAdder.getInstance().addAccount(this, ADD_ACCOUNT_REQUEST_CODE); // instead.
SigninUtils.openSettingsForAllAccounts(getContext());
}); });
} }
......
...@@ -2673,12 +2673,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p ...@@ -2673,12 +2673,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_SIGNIN_ADD_ACCOUNT" desc="Text for adding another Google Account"> <message name="IDS_SIGNIN_ADD_ACCOUNT" desc="Text for adding another Google Account">
Add account Add account
</message> </message>
<message name="IDS_SIGNIN_OPEN_ADD_GOOGLE_ACCOUNT_PAGE_FAILED" desc="Message for opening add Google Account page in device's Settings app failed">
Add a Google Account from the Accounts page in your device’s Settings app.
</message>
<message name="IDS_SIGNIN_OPEN_SETTINGS_ACCOUNTS" desc="Text for button to open Accounts page in device's Settings app">
Open settings
</message>
<message name="IDS_SIGNIN_GMS_UPDATING" desc="Message notifying user that Google Play Services is still updating."> <message name="IDS_SIGNIN_GMS_UPDATING" desc="Message notifying user that Google Play Services is still updating.">
Waiting for Google Play Services to finish updating Waiting for Google Play Services to finish updating
</message> </message>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment