aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java
diff options
context:
space:
mode:
authorChris Warrington <cmw@google.com>2016-10-18 12:29:21 +0100
committerChris Warrington <cmw@google.com>2016-10-18 12:34:18 +0100
commite3780081075c01aa1dff6d1f373cb43192b33e68 (patch)
treefb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java
parent7e05eb7e57827eddc885570bc00aed8a50320dbf (diff)
parent025b8b226c8d8edba2b309ca878572f40512eca7 (diff)
downloadgradle-perf-android-medium-e3780081075c01aa1dff6d1f373cb43192b33e68.tar.gz
Change-Id: I63f5e16d09297c48432192761b840310935eb903
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java b/WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java
new file mode 100644
index 000000000..8a7f2a132
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/ui/CustomSpinner.java
@@ -0,0 +1,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);
+ }
+ }
+}