public override int GetMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder)
 {
     //Instances
     if (ObjectUtility.CheckInherit(recyclerView.GetLayoutManager().GetType(), typeof(GridLayoutManager)))
     {
         // for recyclerView with gridLayoutManager, support drag all directions, not support swipe
         int dragFlags  = ItemTouchHelper.Up | ItemTouchHelper.Down | ItemTouchHelper.Left | ItemTouchHelper.Right;
         int swipeFlags = 0;
         return(MakeMovementFlags(dragFlags, swipeFlags));
     }
     else
     {
         // for recyclerView with linearLayoutManager, support drag up and down, and swipe lift and right
         int dragFlags  = ItemTouchHelper.Up | ItemTouchHelper.Down;
         int swipeFlags = ItemTouchHelper.Start | ItemTouchHelper.End;
         return(MakeMovementFlags(dragFlags, swipeFlags));
     }
 }