1 package org.robolectric.shadows; 2 3 import static org.robolectric.shadow.api.Shadow.directlyOn; 4 5 import android.widget.AbsSpinner; 6 import android.widget.SpinnerAdapter; 7 import org.robolectric.annotation.Implementation; 8 import org.robolectric.annotation.Implements; 9 import org.robolectric.annotation.RealObject; 10 import org.robolectric.util.ReflectionHelpers.ClassParameter; 11 12 @SuppressWarnings({"UnusedDeclaration"}) 13 @Implements(AbsSpinner.class) 14 public class ShadowAbsSpinner extends ShadowAdapterView { 15 @RealObject AbsSpinner realAbsSpinner; 16 private boolean animatedTransition; 17 18 @Implementation 19 public void setSelection(int position, boolean animate) { 20 directlyOn(realAbsSpinner, AbsSpinner.class, "setSelection", ClassParameter.from(int.class, position), ClassParameter.from(boolean.class, animate)); 21 animatedTransition = animate; 22 } 23 24 @Implementation 25 public void setSelection(int position) { 26 directlyOn(realAbsSpinner, AbsSpinner.class, "setSelection", ClassParameter.from(int.class, position)); 27 SpinnerAdapter adapter = realAbsSpinner.getAdapter(); 28 if (getItemSelectedListener() != null && adapter != null) { 29 getItemSelectedListener().onItemSelected(realAbsSpinner, null, position, adapter.getItemId(position)); 30 } 31 } 32 33 // Non-implementation helper method 34 public boolean isAnimatedTransition() { 35 return animatedTransition; 36 } 37 } 38