Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPreferences.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPreferences.java |
index 1eb5516b31a9a1793e5d7b2ea7e8bdeea4a945ba..b84dbdb1837b0d9b91f81061e5453747127dbd65 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPreferences.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/autofill/AutofillPreferences.java |
@@ -37,6 +37,8 @@ public class AutofillPreferences extends PreferenceFragment |
private static final String PREF_AUTOFILL_CREDIT_CARDS = "autofill_credit_cards"; |
private static final String PREF_AUTOFILL_WALLET = "autofill_wallet"; |
+ ChromeBasePreference mWalletPref; |
+ |
@Override |
public void onCreate(Bundle savedInstanceState) { |
super.onCreate(savedInstanceState); |
@@ -57,23 +59,13 @@ public class AutofillPreferences extends PreferenceFragment |
} |
}); |
- ChromeBasePreference walletPref = |
- (ChromeBasePreference) findPreference(PREF_AUTOFILL_WALLET); |
- if (!PersonalDataManager.isWalletImportFeatureAvailable()) { |
- getPreferenceScreen().removePreference(walletPref); |
- autofillSwitch.setDrawDivider(true); |
- } else { |
- walletPref.setSummary(getResources().getString( |
- PersonalDataManager.isWalletImportEnabled() ? R.string.text_on |
- : R.string.text_off)); |
- } |
- |
+ mWalletPref = (ChromeBasePreference) findPreference(PREF_AUTOFILL_WALLET); |
setPreferenceCategoryIcons(); |
} |
@Override |
public boolean onPreferenceChange(Preference preference, Object newValue) { |
- rebuildLists(); |
+ refreshState(); |
return true; |
} |
@@ -92,9 +84,10 @@ public class AutofillPreferences extends PreferenceFragment |
} |
/** |
- * Rebuild all the profile and credit card lists. |
+ * Refresh state (profile and credit card lists, preference summaries, etc.). |
*/ |
- private void rebuildLists() { |
+ private void refreshState() { |
+ updateSummaries(); |
rebuildProfileList(); |
rebuildCreditCardList(); |
} |
@@ -140,6 +133,24 @@ public class AutofillPreferences extends PreferenceFragment |
} |
} |
+ private void updateSummaries() { |
+ ChromeSwitchPreference autofillSwitch = |
+ (ChromeSwitchPreference) findPreference(PREF_AUTOFILL_SWITCH); |
+ if (!PersonalDataManager.isWalletImportFeatureAvailable()) { |
+ getPreferenceScreen().removePreference(mWalletPref); |
+ autofillSwitch.setDrawDivider(true); |
+ } else { |
+ if (getPreferenceScreen().findPreference(PREF_AUTOFILL_WALLET) == null) { |
+ getPreferenceScreen().addPreference(mWalletPref); |
+ } |
+ |
+ mWalletPref.setSummary(getResources().getString( |
+ PersonalDataManager.isWalletImportEnabled() ? R.string.text_on |
+ : R.string.text_off)); |
+ autofillSwitch.setDrawDivider(false); |
+ } |
+ } |
+ |
@Override |
public void onResume() { |
super.onResume(); |
@@ -147,12 +158,12 @@ public class AutofillPreferences extends PreferenceFragment |
// detect if profiles are added or deleted (GUID list |
// changes), the profile summary (name+addr) might be |
// different. To be safe, we update all. |
- rebuildLists(); |
+ refreshState(); |
} |
@Override |
public void onPersonalDataChanged() { |
- rebuildLists(); |
+ refreshState(); |
} |
@Override |