+
+ searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
+ @Override
+ public boolean onSuggestionSelect(int position) {
+ return false;
+ }
+
+ @Override
+ public boolean onSuggestionClick(int position) {
+ String h = searchHistory.get(position);
+ addToSearchHistory(h);
+ setSearchText(h, true);
+ return true;
+ }
+ });
+ searchView.setSuggestionsAdapter(new CursorAdapter(this, text.isEmpty() ? searchHistoryCursor : null, 0) {
+ @Override
+ public View newView(Context context, Cursor c, ViewGroup p) {
+ TextView v = new TextView(context);
+ v.setTextColor(textColorFg);
+ v.setTypeface(typeface);
+ v.setTextSize(TypedValue.COMPLEX_UNIT_SP, 4 * fontSizeSp / 3);
+ return v;
+ }
+ @Override
+ public void bindView(View v, Context context, Cursor c) {
+ TextView t = (TextView)v;
+ t.setText(c.getString(1));
+ }
+ });
+
+ // Set up search history
+ ArrayList<String> savedHistory = null;
+ if (savedInstanceState != null) savedHistory = savedInstanceState.getStringArrayList(C.SEARCH_HISTORY);
+ if (savedHistory != null && !savedHistory.isEmpty()) {
+ } else {
+ savedHistory = new ArrayList<>();
+ for (int i = 0; i < searchHistoryLimit; i++) {
+ String h = prefs.getString("history" + i, null);
+ if (h == null) break;
+ savedHistory.add(h);
+ }
+ }
+ for (int i = savedHistory.size() - 1; i >= 0; i--) {
+ addToSearchHistory(savedHistory.get(i));
+ }
+ addToSearchHistory(text);
+