Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ItemTouchHelper.Callback callback = new ItemTouchHelper.Callback() {
- @Override
- public boolean isLongPressDragEnabled() {
- return false;
- }
- @Override
- public boolean isItemViewSwipeEnabled() {
- return true;
- }
- @Override
- public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
- // NearbyDevice device = (NearbyDevice) deviceAdapter.getContent(viewHolder.getAdapterPosition());
- return makeMovementFlags(ItemTouchHelper.ACTION_STATE_SWIPE, ItemTouchHelper.LEFT);
- //return makeFlag(ItemTouchHelper.ACTION_STATE_SWIPE, ItemTouchHelper.LEFT);
- //return device.deviceId.equals(uniqueId) ? 0 : makeMovementFlags(0, ItemTouchHelper.LEFT);
- }
- @Override
- public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
- return false;
- }
- @Override
- public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) {
- isItemSwiped.set(true);
- if (viewHolder instanceof NearbyDeviceViewHolder) {
- NearbyDeviceViewHolder holder = (NearbyDeviceViewHolder) viewHolder;
- holder.getBackgroundView().requestFocus();
- holder.getBackgroundView().bringToFront();
- holder.getContentView().setFocusable(false);
- }
- }
- @Override
- public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
- return .8f;
- }
- @Override
- public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
- isItemSwiped.set(true);
- if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
- NearbyDeviceViewHolder deviceViewHolder = (NearbyDeviceViewHolder) viewHolder;
- float translationX = Math.min(-dX, viewHolder.itemView.getWidth() / 3);
- deviceViewHolder.getContentView().setTranslationX(-translationX);
- float percentage = Math.max(1 - Math.abs(dX) / getScreenWidth() / 2, 0.5f);
- deviceViewHolder.getBackgroundView().setBackgroundColor(/*getResources().getColor(R.color.mt_blue)*/ Color.argb(255, Math.round(255 * percentage), 0, 0));
- } else {
- super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- }
- /**
- * Reset the list of devices
- * @param viewHolder - the ViewHolder that's being swiped
- */
- private void resetList(RecyclerView.ViewHolder viewHolder) {
- deviceAdapter.notifyDataSetChanged();
- if (viewHolder instanceof NearbyDeviceViewHolder) {
- NearbyDeviceViewHolder deviceViewHolder = (NearbyDeviceViewHolder) viewHolder;
- deviceViewHolder.getContentView().setTranslationX(0);
- }
- }
- @Override
- public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
- super.onSelectedChanged(viewHolder, actionState);
- final boolean swiping = actionState == ItemTouchHelper.ACTION_STATE_SWIPE;
- lvTools.setEnabled(!swiping);
- }
- };
- ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
- mItemTouchHelper.attachToRecyclerView(null);
- mItemTouchHelper.attachToRecyclerView(lvTools);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement