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; | |
7 import android.os.Bundle; | 9 import android.os.Bundle; |
8 import android.os.Handler; | 10 import android.os.Handler; |
9 import android.preference.Preference; | 11 import android.preference.Preference; |
10 import android.preference.PreferenceFragment; | 12 import android.preference.PreferenceFragment; |
13 import android.text.SpannableString; | |
14 import android.text.style.ForegroundColorSpan; | |
11 | 15 |
16 import org.chromium.base.ApiCompatibilityUtils; | |
17 import org.chromium.base.VisibleForTesting; | |
12 import org.chromium.chrome.R; | 18 import org.chromium.chrome.R; |
19 import org.chromium.chrome.browser.ChromeFeatureList; | |
13 import org.chromium.chrome.browser.PasswordUIView; | 20 import org.chromium.chrome.browser.PasswordUIView; |
14 import org.chromium.chrome.browser.autofill.PersonalDataManager; | 21 import org.chromium.chrome.browser.autofill.PersonalDataManager; |
15 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; | 22 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
16 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; | 23 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
17 import org.chromium.chrome.browser.preferences.datareduction.DataReductionPrefer ences; | 24 import org.chromium.chrome.browser.preferences.datareduction.DataReductionPrefer ences; |
18 import org.chromium.chrome.browser.signin.SigninManager; | 25 import org.chromium.chrome.browser.signin.SigninManager; |
19 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; | 26 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; |
27 import org.chromium.chrome.browser.sync.ProfileSyncService; | |
28 import org.chromium.sync.AndroidSyncSettings; | |
29 import org.chromium.ui.text.SpanApplier; | |
20 | 30 |
21 /** | 31 /** |
22 * The main settings screen, shown when the user first opens Settings. | 32 * The main settings screen, shown when the user first opens Settings. |
23 */ | 33 */ |
24 public class MainPreferences extends PreferenceFragment implements SignInStateOb server { | 34 public class MainPreferences extends PreferenceFragment implements SignInStateOb server, |
35 Preference.OnPreferenceClickListener { | |
25 | 36 |
26 public static final String PREF_SIGN_IN = "sign_in"; | 37 public static final String PREF_SIGN_IN = "sign_in"; |
27 public static final String PREF_SEARCH_ENGINE = "search_engine"; | 38 public static final String PREF_SEARCH_ENGINE = "search_engine"; |
28 public static final String PREF_DOCUMENT_MODE = "document_mode"; | 39 public static final String PREF_DOCUMENT_MODE = "document_mode"; |
29 public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings"; | 40 public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings"; |
30 public static final String PREF_SAVED_PASSWORDS = "saved_passwords"; | 41 public static final String PREF_SAVED_PASSWORDS = "saved_passwords"; |
31 public static final String PREF_HOMEPAGE = "homepage"; | 42 public static final String PREF_HOMEPAGE = "homepage"; |
32 public static final String PREF_DATA_REDUCTION = "data_reduction"; | 43 public static final String PREF_DATA_REDUCTION = "data_reduction"; |
33 | |
34 public static final String ACCOUNT_PICKER_DIALOG_TAG = "account_picker_dialo g_tag"; | 44 public static final String ACCOUNT_PICKER_DIALOG_TAG = "account_picker_dialo g_tag"; |
35 public static final String EXTRA_SHOW_SEARCH_ENGINE_PICKER = "show_search_en gine_picker"; | 45 public static final String EXTRA_SHOW_SEARCH_ENGINE_PICKER = "show_search_en gine_picker"; |
36 | 46 |
47 private static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link" ; | |
48 | |
49 @VisibleForTesting | |
50 public static final String VIEW_PASSWORDS = "ViewPasswords"; | |
51 | |
52 private static final int ORDER_MANAGE_ACCOUNT_LINK = 2; | |
Bernhard Bauer
2016/07/01 16:55:28
This is unused.
dozsa
2016/07/05 10:19:54
Done.
| |
53 | |
37 private SignInPreference mSignInPreference; | 54 private SignInPreference mSignInPreference; |
38 private ManagedPreferenceDelegate mManagedPreferenceDelegate; | 55 private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
39 | 56 |
40 private boolean mShowSearchEnginePicker; | 57 private boolean mShowSearchEnginePicker; |
41 | 58 |
59 private Preference mPasswordsPref; | |
Bernhard Bauer
2016/07/01 16:55:28
This is also unused.
dozsa
2016/07/05 10:19:54
Done.
| |
60 | |
42 public MainPreferences() { | 61 public MainPreferences() { |
43 setHasOptionsMenu(true); | 62 setHasOptionsMenu(true); |
44 mManagedPreferenceDelegate = createManagedPreferenceDelegate(); | 63 mManagedPreferenceDelegate = createManagedPreferenceDelegate(); |
45 } | 64 } |
46 | 65 |
47 @Override | 66 @Override |
48 public void onCreate(Bundle savedInstanceState) { | 67 public void onCreate(Bundle savedInstanceState) { |
49 super.onCreate(savedInstanceState); | 68 super.onCreate(savedInstanceState); |
50 | 69 |
51 if (savedInstanceState == null && getArguments() != null | 70 if (savedInstanceState == null && getArguments() != null |
(...skipping 18 matching lines...) Expand all Loading... | |
70 } | 89 } |
71 } | 90 } |
72 | 91 |
73 @Override | 92 @Override |
74 public void onPause() { | 93 public void onPause() { |
75 super.onPause(); | 94 super.onPause(); |
76 SigninManager.get(getActivity()).removeSignInStateObserver(this); | 95 SigninManager.get(getActivity()).removeSignInStateObserver(this); |
77 clearSignInPref(); | 96 clearSignInPref(); |
78 } | 97 } |
79 | 98 |
99 @Override | |
100 public boolean onPreferenceClick(Preference preference) { | |
101 Intent intent = new Intent( | |
102 Intent.ACTION_VIEW, | |
103 Uri.parse(PasswordUIView.getAccountDashboardURL())); | |
104 intent.setPackage(getActivity().getPackageName()); | |
105 getActivity().startActivity(intent); | |
106 return true; | |
107 } | |
108 | |
80 private void updatePreferences() { | 109 private void updatePreferences() { |
81 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); | 110 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); |
82 addPreferencesFromResource(R.xml.main_preferences); | 111 addPreferencesFromResource(R.xml.main_preferences); |
83 | 112 |
84 ChromeBasePreference autofillPref = | 113 ChromeBasePreference autofillPref = |
85 (ChromeBasePreference) findPreference(PREF_AUTOFILL_SETTINGS); | 114 (ChromeBasePreference) findPreference(PREF_AUTOFILL_SETTINGS); |
86 setOnOffSummary(autofillPref, PersonalDataManager.isAutofillEnabled()); | 115 setOnOffSummary(autofillPref, PersonalDataManager.isAutofillEnabled()); |
87 autofillPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); | 116 autofillPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
88 | 117 |
89 ChromeBasePreference passwordsPref = | 118 ChromeBasePreference passwordsPref = |
90 (ChromeBasePreference) findPreference(PREF_SAVED_PASSWORDS); | 119 (ChromeBasePreference) findPreference(PREF_SAVED_PASSWORDS); |
91 if (PasswordUIView.shouldUseSmartLockBranding()) { | 120 |
92 passwordsPref.setTitle(getResources().getString( | 121 ProfileSyncService syncService = ProfileSyncService.get(); |
93 R.string.prefs_smart_lock_for_passwords)); | 122 |
123 if (AndroidSyncSettings.isSyncEnabled(getActivity().getApplicationContex t()) | |
124 && syncService.isBackendInitialized() | |
125 && !syncService.isUsingSecondaryPassphrase() | |
126 && ChromeFeatureList.isEnabled(VIEW_PASSWORDS)) { | |
127 ForegroundColorSpan colorSpan = new ForegroundColorSpan( | |
128 ApiCompatibilityUtils.getColor(getResources(), R.color.pref_ accent_color)); | |
129 SpannableString title = SpanApplier.applySpans( | |
130 getString(R.string.manage_passwords_text), | |
131 new SpanApplier.SpanInfo("<link>", "</link>", colorSpan)); | |
132 passwordsPref.setKey(PREF_MANAGE_ACCOUNT_LINK); | |
133 passwordsPref.setTitle(title); | |
134 passwordsPref.setOnPreferenceClickListener(this); | |
135 passwordsPref.setManagedPreferenceDelegate(null); | |
136 } else { | |
137 if (PasswordUIView.shouldUseSmartLockBranding()) { | |
138 passwordsPref.setTitle(getResources().getString( | |
139 R.string.prefs_smart_lock_for_passwords)); | |
140 } else { | |
141 passwordsPref.setTitle(getResources().getString( | |
142 R.string.prefs_saved_passwords)); | |
143 } | |
144 passwordsPref.setFragment( | |
145 "org.chromium.chrome.browser.preferences" | |
146 + ".password.SavePasswordsPreferences"); | |
Bernhard Bauer
2016/07/01 16:55:28
Could you get this from the class?
dozsa
2016/07/05 10:19:54
Done.
| |
147 setOnOffSummary(passwordsPref, | |
148 PrefServiceBridge.getInstance().isRememberPasswordsEnabled() ); | |
149 passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegat e); | |
94 } | 150 } |
95 setOnOffSummary(passwordsPref, | |
96 PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); | |
97 passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); | |
98 | 151 |
99 Preference homepagePref = findPreference(PREF_HOMEPAGE); | 152 Preference homepagePref = findPreference(PREF_HOMEPAGE); |
100 if (HomepageManager.shouldShowHomepageSetting()) { | 153 if (HomepageManager.shouldShowHomepageSetting()) { |
101 setOnOffSummary(homepagePref, | 154 setOnOffSummary(homepagePref, |
102 HomepageManager.getInstance(getActivity()).getPrefHomepageEn abled()); | 155 HomepageManager.getInstance(getActivity()).getPrefHomepageEn abled()); |
103 } else { | 156 } else { |
104 getPreferenceScreen().removePreference(homepagePref); | 157 getPreferenceScreen().removePreference(homepagePref); |
105 } | 158 } |
106 | 159 |
107 ChromeBasePreference dataReduction = | 160 ChromeBasePreference dataReduction = |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
181 if (PREF_DATA_REDUCTION.equals(preference.getKey())) { | 234 if (PREF_DATA_REDUCTION.equals(preference.getKey())) { |
182 DataReductionProxySettings settings = DataReductionProxySett ings.getInstance(); | 235 DataReductionProxySettings settings = DataReductionProxySett ings.getInstance(); |
183 return settings.isDataReductionProxyManaged() | 236 return settings.isDataReductionProxyManaged() |
184 && !settings.isDataReductionProxyEnabled(); | 237 && !settings.isDataReductionProxyEnabled(); |
185 } | 238 } |
186 return super.isPreferenceClickDisabledByPolicy(preference); | 239 return super.isPreferenceClickDisabledByPolicy(preference); |
187 } | 240 } |
188 }; | 241 }; |
189 } | 242 } |
190 } | 243 } |
OLD | NEW |