OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.preferences.password; | 5 package org.chromium.chrome.browser.preferences.password; |
6 | 6 |
7 import android.content.Intent; | 7 import android.content.Intent; |
8 import android.net.Uri; | 8 import android.net.Uri; |
9 import android.os.Bundle; | 9 import android.os.Bundle; |
10 import android.preference.Preference; | 10 import android.preference.Preference; |
11 import android.preference.Preference.OnPreferenceChangeListener; | 11 import android.preference.Preference.OnPreferenceChangeListener; |
12 import android.preference.PreferenceCategory; | 12 import android.preference.PreferenceCategory; |
13 import android.preference.PreferenceFragment; | 13 import android.preference.PreferenceFragment; |
14 import android.preference.PreferenceScreen; | 14 import android.preference.PreferenceScreen; |
15 import android.text.SpannableString; | 15 import android.text.SpannableString; |
16 import android.text.style.ForegroundColorSpan; | 16 import android.text.style.ForegroundColorSpan; |
17 import android.view.Gravity; | 17 import android.view.Gravity; |
18 import android.view.View; | 18 import android.view.View; |
19 import android.view.ViewGroup; | 19 import android.view.ViewGroup; |
20 import android.widget.TextView; | 20 import android.widget.TextView; |
21 | 21 |
22 import org.chromium.base.ApiCompatibilityUtils; | 22 import org.chromium.base.ApiCompatibilityUtils; |
23 import org.chromium.base.CommandLine; | 23 import org.chromium.base.VisibleForTesting; |
24 import org.chromium.chrome.R; | 24 import org.chromium.chrome.R; |
25 import org.chromium.chrome.browser.ChromeFeatureList; | |
25 import org.chromium.chrome.browser.PasswordUIView; | 26 import org.chromium.chrome.browser.PasswordUIView; |
26 import org.chromium.chrome.browser.PasswordUIView.PasswordListObserver; | 27 import org.chromium.chrome.browser.PasswordUIView.PasswordListObserver; |
27 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; | 28 import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference; |
28 import org.chromium.chrome.browser.preferences.ChromeBasePreference; | 29 import org.chromium.chrome.browser.preferences.ChromeBasePreference; |
29 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; | 30 import org.chromium.chrome.browser.preferences.ChromeSwitchPreference; |
30 import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; | 31 import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; |
31 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 32 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
32 import org.chromium.chrome.browser.preferences.Preferences; | 33 import org.chromium.chrome.browser.preferences.Preferences; |
33 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 34 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
34 import org.chromium.content.common.ContentSwitches; | |
35 import org.chromium.ui.text.SpanApplier; | 35 import org.chromium.ui.text.SpanApplier; |
36 | 36 |
37 /** | 37 /** |
38 * The "Save passwords" screen in Settings, which allows the user to enable or d isable password | 38 * The "Save passwords" screen in Settings, which allows the user to enable or d isable password |
39 * saving, to view saved passwords (just the username and URL), and to delete sa ved passwords. | 39 * saving, to view saved passwords (just the username and URL), and to delete sa ved passwords. |
40 */ | 40 */ |
41 public class SavePasswordsPreferences extends PreferenceFragment | 41 public class SavePasswordsPreferences extends PreferenceFragment |
42 implements OnPreferenceChangeListener, PasswordListObserver, | 42 implements OnPreferenceChangeListener, PasswordListObserver, |
43 Preference.OnPreferenceClickListener { | 43 Preference.OnPreferenceClickListener { |
44 | 44 |
45 // Keys for name/password dictionaries. | 45 // Keys for name/password dictionaries. |
46 public static final String PASSWORD_LIST_URL = "url"; | 46 public static final String PASSWORD_LIST_URL = "url"; |
47 public static final String PASSWORD_LIST_NAME = "name"; | 47 public static final String PASSWORD_LIST_NAME = "name"; |
48 | 48 |
49 // Used to pass the password id into a new activity. | 49 // Used to pass the password id into a new activity. |
50 public static final String PASSWORD_LIST_ID = "id"; | 50 public static final String PASSWORD_LIST_ID = "id"; |
51 | 51 |
52 public static final String PREF_SAVE_PASSWORDS_SWITCH = "save_passwords_swit ch"; | 52 public static final String PREF_SAVE_PASSWORDS_SWITCH = "save_passwords_swit ch"; |
53 public static final String PREF_AUTOSIGNIN_SWITCH = "autosignin_switch"; | 53 public static final String PREF_AUTOSIGNIN_SWITCH = "autosignin_switch"; |
54 | 54 |
55 @VisibleForTesting | |
56 public static final String ENABLE_CREDENTIAL_MANAGER_API = "CredentialManage mentAPI"; | |
Bernhard Bauer
2016/04/20 10:10:11
Nit: This is the name of the feature, so the ENABL
melandory
2016/04/21 10:42:24
Done.
| |
57 | |
55 private static final String PREF_CATEGORY_SAVED_PASSWORDS = "saved_passwords "; | 58 private static final String PREF_CATEGORY_SAVED_PASSWORDS = "saved_passwords "; |
56 private static final String PREF_CATEGORY_EXCEPTIONS = "exceptions"; | 59 private static final String PREF_CATEGORY_EXCEPTIONS = "exceptions"; |
57 private static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link" ; | 60 private static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link" ; |
58 | 61 |
59 private static final int ORDER_SWITCH = 0; | 62 private static final int ORDER_SWITCH = 0; |
60 private static final int ORDER_AUTO_SIGNIN_CHECKBOX = 1; | 63 private static final int ORDER_AUTO_SIGNIN_CHECKBOX = 1; |
61 private static final int ORDER_MANAGE_ACCOUNT_LINK = 2; | 64 private static final int ORDER_MANAGE_ACCOUNT_LINK = 2; |
62 private static final int ORDER_SAVED_PASSWORDS = 3; | 65 private static final int ORDER_SAVED_PASSWORDS = 3; |
63 private static final int ORDER_EXCEPTIONS = 4; | 66 private static final int ORDER_EXCEPTIONS = 4; |
64 | 67 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
250 | 253 |
251 // Note: setting the switch state before the preference is added to the screen results in | 254 // Note: setting the switch state before the preference is added to the screen results in |
252 // some odd behavior where the switch state doesn't always match the int ernal enabled state | 255 // some odd behavior where the switch state doesn't always match the int ernal enabled state |
253 // (e.g. the switch will say "On" when save passwords is really turned o ff), so | 256 // (e.g. the switch will say "On" when save passwords is really turned o ff), so |
254 // .setChecked() should be called after .addPreference() | 257 // .setChecked() should be called after .addPreference() |
255 mSavePasswordsSwitch.setChecked( | 258 mSavePasswordsSwitch.setChecked( |
256 PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); | 259 PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
257 } | 260 } |
258 | 261 |
259 private void createAutoSignInCheckbox() { | 262 private void createAutoSignInCheckbox() { |
260 if (!CommandLine.getInstance().hasSwitch(ContentSwitches.ENABLE_CREDENTI AL_MANAGER_API)) { | 263 if (!ChromeFeatureList.isEnabled(ENABLE_CREDENTIAL_MANAGER_API)) { |
261 return; | 264 return; |
262 } | 265 } |
263 mAutoSignInSwitch = new ChromeBaseCheckBoxPreference(getActivity(), null ); | 266 mAutoSignInSwitch = new ChromeBaseCheckBoxPreference(getActivity(), null ); |
264 mAutoSignInSwitch.setKey(PREF_AUTOSIGNIN_SWITCH); | 267 mAutoSignInSwitch.setKey(PREF_AUTOSIGNIN_SWITCH); |
265 mAutoSignInSwitch.setTitle(R.string.passwords_auto_signin_title); | 268 mAutoSignInSwitch.setTitle(R.string.passwords_auto_signin_title); |
266 mAutoSignInSwitch.setOrder(ORDER_AUTO_SIGNIN_CHECKBOX); | 269 mAutoSignInSwitch.setOrder(ORDER_AUTO_SIGNIN_CHECKBOX); |
267 mAutoSignInSwitch.setSummary(R.string.passwords_auto_signin_description) ; | 270 mAutoSignInSwitch.setSummary(R.string.passwords_auto_signin_description) ; |
268 mAutoSignInSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeLi stener() { | 271 mAutoSignInSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeLi stener() { |
269 @Override | 272 @Override |
270 public boolean onPreferenceChange(Preference preference, Object newV alue) { | 273 public boolean onPreferenceChange(Preference preference, Object newV alue) { |
(...skipping 24 matching lines...) Expand all Loading... | |
295 mLinkPref = new ChromeBasePreference(getActivity()); | 298 mLinkPref = new ChromeBasePreference(getActivity()); |
296 mLinkPref.setKey(PREF_MANAGE_ACCOUNT_LINK); | 299 mLinkPref.setKey(PREF_MANAGE_ACCOUNT_LINK); |
297 mLinkPref.setTitle(title); | 300 mLinkPref.setTitle(title); |
298 mLinkPref.setOnPreferenceClickListener(this); | 301 mLinkPref.setOnPreferenceClickListener(this); |
299 mLinkPref.setOrder(ORDER_MANAGE_ACCOUNT_LINK); | 302 mLinkPref.setOrder(ORDER_MANAGE_ACCOUNT_LINK); |
300 } | 303 } |
301 getPreferenceScreen().addPreference(mLinkPref); | 304 getPreferenceScreen().addPreference(mLinkPref); |
302 } | 305 } |
303 } | 306 } |
304 } | 307 } |
OLD | NEW |