package org.wordpress.android.ui; import android.content.Context; import android.util.AttributeSet; import android.widget.Spinner; import org.wordpress.android.ui.media.MediaGridFragment.Filter; import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; import java.lang.reflect.Field; public class CustomSpinner extends Spinner { OnItemSelectedListener listener; public CustomSpinner(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setSelection(int position) { //only ignore if the old selection is custom date since we may want to click on it again if (position == Filter.CUSTOM_DATE.ordinal()) ignoreOldSelectionByReflection(); super.setSelection(position); } public void setOnItemSelectedEvenIfUnchangedListener( OnItemSelectedListener listener) { this.listener = listener; } private void ignoreOldSelectionByReflection() { try { Class<?> c = this.getClass().getSuperclass().getSuperclass().getSuperclass(); Field reqField = c.getDeclaredField("mOldSelectedPosition"); reqField.setAccessible(true); reqField.setInt(this, -1); } catch (Exception e) { AppLog.e(T.MEDIA, e); } } }