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 3402573018eee91336fb7106ffa916ce3d861cb5..318d2675f9cf9ab65725af90d7ec38b28ed40213 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 |
| @@ -24,6 +24,8 @@ 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.profiles.Profile; |
| +import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
| +import org.chromium.chrome.browser.search_engines.TemplateUrlService.LoadListener; |
| import org.chromium.chrome.browser.signin.SigninManager; |
| import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; |
| import org.chromium.chrome.browser.sync.ProfileSyncService; |
| @@ -32,13 +34,12 @@ import org.chromium.components.sync.AndroidSyncSettings; |
| /** |
| * The main settings screen, shown when the user first opens Settings. |
| */ |
| -public class MainPreferences extends PreferenceFragment implements SignInStateObserver, |
| - Preference.OnPreferenceClickListener { |
| - |
| +public class MainPreferences extends PreferenceFragment |
| + implements SignInStateObserver, Preference.OnPreferenceClickListener, LoadListener { |
| public static final String PREF_SIGN_IN = "sign_in"; |
| - public static final String PREF_SEARCH_ENGINE = "search_engine"; |
| public static final String PREF_DOCUMENT_MODE = "document_mode"; |
| public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings"; |
| + public static final String PREF_SEARCH_ENGINE = "search_engine"; |
| 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"; |
| @@ -54,7 +55,6 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| private SignInPreference mSignInPreference; |
| private ManagedPreferenceDelegate mManagedPreferenceDelegate; |
| - private boolean mShowSearchEnginePicker; |
| private boolean mIsDemoUser; |
| public MainPreferences() { |
| @@ -66,11 +66,6 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| public void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| - if (savedInstanceState == null && getArguments() != null |
| - && getArguments().getBoolean(EXTRA_SHOW_SEARCH_ENGINE_PICKER, false)) { |
| - mShowSearchEnginePicker = true; |
| - } |
| - |
| mIsDemoUser = ApiCompatibilityUtils.isDemoUser(getActivity()); |
| } |
| @@ -86,10 +81,6 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| setupSignInPref(); |
| } |
| - if (mShowSearchEnginePicker) { |
| - mShowSearchEnginePicker = false; |
| - ((SearchEnginePreference) findPreference(PREF_SEARCH_ENGINE)).showDialog(); |
| - } |
| } |
| @Override |
| @@ -117,6 +108,16 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| addBlimpPreferences(); |
| + if (TemplateUrlService.getInstance().isLoaded()) { |
|
Ian Wen
2016/09/23 23:00:19
This code should live in SearchEnginePreferences,
ltian
2016/09/24 01:16:47
SearchEnginePreferences now extends PreferenceFrag
|
| + updateSummary(); |
| + } else { |
| + TemplateUrlService.getInstance().registerLoadListener(this); |
| + TemplateUrlService.getInstance().load(); |
| + ChromeBasePreference searchEnginePref = |
| + (ChromeBasePreference) findPreference(PREF_SEARCH_ENGINE); |
| + searchEnginePref.setEnabled(false); |
| + } |
| + |
| ChromeBasePreference autofillPref = |
| (ChromeBasePreference) findPreference(PREF_AUTOFILL_SETTINGS); |
| setOnOffSummary(autofillPref, PersonalDataManager.isAutofillEnabled()); |
| @@ -173,6 +174,21 @@ public class MainPreferences extends PreferenceFragment implements SignInStateOb |
| } |
| } |
| + @Override |
| + public void onTemplateUrlServiceLoaded() { |
| + TemplateUrlService.getInstance().unregisterLoadListener(this); |
| + updateSummary(); |
| + } |
| + |
| + private void updateSummary() { |
| + ChromeBasePreference searchEnginePref = |
| + (ChromeBasePreference) findPreference(PREF_SEARCH_ENGINE); |
| + searchEnginePref.setEnabled(true); |
| + searchEnginePref.setSummary(TemplateUrlService.getInstance() |
| + .getDefaultSearchEngineTemplateUrl() |
| + .getShortName()); |
| + } |
| + |
| private void setOnOffSummary(Preference pref, boolean isOn) { |
| pref.setSummary(getResources().getString(isOn ? R.string.text_on : R.string.text_off)); |
| } |