Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java |
| index ff2012db779815eddf0704128642e861eeedefb9..73547abbbf45b62485cadd834181b1fdae02c849 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java |
| @@ -4,12 +4,19 @@ |
| package org.chromium.chrome.browser.preferences; |
| +import android.content.Intent; |
| +import android.net.Uri; |
| import android.os.Bundle; |
| import android.os.Handler; |
| import android.preference.Preference; |
| import android.preference.PreferenceFragment; |
| +import android.text.SpannableString; |
| +import android.text.style.ForegroundColorSpan; |
| +import org.chromium.base.ApiCompatibilityUtils; |
| +import org.chromium.base.VisibleForTesting; |
| import org.chromium.chrome.R; |
| +import org.chromium.chrome.browser.ChromeFeatureList; |
| import org.chromium.chrome.browser.PasswordUIView; |
| import org.chromium.chrome.browser.autofill.PersonalDataManager; |
| import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
| @@ -17,11 +24,15 @@ import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
| import org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences; |
| import org.chromium.chrome.browser.signin.SigninManager; |
| import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; |
| +import org.chromium.chrome.browser.sync.ProfileSyncService; |
| +import org.chromium.sync.AndroidSyncSettings; |
| +import org.chromium.ui.text.SpanApplier; |
| /** |
| * The main settings screen, shown when the user first opens Settings. |
| */ |
| -public class MainPreferences extends PreferenceFragment implements SignInStateObserver { |
| +public class MainPreferences extends PreferenceFragment implements SignInStateObserver, |
| + Preference.OnPreferenceClickListener { |
| public static final String PREF_SIGN_IN = "sign_in"; |
| public static final String PREF_SEARCH_ENGINE = "search_engine"; |
| @@ -30,15 +41,23 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| public static final String PREF_SAVED_PASSWORDS = "saved_passwords"; |
| public static final String PREF_HOMEPAGE = "homepage"; |
| public static final String PREF_DATA_REDUCTION = "data_reduction"; |
| - |
| public static final String ACCOUNT_PICKER_DIALOG_TAG = "account_picker_dialog_tag"; |
| public static final String EXTRA_SHOW_SEARCH_ENGINE_PICKER = "show_search_engine_picker"; |
| + private static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link"; |
| + |
| + @VisibleForTesting |
| + public static final String VIEW_PASSWORDS = "ViewPasswords"; |
| + |
| + 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.
|
| + |
| private SignInPreference mSignInPreference; |
| private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
| private boolean mShowSearchEnginePicker; |
| + private Preference mPasswordsPref; |
|
Bernhard Bauer
2016/07/01 16:55:28
This is also unused.
dozsa
2016/07/05 10:19:54
Done.
|
| + |
| public MainPreferences() { |
| setHasOptionsMenu(true); |
| mManagedPreferenceDelegate = createManagedPreferenceDelegate(); |
| @@ -77,6 +96,16 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| clearSignInPref(); |
| } |
| + @Override |
| + public boolean onPreferenceClick(Preference preference) { |
| + Intent intent = new Intent( |
| + Intent.ACTION_VIEW, |
| + Uri.parse(PasswordUIView.getAccountDashboardURL())); |
| + intent.setPackage(getActivity().getPackageName()); |
| + getActivity().startActivity(intent); |
| + return true; |
| + } |
| + |
| private void updatePreferences() { |
| if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); |
| addPreferencesFromResource(R.xml.main_preferences); |
| @@ -88,13 +117,37 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| ChromeBasePreference passwordsPref = |
| (ChromeBasePreference) findPreference(PREF_SAVED_PASSWORDS); |
| - if (PasswordUIView.shouldUseSmartLockBranding()) { |
| - passwordsPref.setTitle(getResources().getString( |
| - R.string.prefs_smart_lock_for_passwords)); |
| + |
| + ProfileSyncService syncService = ProfileSyncService.get(); |
| + |
| + if (AndroidSyncSettings.isSyncEnabled(getActivity().getApplicationContext()) |
| + && syncService.isBackendInitialized() |
| + && !syncService.isUsingSecondaryPassphrase() |
| + && ChromeFeatureList.isEnabled(VIEW_PASSWORDS)) { |
| + ForegroundColorSpan colorSpan = new ForegroundColorSpan( |
| + ApiCompatibilityUtils.getColor(getResources(), R.color.pref_accent_color)); |
| + SpannableString title = SpanApplier.applySpans( |
| + getString(R.string.manage_passwords_text), |
| + new SpanApplier.SpanInfo("<link>", "</link>", colorSpan)); |
| + passwordsPref.setKey(PREF_MANAGE_ACCOUNT_LINK); |
| + passwordsPref.setTitle(title); |
| + passwordsPref.setOnPreferenceClickListener(this); |
| + passwordsPref.setManagedPreferenceDelegate(null); |
| + } else { |
| + if (PasswordUIView.shouldUseSmartLockBranding()) { |
| + passwordsPref.setTitle(getResources().getString( |
| + R.string.prefs_smart_lock_for_passwords)); |
| + } else { |
| + passwordsPref.setTitle(getResources().getString( |
| + R.string.prefs_saved_passwords)); |
| + } |
| + passwordsPref.setFragment( |
| + "org.chromium.chrome.browser.preferences" |
| + + ".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.
|
| + setOnOffSummary(passwordsPref, |
| + PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
| + passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
| } |
| - setOnOffSummary(passwordsPref, |
| - PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
| - passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
| Preference homepagePref = findPreference(PREF_HOMEPAGE); |
| if (HomepageManager.shouldShowHomepageSetting()) { |