blob: 8a7f2a132fc4e07e53d785fd92d148a6c8204ca1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
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);
}
}
}
|