package de.jeisfeld.augendiagnoselib.components; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.widget.AutoCompleteTextView; /** * Variant of AutoCompleteTextView that shows the suggestions immediately without waiting for minimum input. */ public class InstantAutoCompleteTextView extends AutoCompleteTextView { /** * Standard constructor to be implemented for all views. * * @param context The Context the view is running in, through which it can access the current theme, resources, etc. * @see android.view.View#View(Context) */ public InstantAutoCompleteTextView(final Context context) { super(context); } /** * Standard constructor to be implemented for all views. * * @param context The Context the view is running in, through which it can access the current theme, resources, etc. * @param attrs The attributes of the XML tag that is inflating the view. * @see android.view.View#View(Context, AttributeSet) */ public InstantAutoCompleteTextView(final Context context, final AttributeSet attrs) { super(context, attrs); } /** * Standard constructor to be implemented for all views. * * @param context The Context the view is running in, through which it can access the current theme, resources, etc. * @param attrs The attributes of the XML tag that is inflating the view. * @param defStyle An attribute in the current theme that contains a reference to a style resource that supplies default * values for the view. Can be 0 to not look for defaults. * @see android.view.View#View(Context, AttributeSet, int) */ public InstantAutoCompleteTextView(final Context context, final AttributeSet attrs, final int defStyle) { super(context, attrs, defStyle); } @Override public final boolean enoughToFilter() { return true; } @Override protected final void onFocusChanged(final boolean focused, final int direction, final Rect previouslyFocusedRect) { super.onFocusChanged(focused, direction, previouslyFocusedRect); if (focused) { performFiltering(getText(), 0); } } }