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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ManageSavedPasswordsPreferences.java

Issue 978913004: Add auto sign in slider in Clank settings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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/preferences/password/ManageSavedPasswordsPreferences.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ManageSavedPasswordsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ManageSavedPasswordsPreferences.java
index 5290cf36ff6aa5931a608d3a81f1a95b1b4c9d3b..61da69cd9b1369974e82daacfea6e75e877dc21b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ManageSavedPasswordsPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/ManageSavedPasswordsPreferences.java
@@ -19,14 +19,17 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import org.chromium.base.CommandLine;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.PasswordUIView;
import org.chromium.chrome.browser.PasswordUIView.PasswordListObserver;
+import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
import org.chromium.chrome.browser.preferences.ChromeBasePreference;
import org.chromium.chrome.browser.preferences.ChromeSwitchPreference;
import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.preferences.Preferences;
+import org.chromium.content.common.ContentSwitches;
import org.chromium.ui.text.SpanApplier;
/**
@@ -48,15 +51,17 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
public static final String PASSWORD_LIST_DELETED_ID = "deleted_id";
public static final String PREF_SAVE_PASSWORDS_SWITCH = "save_passwords_switch";
+ public static final String PREF_AUTOSIGNIN_SWITCH = "autosignin_switch";
private static final String PREF_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
private static final String PREF_CATEGORY_EXCEPTIONS = "exceptions";
private static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link";
private static final int ORDER_SWITCH = 0;
- private static final int ORDER_MANAGE_ACCOUNT_LINK = 1;
- private static final int ORDER_SAVED_PASSWORDS = 2;
- private static final int ORDER_EXCEPTIONS = 3;
+ private static final int ORDER_AUTO_SIGNIN_CHECKBOX = 1;
+ private static final int ORDER_MANAGE_ACCOUNT_LINK = 2;
+ private static final int ORDER_SAVED_PASSWORDS = 3;
+ private static final int ORDER_EXCEPTIONS = 4;
public static final int RESULT_DELETE_PASSWORD = 1;
@@ -66,6 +71,7 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
private boolean mNoPasswordExceptions;
private Preference mLinkPref;
private ChromeSwitchPreference mSavePasswordsSwitch;
+ private ChromeBaseCheckBoxPreference mAutoSignInSwitch;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -106,7 +112,8 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
mNoPasswordExceptions = false;
getPreferenceScreen().removeAll();
mEmptyView.setVisibility(View.GONE);
- createSavePasswordsSwitch(PrefServiceBridge.getInstance().isRememberPasswordsEnabled());
+ createSavePasswordsSwitch();
+ createAutoSignInCheckbox();
mPasswordManagerHandler.updatePasswordLists();
}
@@ -243,9 +250,10 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
}
}
- private void createSavePasswordsSwitch(boolean isEnabled) {
+ private void createSavePasswordsSwitch() {
mSavePasswordsSwitch = new ChromeSwitchPreference(getActivity(), null);
mSavePasswordsSwitch.setKey(PREF_SAVE_PASSWORDS_SWITCH);
+ mSavePasswordsSwitch.setTitle(R.string.prefs_saved_passwords);
mSavePasswordsSwitch.setOrder(ORDER_SWITCH);
mSavePasswordsSwitch.setSummaryOn(R.string.text_on);
mSavePasswordsSwitch.setSummaryOff(R.string.text_off);
@@ -268,7 +276,36 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
// some odd behavior where the switch state doesn't always match the internal enabled state
// (e.g. the switch will say "On" when save passwords is really turned off), so
// .setChecked() should be called after .addPreference()
- mSavePasswordsSwitch.setChecked(isEnabled);
+ mSavePasswordsSwitch.setChecked(
+ PrefServiceBridge.getInstance().isRememberPasswordsEnabled());
+ }
+
+ private void createAutoSignInCheckbox() {
+ if (!CommandLine.getInstance().hasSwitch(ContentSwitches.ENABLE_CREDENTIAL_MANAGER_API)) {
+ return;
+ }
+ mAutoSignInSwitch = new ChromeBaseCheckBoxPreference(getActivity(), null);
+ mAutoSignInSwitch.setKey(PREF_AUTOSIGNIN_SWITCH);
+ mAutoSignInSwitch.setTitle(R.string.passwords_auto_signin_title);
+ mAutoSignInSwitch.setOrder(ORDER_AUTO_SIGNIN_CHECKBOX);
+ mAutoSignInSwitch.setSummary(R.string.passwords_auto_signin_description);
+ mAutoSignInSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ PrefServiceBridge.getInstance().setPasswordManagerAutoSigninEnabled(
+ (boolean) newValue);
+ return true;
+ }
+ });
+ mAutoSignInSwitch.setManagedPreferenceDelegate(new ManagedPreferenceDelegate() {
+ @Override
+ public boolean isPreferenceControlledByPolicy(Preference preference) {
+ return PrefServiceBridge.getInstance().isPasswordManagerAutoSigninManaged();
+ }
+ });
+ getPreferenceScreen().addPreference(mAutoSignInSwitch);
+ mAutoSignInSwitch.setChecked(
+ PrefServiceBridge.getInstance().isPasswordManagerAutoSigninEnabled());
}
private void displayManageAccountLink() {
@@ -291,6 +328,6 @@ public class ManageSavedPasswordsPreferences extends PreferenceFragment
}
// Draw a divider only if the preference after mSavePasswordsSwitch is not selectable,
// in which case the ListView itself doesn't draw a divider.
- mSavePasswordsSwitch.setDrawDivider(!shouldDisplayLink);
+ mSavePasswordsSwitch.setDrawDivider(!shouldDisplayLink && mAutoSignInSwitch == null);
}
}

Powered by Google App Engine
This is Rietveld 408576698