/**
         * Starts dragging the item at given position. User must be touching this {@code DynamicListView}.
         *
         * @param position the position of the item in the adapter to start dragging. Be sure to subtract any header views.
         *
         * @throws java.lang.IllegalStateException if the user is not touching this {@code DynamicListView},
         *                                         or if there is no adapter set.
         */
        public void startDragging(int position)
        {
            if (mMobileItemId != INVALID_ID)
            {
                /* We are already dragging */
                return;
            }

            if (mLastMotionEventY < 0)
            {
                throw new Java.Lang.IllegalStateException("User must be touching the DynamicListView!");
            }

            if (mAdapter == null)
            {
                throw new Java.Lang.IllegalStateException("This DynamicListView has no adapter set!");
            }

            if (position < 0 || position >= mAdapter.Count)
            {
                /* Out of bounds */
                return;
            }


            mMobileView = mWrapper.getChildAt(position - mWrapper.getFirstVisiblePosition() + mWrapper.getHeaderViewsCount());
            if (mMobileView != null)
            {
                mOriginalMobileItemPosition = position;
                mMobileItemId          = mAdapter.GetItemId(position);
                mHoverDrawable         = new HoverDrawable(mMobileView, mLastMotionEventY);
                mMobileView.Visibility = ViewStates.Invisible;
            }
        }
 public SettleHoverDrawableAnimatorListener(HoverDrawable animatingHoverDrawable, View animatingMobileView, DragAndDropHandler instance)
 {
     mAnimatingHoverDrawable = animatingHoverDrawable;
     mAnimatingMobileView = animatingMobileView;
     minst = instance;
 }
        /**
         * Starts dragging the item at given position. User must be touching this {@code DynamicListView}.
         *
         * @param position the position of the item in the adapter to start dragging. Be sure to subtract any header views.
         *
         * @throws java.lang.IllegalStateException if the user is not touching this {@code DynamicListView},
         *                                         or if there is no adapter set.
         */
        public void startDragging(int position)
        {
            if (mMobileItemId != INVALID_ID)
            {
                /* We are already dragging */
                return;
            }

            if (mLastMotionEventY < 0)
            {
                throw new Java.Lang.IllegalStateException("User must be touching the DynamicListView!");
            }

            if (mAdapter == null)
            {
                throw new Java.Lang.IllegalStateException("This DynamicListView has no adapter set!");
            }

            if (position < 0 || position >= mAdapter.Count)
            {
                /* Out of bounds */
                return;
            }


            mMobileView = mWrapper.getChildAt(position - mWrapper.getFirstVisiblePosition() + mWrapper.getHeaderViewsCount());
            if (mMobileView != null)
            {
                mOriginalMobileItemPosition = position;
                mMobileItemId = mAdapter.GetItemId(position);
                mHoverDrawable = new HoverDrawable(mMobileView, mLastMotionEventY);
                mMobileView.Visibility = ViewStates.Invisible;
            }
        }
 public SettleHoverDrawableAnimatorListener(HoverDrawable animatingHoverDrawable, View animatingMobileView, DragAndDropHandler instance)
 {
     mAnimatingHoverDrawable = animatingHoverDrawable;
     mAnimatingMobileView    = animatingMobileView;
     minst = instance;
 }