import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.SearchView.OnQueryTextListener;
+import android.support.v7.widget.Toolbar;
import android.text.ClipboardManager;
import android.text.Spannable;
import android.text.method.LinkMovementMethod;
});
languageButton = new ImageButton(customSearchView.getContext());
- languageButton.setMinimumWidth(application.languageButtonPixels);
- languageButton.setMinimumHeight(application.languageButtonPixels * 2 / 3);
languageButton.setScaleType(ScaleType.FIT_CENTER);
languageButton.setOnClickListener(new OnClickListener() {
@Override
return true;
}
});
- customSearchView.addView(languageButton);
+ languageButton.setAdjustViewBounds(true);
+ LinearLayout.LayoutParams lpb = new LinearLayout.LayoutParams(application.languageButtonPixels, LinearLayout.LayoutParams.MATCH_PARENT);
+ customSearchView.addView(languageButton, lpb);
searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setIconifiedByDefault(false);
actionBar.setCustomView(customSearchView);
actionBar.setDisplayShowCustomEnabled(true);
+
+ // Avoid wasting space on large left inset
+ Toolbar tb = (Toolbar)customSearchView.getParent();
+ tb.setContentInsetsRelative(0, 0);
}
@Override
}
}
+ private void hideKeyboard() {
+ Log.d(LOG, "Hide soft keyboard.");
+ searchView.clearFocus();
+ InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ manager.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
+ }
+
void updateLangButton() {
final LanguageResources languageResources =
DictionaryApplication.isoCodeToResources.get(index.shortName);
getListView().requestFocus();
// Visual indication that a new keystroke will clear the search text.
- // Doesn't seem to work unless earchText has focus.
+ // Doesn't seem to work unless searchText has focus.
// searchView.selectAll();
}
searchView.setIconifiedByDefault(text.length() > 0);
searchView.setIconified(false);
+ // We don't want to show virtual keyboard when we're changing searchView text programatically:
+ hideKeyboard();
+
if (triggerSearch) {
onQueryTextListener.onQueryTextChange(text);
}