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 |