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..4e818500012fee1e1e5f8f608e09fcc79644a4b3 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,24 +4,32 @@ |
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 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; |
import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
import org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences; |
+import org.chromium.chrome.browser.preferences.password.SavePasswordsPreferences; |
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; |
/** |
* 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"; |
@@ -34,6 +42,11 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
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"; |
+ public static final String PREF_MANAGE_ACCOUNT_LINK = "manage_account_link"; |
+ |
+ @VisibleForTesting |
+ public static final String VIEW_PASSWORDS = "view-passwords"; |
+ |
private SignInPreference mSignInPreference; |
private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
@@ -77,6 +90,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 +111,31 @@ 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)) { |
+ passwordsPref.setKey(PREF_MANAGE_ACCOUNT_LINK); |
+ passwordsPref.setTitle(R.string.redirect_to_passwords_text); |
+ passwordsPref.setSummary(R.string.redirect_to_passwords_link); |
+ 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(SavePasswordsPreferences.class.getCanonicalName()); |
+ setOnOffSummary(passwordsPref, |
+ PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
+ passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
} |
- setOnOffSummary(passwordsPref, |
- PrefServiceBridge.getInstance().isRememberPasswordsEnabled()); |
- passwordsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate); |
Preference homepagePref = findPreference(PREF_HOMEPAGE); |
if (HomepageManager.shouldShowHomepageSetting()) { |