package com.qubling.sidekick.ui.module; import android.content.Context; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageButton; import com.qubling.sidekick.R; public class ModuleSearchHelperEclair extends ModuleSearchHelper { private boolean searchRunning = false; public ModuleSearchHelperEclair(SearchableActivity activity) { super(activity); } @Override public void onCreate(Bundle state) { final EditText queryText = (EditText) getActivity().findViewById(R.id.text_search); final ImageButton searchButton = (ImageButton) getActivity().findViewById(R.id.button_search); if (searchButton != null) { searchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View searchButton) { // Hide the screen keyboard InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(searchButton.getWindowToken(), 0); getActivity().doNewSearch(queryText.getText().toString()); } }); queryText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // Support KEYCODE_NUMPAD_ENTER added in API 11 int KEYCODE_NUMPAD_ENTER = KeyEvent.KEYCODE_UNKNOWN; try { KEYCODE_NUMPAD_ENTER = KeyEvent.class.getField("KEYCODE_NUMPAD_ENTER").getInt(null); } catch (Throwable t) { // ignore } if (keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KEYCODE_NUMPAD_ENTER) { if (!searchRunning) searchButton.performClick(); return true; } return false; } }); } } @Override public Boolean onSearchRequested() { EditText queryText = (EditText) getActivity().findViewById(R.id.text_search); queryText.requestFocus(); return true; } }