Home | History | Annotate | Download | only in shadows
      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