Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.87 KB | None | 0 0
  1. ItemTouchHelper.Callback callback = new ItemTouchHelper.Callback() {
  2.  
  3.             @Override
  4.             public boolean isLongPressDragEnabled() {
  5.                 return false;
  6.             }
  7.  
  8.             @Override
  9.             public boolean isItemViewSwipeEnabled() {
  10.                 return true;
  11.             }
  12.  
  13.             @Override
  14.             public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
  15.                 // NearbyDevice device = (NearbyDevice) deviceAdapter.getContent(viewHolder.getAdapterPosition());
  16.  
  17.                 return makeMovementFlags(ItemTouchHelper.ACTION_STATE_SWIPE, ItemTouchHelper.LEFT);
  18.                 //return makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE, ItemTouchHelper.LEFT);
  19.  
  20.                 //return device.deviceId.equals(uniqueId) ? 0 :  makeMovementFlags(0, ItemTouchHelper.LEFT);
  21.             }
  22.  
  23.             @Override
  24.             public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
  25.                 return false;
  26.             }
  27.  
  28.             @Override
  29.             public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) {
  30.  
  31.                 isItemSwiped.set(true);
  32.  
  33.                 if (viewHolder instanceof NearbyDeviceViewHolder) {
  34.                     NearbyDeviceViewHolder holder = (NearbyDeviceViewHolder) viewHolder;
  35.                     holder.getBackgroundView().requestFocus();
  36.                     holder.getBackgroundView().bringToFront();
  37.                     holder.getContentView().setFocusable(false);
  38.  
  39.                 }
  40.                
  41.             }
  42.  
  43.             @Override
  44.             public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
  45.                 return .8f;
  46.             }
  47.  
  48.             @Override
  49.             public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
  50.  
  51.                 isItemSwiped.set(true);
  52.  
  53.                 if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
  54.                     NearbyDeviceViewHolder deviceViewHolder = (NearbyDeviceViewHolder) viewHolder;
  55.                     float translationX = Math.min(-dX, viewHolder.itemView.getWidth() / 3);
  56.                     deviceViewHolder.getContentView().setTranslationX(-translationX);
  57.                     float percentage = Math.max(1 - Math.abs(dX) / getScreenWidth() / 2, 0.5f);
  58.                     deviceViewHolder.getBackgroundView().setBackgroundColor(/*getResources().getColor(R.color.mt_blue)*/ Color.argb(255, Math.round(255 * percentage), 0, 0));
  59.  
  60.                 } else {
  61.                     super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
  62.                 }
  63.             }
  64.  
  65.             /**
  66.              * Reset the list of devices
  67.              * @param viewHolder - the ViewHolder that's being swiped
  68.              */
  69.             private void resetList(RecyclerView.ViewHolder viewHolder) {
  70.                 deviceAdapter.notifyDataSetChanged();
  71.                 if (viewHolder instanceof NearbyDeviceViewHolder) {
  72.                     NearbyDeviceViewHolder deviceViewHolder = (NearbyDeviceViewHolder) viewHolder;
  73.                     deviceViewHolder.getContentView().setTranslationX(0);
  74.                 }
  75.             }
  76.  
  77.             @Override
  78.             public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
  79.                 super.onSelectedChanged(viewHolder, actionState);
  80.                 final boolean swiping = actionState == ItemTouchHelper.ACTION_STATE_SWIPE;
  81.                 lvTools.setEnabled(!swiping);
  82.             }
  83.         };
  84.  
  85.         ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
  86.         mItemTouchHelper.attachToRecyclerView(null);
  87.         mItemTouchHelper.attachToRecyclerView(lvTools);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement