Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/src/main/res/layout/content_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
app:ShowBorders="true"
app:BordersSize="1dp"
app:RevealEmptyText="Touch to select"
app:RevealEmptyTextSize="5sp"
app:BoarderColor="@color/colorPrimary"
app:SpinnerExpandHeight="250dp"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,19 +85,30 @@ public class SearchableSpinner extends RelativeLayout implements View.OnClickLis
private int mScreenWidthPixels;

/* Attributes */
private @ColorInt int mRevealViewBackgroundColor;
private @ColorInt int mStartEditTintColor;
private @ColorInt int mEditViewBackgroundColor;
private @ColorInt int mEditViewTextColor;
private @ColorInt int mDoneEditTintColor;
private @ColorInt int mBoarderColor;
private @ColorInt
int mRevealViewBackgroundColor;
private @ColorInt
int mStartEditTintColor;
private @ColorInt
int mEditViewBackgroundColor;
private @ColorInt
int mEditViewTextColor;
private @ColorInt
int mDoneEditTintColor;
private @ColorInt
int mBoarderColor;
private Drawable mListItemDivider;
private @Px int mBordersSize;
private @Px int mExpandSize;
private @Px int mListDividerSize;
private @Px
int mBordersSize;
private @Px
int mExpandSize;
private @Px
int mListDividerSize;
private boolean mShowBorders;
private boolean mKeepLastSearch;
private String mRevealEmptyText;
private @Px
int mRevealEmptyTextSize;
private String mSearchHintText;
private String mNoItemsFoundText;
private int mAnimDuration;
Expand Down Expand Up @@ -158,6 +169,7 @@ private void getAttributeSet(@Nullable AttributeSet attrs, @AttrRes int defStyle
mAnimDuration = attributes.getColor(R.styleable.SearchableSpinner_AnimDuration, DefaultAnimationDuration);
mKeepLastSearch = attributes.getBoolean(R.styleable.SearchableSpinner_KeepLastSearch, false);
mRevealEmptyText = attributes.getString(R.styleable.SearchableSpinner_RevealEmptyText);
mRevealEmptyTextSize = attributes.getDimensionPixelSize(R.styleable.SearchableSpinner_RevealEmptyTextSize, 10);
mSearchHintText = attributes.getString(R.styleable.SearchableSpinner_SearchHintText);
mNoItemsFoundText = attributes.getString(R.styleable.SearchableSpinner_NoItemsFoundText);
mListItemDivider = attributes.getDrawable(R.styleable.SearchableSpinner_ItemsDivider);
Expand Down Expand Up @@ -194,7 +206,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
mPopupWindow.setWidth(width);
if (mExpandSize <= 0) {
mPopupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
} else{
} else {
mPopupWindow.setHeight(heightMeasureSpec);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
Expand Down Expand Up @@ -245,6 +257,7 @@ public void onDismiss() {
if (mCurrSelectedView == null && !TextUtils.isEmpty(mRevealEmptyText)) {
TextView textView = new TextView(mContext);
textView.setText(mRevealEmptyText);
textView.setTextSize(mRevealEmptyTextSize);
mCurrSelectedView = new SelectedView(textView, -1, 0);
mRevealItem.addView(textView);
}
Expand Down Expand Up @@ -316,6 +329,7 @@ public void setSelectedItem(int position) {
} else {
TextView textView = new TextView(mContext);
textView.setText(mRevealEmptyText);
textView.setTextSize(mRevealEmptyTextSize);
mCurrSelectedView = new SelectedView(textView, -1, 0);
mRevealItem.addView(textView);
}
Expand Down Expand Up @@ -381,7 +395,7 @@ public void beforeTextChanged(CharSequence s, int start, int count, int after) {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Filterable filterable = (Filterable) mSpinnerListView.getAdapter();
Filterable filterable = (Filterable) mSpinnerListView.getAdapter();
if (filterable != null)
filterable.getFilter().filter(s);
}
Expand Down Expand Up @@ -482,7 +496,7 @@ private void revealEditView() {
mStatusListener.spinnerIsOpening();
final int cx = mRevealContainerCardView.getLeft();
final int cxr = mRevealContainerCardView.getRight();
final int cy = (mRevealContainerCardView.getTop() + mRevealContainerCardView.getHeight())/2;
final int cy = (mRevealContainerCardView.getTop() + mRevealContainerCardView.getHeight()) / 2;
final int reverse_startradius = Math.max(mRevealContainerCardView.getWidth(), mRevealContainerCardView.getHeight());
final int reverse_endradius = 0;

Expand Down Expand Up @@ -585,7 +599,7 @@ private void hideEditView() {
mStatusListener.spinnerIsClosing();
final int cx = mContainerCardView.getLeft();
final int cxr = mContainerCardView.getRight();
final int cy = (mContainerCardView.getTop() + mContainerCardView.getHeight())/2;
final int cy = (mContainerCardView.getTop() + mContainerCardView.getHeight()) / 2;
final int reverse_startradius = Math.max(mContainerCardView.getWidth(), mContainerCardView.getHeight());
final int reverse_endradius = 0;

Expand Down Expand Up @@ -676,7 +690,7 @@ public void onAnimationRepeat(Animator animation) {
public boolean isInsideSearchEditText(MotionEvent event) {
Rect editTextRect = new Rect();
mSearchEditText.getHitRect(editTextRect);
if (!editTextRect.contains((int)event.getX(), (int)event.getY())) {
if (!editTextRect.contains((int) event.getX(), (int) event.getY())) {
return false;
}
return true;
Expand All @@ -703,6 +717,7 @@ public Parcelable onSaveInstanceState() {
ss.mShowBorders = mShowBorders;
ss.mKeepLastSearch = mKeepLastSearch;
ss.mRevealEmptyText = mRevealEmptyText;
ss.mRevealEmptyTextSize = mRevealEmptyTextSize;
ss.mSearchHintText = mSearchHintText;
ss.mNoItemsFoundText = mNoItemsFoundText;
ss.mSelectedViewPosition = mCurrSelectedView != null ? mCurrSelectedView.getPosition() : -1;
Expand Down Expand Up @@ -740,17 +755,27 @@ public void onRestoreInstanceState(Parcelable state) {
static class SavedState extends BaseSavedState {
ViewState mViewState;
int mAnimDuration;
@Px int mBordersSize;
@Px int mExpandSize;
@ColorInt int mBoarderColor;
@ColorInt int mRevealViewBackgroundColor;
@ColorInt int mStartEditTintColor;
@ColorInt int mEditViewBackgroundColor;
@ColorInt int mEditViewTextColor;
@ColorInt int mDoneEditTintColor;
@Px
int mBordersSize;
@Px
int mExpandSize;
@ColorInt
int mBoarderColor;
@ColorInt
int mRevealViewBackgroundColor;
@ColorInt
int mStartEditTintColor;
@ColorInt
int mEditViewBackgroundColor;
@ColorInt
int mEditViewTextColor;
@ColorInt
int mDoneEditTintColor;
boolean mShowBorders;
boolean mKeepLastSearch;
String mRevealEmptyText;
@Px
int mRevealEmptyTextSize;
String mSearchHintText;
String mNoItemsFoundText;
int mSelectedViewPosition;
Expand All @@ -774,6 +799,7 @@ private SavedState(Parcel in) {
mShowBorders = in.readInt() > 0 ? true : false;
mKeepLastSearch = in.readInt() > 0 ? true : false;
mRevealEmptyText = in.readString();
mRevealEmptyTextSize = in.readInt();
mSearchHintText = in.readString();
mNoItemsFoundText = in.readString();
mSelectedViewPosition = in.readInt();
Expand All @@ -795,6 +821,7 @@ public void writeToParcel(Parcel out, int flags) {
out.writeInt(mShowBorders ? 1 : 0);
out.writeInt(mKeepLastSearch ? 1 : 0);
out.writeString(mRevealEmptyText);
out.writeInt(mRevealEmptyTextSize);
out.writeString(mSearchHintText);
out.writeString(mNoItemsFoundText);
out.writeInt(mSelectedViewPosition);
Expand All @@ -804,6 +831,7 @@ public void writeToParcel(Parcel out, int flags) {
public SavedState createFromParcel(Parcel in) {
return new SavedState(in);
}

public SavedState[] newArray(int size) {
return new SavedState[size];
}
Expand Down
1 change: 1 addition & 0 deletions searchablespinner/src/main/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<attr name="SpinnerExpandHeight" format="dimension"/>
<attr name="KeepLastSearch" format="boolean"/>
<attr name="RevealEmptyText" format="string"/>
<attr name="RevealEmptyTextSize" format="dimension"/>
<attr name="SearchHintText" format="string"/>
<attr name="NoItemsFoundText" format="string"/>
<attr name="ItemsDivider" format="reference"/>
Expand Down