OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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; | 5 package org.chromium.chrome.browser.preferences; |
6 | 6 |
7 import android.content.Intent; | |
8 import android.net.Uri; | |
9 import android.os.Bundle; | 7 import android.os.Bundle; |
10 import android.os.Handler; | 8 import android.os.Handler; |
11 import android.preference.Preference; | 9 import android.preference.Preference; |
12 import android.preference.PreferenceFragment; | 10 import android.preference.PreferenceFragment; |
13 | 11 |
14 import org.chromium.base.VisibleForTesting; | |
15 import org.chromium.chrome.R; | 12 import org.chromium.chrome.R; |
16 import org.chromium.chrome.browser.ChromeFeatureList; | |
17 import org.chromium.chrome.browser.PasswordUIView; | 13 import org.chromium.chrome.browser.PasswordUIView; |
18 import org.chromium.chrome.browser.autofill.PersonalDataManager; | 14 import org.chromium.chrome.browser.autofill.PersonalDataManager; |
19 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; | 15 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
20 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; | 16 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
21 import org.chromium.chrome.browser.preferences.datareduction.DataReductionPrefer
ences; | 17 import org.chromium.chrome.browser.preferences.datareduction.DataReductionPrefer
ences; |
22 import org.chromium.chrome.browser.preferences.password.SavePasswordsPreferences
; | |
23 import org.chromium.chrome.browser.signin.SigninManager; | 18 import org.chromium.chrome.browser.signin.SigninManager; |
24 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; | 19 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; |
25 import org.chromium.chrome.browser.sync.ProfileSyncService; | |
26 import org.chromium.sync.AndroidSyncSettings; | |
27 | 20 |
28 /** | 21 /** |
29 * The main settings screen, shown when the user first opens Settings. | 22 * The main settings screen, shown when the user first opens Settings. |
30 */ | 23 */ |
31 public class MainPreferences extends PreferenceFragment implements SignInStateOb
server, | 24 public class MainPreferences extends PreferenceFragment implements SignInStateOb
server { |
32 Preference.OnPreferenceClickListener { | |
33 | 25 |
34 public static final String PREF_SIGN_IN = "sign_in"; | 26 public static final String PREF_SIGN_IN = "sign_in"; |
35 public static final String PREF_SEARCH_ENGINE = "search_engine"; | 27 public static final String PREF_SEARCH_ENGINE = "search_engine"; |
36 public static final String PREF_DOCUMENT_MODE = "document_mode"; | 28 public static final String PREF_DOCUMENT_MODE = "document_mode"; |
37 public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings"; | 29 public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings"; |
38 public static final String PREF_SAVED_PASSWORDS = "saved_passwords"; | 30 public static final String PREF_SAVED_PASSWORDS = "saved_passwords"; |
39 public static final String PREF_HOMEPAGE = "homepage"; | 31 public static final String PREF_HOMEPAGE = "homepage"; |
40 public static final String PREF_DATA_REDUCTION = "data_reduction"; | 32 public static final String PREF_DATA_REDUCTION = "data_reduction"; |
41 | 33 |
42 public static final String ACCOUNT_PICKER_DIALOG_TAG = "account_picker_dialo
g_tag"; | 34 public static final String ACCOUNT_PICKER_DIALOG_TAG = "account_picker_dialo
g_tag"; |
43 public static final String EXTRA_SHOW_SEARCH_ENGINE_PICKER = "show_search_en
gine_picker"; | 35 public static final String EXTRA_SHOW_SEARCH_ENGINE_PICKER = "show_search_en
gine_picker"; |
44 | 36 |
45 public static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link"; | |
46 | |
47 @VisibleForTesting | |
48 public static final String VIEW_PASSWORDS = "view-passwords"; | |
49 | |
50 private SignInPreference mSignInPreference; | 37 private SignInPreference mSignInPreference; |
51 private ManagedPreferenceDelegate mManagedPreferenceDelegate; | 38 private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
52 | 39 |
53 private boolean mShowSearchEnginePicker; | 40 private boolean mShowSearchEnginePicker; |
54 | 41 |
55 public MainPreferences() { | 42 public MainPreferences() { |
56 setHasOptionsMenu(true); | 43 setHasOptionsMenu(true); |
57 mManagedPreferenceDelegate = createManagedPreferenceDelegate(); | 44 mManagedPreferenceDelegate = createManagedPreferenceDelegate(); |
58 } | 45 } |
59 | 46 |
(...skipping 23 matching lines...) Expand all Loading... |
83 } | 70 } |
84 } | 71 } |
85 | 72 |
86 @Override | 73 @Override |
87 public void onPause() { | 74 public void onPause() { |
88 super.onPause(); | 75 super.onPause(); |
89 SigninManager.get(getActivity()).removeSignInStateObserver(this); | 76 SigninManager.get(getActivity()).removeSignInStateObserver(this); |
90 clearSignInPref(); | 77 clearSignInPref(); |
91 } | 78 } |
92 | 79 |
93 @Override | |
94 public boolean onPreferenceClick(Preference preference) { | |
95 Intent intent = new Intent( | |
96 Intent.ACTION_VIEW, | |
97 Uri.parse(PasswordUIView.getAccountDashboardURL())); | |
98 intent.setPackage(getActivity().getPackageName()); | |
99 getActivity().startActivity(intent); | |
100 return true; | |
101 } | |
102 | |
103 private void updatePreferences() { | 80 private void updatePreferences() { |
104 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); | 81 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); |
105 addPreferencesFromResource(R.xml.main_preferences); | 82 addPreferencesFromResource(R.xml.main_preferences); |
106 | 83 |
107 ChromeBasePreference autofillPref = | 84 ChromeBasePreference autofillPref = |
108 (ChromeBasePreference) findPreference(PREF_AUTOFILL_SETTINGS); | 85 (ChromeBasePreference) findPreference(PREF_AUTOFILL_SETTINGS); |
109 setOnOffSummary(autofillPref, PersonalDataManager.isAutofillEnabled()); | 86 setOnOffSummary(autofillPref, PersonalDataManager.isAutofillEnabled()); |
110 autofillPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); | 87 autofillPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
111 | 88 |
112 ChromeBasePreference passwordsPref = | 89 ChromeBasePreference passwordsPref = |
113 (ChromeBasePreference) findPreference(PREF_SAVED_PASSWORDS); | 90 (ChromeBasePreference) findPreference(PREF_SAVED_PASSWORDS); |
114 | 91 if (PasswordUIView.shouldUseSmartLockBranding()) { |
115 ProfileSyncService syncService = ProfileSyncService.get(); | 92 passwordsPref.setTitle(getResources().getString( |
116 | 93 R.string.prefs_smart_lock_for_passwords)); |
117 if (AndroidSyncSettings.isSyncEnabled(getActivity().getApplicationContex
t()) | |
118 && syncService.isBackendInitialized() | |
119 && !syncService.isUsingSecondaryPassphrase() | |
120 && ChromeFeatureList.isEnabled(VIEW_PASSWORDS)) { | |
121 passwordsPref.setKey(PREF_MANAGE_ACCOUNT_LINK); | |
122 passwordsPref.setTitle(R.string.redirect_to_passwords_text); | |
123 passwordsPref.setSummary(R.string.redirect_to_passwords_link); | |
124 passwordsPref.setOnPreferenceClickListener(this); | |
125 passwordsPref.setManagedPreferenceDelegate(null); | |
126 } else { | |
127 if (PasswordUIView.shouldUseSmartLockBranding()) { | |
128 passwordsPref.setTitle(getResources().getString( | |
129 R.string.prefs_smart_lock_for_passwords)); | |
130 } else { | |
131 passwordsPref.setTitle(getResources().getString( | |
132 R.string.prefs_saved_passwords)); | |
133 } | |
134 passwordsPref.setFragment(SavePasswordsPreferences.class.getCanonica
lName()); | |
135 setOnOffSummary(passwordsPref, | |
136 PrefServiceBridge.getInstance().isRememberPasswordsEnabled()
); | |
137 passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegat
e); | |
138 } | 94 } |
| 95 setOnOffSummary(passwordsPref, |
| 96 PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
| 97 passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
139 | 98 |
140 Preference homepagePref = findPreference(PREF_HOMEPAGE); | 99 Preference homepagePref = findPreference(PREF_HOMEPAGE); |
141 if (HomepageManager.shouldShowHomepageSetting()) { | 100 if (HomepageManager.shouldShowHomepageSetting()) { |
142 setOnOffSummary(homepagePref, | 101 setOnOffSummary(homepagePref, |
143 HomepageManager.getInstance(getActivity()).getPrefHomepageEn
abled()); | 102 HomepageManager.getInstance(getActivity()).getPrefHomepageEn
abled()); |
144 } else { | 103 } else { |
145 getPreferenceScreen().removePreference(homepagePref); | 104 getPreferenceScreen().removePreference(homepagePref); |
146 } | 105 } |
147 | 106 |
148 ChromeBasePreference dataReduction = | 107 ChromeBasePreference dataReduction = |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 if (PREF_DATA_REDUCTION.equals(preference.getKey())) { | 181 if (PREF_DATA_REDUCTION.equals(preference.getKey())) { |
223 DataReductionProxySettings settings = DataReductionProxySett
ings.getInstance(); | 182 DataReductionProxySettings settings = DataReductionProxySett
ings.getInstance(); |
224 return settings.isDataReductionProxyManaged() | 183 return settings.isDataReductionProxyManaged() |
225 && !settings.isDataReductionProxyEnabled(); | 184 && !settings.isDataReductionProxyEnabled(); |
226 } | 185 } |
227 return super.isPreferenceClickDisabledByPolicy(preference); | 186 return super.isPreferenceClickDisabledByPolicy(preference); |
228 } | 187 } |
229 }; | 188 }; |
230 } | 189 } |
231 } | 190 } |
OLD | NEW |