Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1155)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/preferences/SearchEnginePreference.java

Issue 2367373003: [Android] Allow setting recently visited search engines as default search engine (Closed)
Patch Set: Update based on Peter and Dan's comments. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698