//@NonNull
        //@Override
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            SwipeUndoView view = (SwipeUndoView)convertView;

            if (view == null)
            {
                view = new SwipeUndoView(mContext);
            }
            View primaryView = base.GetView(position, view.getPrimaryView(), view);

            view.setPrimaryView(primaryView);

            View undoView = mUndoAdapter.getUndoView(position, view.getUndoView(), view);

            view.setUndoView(undoView);

            mUndoAdapter.getUndoClickView(undoView).SetOnClickListener(new UndoClickListener(view, position, this));

            bool isInUndoState = mUndoPositions.Contains(position);

            primaryView.Visibility = isInUndoState ? ViewStates.Gone : ViewStates.Visible;
            undoView.Visibility    = isInUndoState ? ViewStates.Visible : ViewStates.Gone;

            return(view);
        }
 public UndoClickListener(SwipeUndoView view, int position, SimpleSwipeUndoAdapter instance)
 {
     mView     = view;
     mPosition = position;
     minst     = instance;
 }