| Index: chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java
|
| index 871e9a77afc3124561e5116783696e825c8bf523..8200b851289d31dac99eb75d16aced53220f5196 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java
|
| @@ -6,31 +6,19 @@ package org.chromium.chrome.browser.preferences;
|
|
|
| import android.os.Bundle;
|
| import android.preference.PreferenceFragment;
|
| -import android.view.LayoutInflater;
|
| -import android.view.View;
|
| -import android.view.View.OnLayoutChangeListener;
|
| -import android.view.ViewGroup;
|
| +import android.widget.LinearLayout.LayoutParams;
|
| import android.widget.ListView;
|
|
|
| import org.chromium.base.VisibleForTesting;
|
| -import org.chromium.base.metrics.RecordUserAction;
|
| import org.chromium.chrome.R;
|
| -import org.chromium.chrome.browser.locale.LocaleManager;
|
| -import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
|
|
| /**
|
| * A preference fragment for selecting a default search engine.
|
| */
|
| -public class SearchEnginePreference extends PreferenceFragment
|
| - implements View.OnClickListener, SearchEngineAdapter.SelectSearchEngineCallback,
|
| - OnLayoutChangeListener {
|
| +public class SearchEnginePreference extends PreferenceFragment {
|
| private ListView mListView;
|
| - private View mCancelButton;
|
| - private View mSaveButton;
|
| - private View mDivider;
|
|
|
| private SearchEngineAdapter mSearchEngineAdapter;
|
| - private int mSelectedIndex;
|
|
|
| @VisibleForTesting
|
| String getValueForTesting() {
|
| @@ -38,78 +26,34 @@ public class SearchEnginePreference extends PreferenceFragment
|
| }
|
|
|
| @VisibleForTesting
|
| - void setValueForTesting(String value) {
|
| - mSearchEngineAdapter.setValueForTesting(value);
|
| - TemplateUrlService.getInstance().setSearchEngine(mSelectedIndex);
|
| + String setValueForTesting(String value) {
|
| + return mSearchEngineAdapter.setValueForTesting(value);
|
| + }
|
| +
|
| + @VisibleForTesting
|
| + String getKeywordFromIndexForTesting(int index) {
|
| + return mSearchEngineAdapter.getKeywordForTesting(index);
|
| }
|
|
|
| @Override
|
| public void onCreate(Bundle savedInstanceState) {
|
| super.onCreate(savedInstanceState);
|
| getActivity().setTitle(R.string.prefs_search_engine);
|
| - mSearchEngineAdapter = new SearchEngineAdapter(getActivity(), this);
|
| - }
|
| -
|
| - @Override
|
| - public View onCreateView(
|
| - LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
| - View view = inflater.inflate(R.layout.search_engine_layout, container, false);
|
| - mListView = (ListView) view.findViewById(android.R.id.list);
|
| - mListView.setAdapter(mSearchEngineAdapter);
|
| - mListView.setDivider(null);
|
| - mListView.addOnLayoutChangeListener(this);
|
| - mCancelButton = view.findViewById(R.id.cancel_button);
|
| - mCancelButton.setOnClickListener(this);
|
| - mSaveButton = view.findViewById(R.id.save_button);
|
| - mSaveButton.setOnClickListener(this);
|
| - mDivider = view.findViewById(R.id.bottom_shadow);
|
| - return view;
|
| + mSearchEngineAdapter = new SearchEngineAdapter(getActivity());
|
| }
|
|
|
| @Override
|
| public void onActivityCreated(Bundle savedInstanceState) {
|
| super.onActivityCreated(savedInstanceState);
|
| - }
|
| -
|
| - @Override
|
| - public void onClick(View v) {
|
| - if (v == mCancelButton) {
|
| - getActivity().finish();
|
| - } else if (v == mSaveButton) {
|
| - TemplateUrlService.getInstance().setSearchEngine(mSelectedIndex);
|
| - // If the user has manually set the default search engine, disable auto switching.
|
| - boolean manualSwitch = mSelectedIndex != mSearchEngineAdapter
|
| - .getInitialSearchEnginePosition();
|
| - if (manualSwitch) {
|
| - RecordUserAction.record("SearchEngine_ManualChange");
|
| - LocaleManager.getInstance().setSearchEngineAutoSwitch(false);
|
| - }
|
| - getActivity().finish();
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void currentSearchEngineDetermined(int selectedIndex) {
|
| - mSelectedIndex = selectedIndex;
|
| - }
|
| -
|
| - /**
|
| - * Displays the divider if the Listview is longer than its viewport.
|
| - */
|
| - public void updateBottombarDivider() {
|
| - if (mListView.getLastVisiblePosition() == mSearchEngineAdapter.getCount() - 1) {
|
| - mDivider.setVisibility(View.INVISIBLE);
|
| - } else {
|
| - mDivider.setVisibility(View.VISIBLE);
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
|
| - int oldTop, int oldRight, int oldBottom) {
|
| - if (v == mListView) {
|
| - updateBottombarDivider();
|
| - }
|
| + mListView = (ListView) getView().findViewById(android.R.id.list);
|
| + int marginTop = getActivity().getResources().getDimensionPixelSize(
|
| + R.dimen.search_engine_list_margin_top);
|
| + LayoutParams layoutParams =
|
| + new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
|
| + layoutParams.setMargins(0, marginTop, 0, 0);
|
| + mListView.setLayoutParams(layoutParams);
|
| + mListView.setAdapter(mSearchEngineAdapter);
|
| + mListView.setDivider(null);
|
| }
|
|
|
| @Override
|
|
|