Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.28 KB | None | 0 0
  1. ItemTouchHelper.Callback callback = new ItemTouchHelper.Callback() {
  2.             @Override
  3.             public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
  4.                 Device device = (Device)adapter.getContent(viewHolder.getAdapterPosition());
  5.                 return device.deviceId.equals(uniqueId) ? 0 :  makeMovementFlags(0, ItemTouchHelper.LEFT);
  6.             }
  7.  
  8.             @Override
  9.             public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
  10.                 return false;
  11.             }
  12.  
  13.             @Override
  14.             public void onSwiped(final RecyclerView.ViewHolder viewHolder, int direction) {
  15.                 showConfirmationDialog(R.string.device_manager_delete_device_title, R.string.device_manager_delete_device_message, new DialogInterface.OnClickListener() {
  16.                     @Override
  17.                     public void onClick(DialogInterface dialog, int which) {
  18.                         final int position = viewHolder.getAdapterPosition();
  19.                         final Device device = (Device)adapter.getContent(position);
  20.                         apiClient.deleteAssociatedDevice(DeviceManagerActivity.this, device.deviceId, new ResponseListener(){
  21.                             @Override
  22.                             public void onSuccess(){
  23.                                 adapter.remove(position);
  24.                                 sessionManager.getUser().removeDevice(device.deviceId);
  25.                                 resetList(viewHolder);
  26.                             }
  27.                             @Override
  28.                             public void onError(Object response) {
  29.                                 super.onError(response);
  30.                                 String errorMsg = getString(R.string.device_manager_delete_device_error);
  31.                                 showSimpleSnack(errorMsg);
  32.                                 AnalyticsManager.getInstance(DeviceManagerActivity.this).trackError(errorMsg, Events.ERROR_TYPE_SERVER_SIDE, false);
  33.                                 resetList(viewHolder);
  34.                             }
  35.                         });
  36.                     }
  37.                 }, new DialogInterface.OnClickListener() {
  38.                     @Override
  39.                     public void onClick(DialogInterface dialog, int which) {
  40.                         resetList(viewHolder);
  41.                     }
  42.                 });
  43.             }
  44.  
  45.             @Override
  46.             public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
  47.                 return .8f;
  48.             }
  49.  
  50.             @Override
  51.             public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
  52.                 if(viewHolder instanceof DeviceAdapter.DeviceViewHolder)
  53.                 {
  54.                     DeviceAdapter.DeviceViewHolder deviceViewHolder = (DeviceAdapter.DeviceViewHolder)viewHolder;
  55.                     deviceViewHolder.getContentView().setTranslationX(dX);
  56.                     float percentage = Math.max(1 - Math.abs(dX)/getScreenWidth()/2, 0.5f);
  57.                     deviceViewHolder.getBackgroundView().setBackgroundColor(Color.argb(255, Math.round(255 * percentage), 0, 0));
  58.                 }
  59.             }
  60.  
  61.             /**
  62.              * Reset the list of devices
  63.              * @param viewHolder - the ViewHolder that's being swiped
  64.              */
  65.             private void resetList(RecyclerView.ViewHolder viewHolder) {
  66.                 adapter.notifyDataSetChanged();
  67.                 if(viewHolder instanceof DeviceAdapter.DeviceViewHolder)
  68.                 {
  69.                     DeviceAdapter.DeviceViewHolder deviceViewHolder = (DeviceAdapter.DeviceViewHolder)viewHolder;
  70.                     deviceViewHolder.getContentView().setTranslationX(0);
  71.                 }
  72.             }
  73.  
  74.             @Override
  75.             public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
  76.                 super.onSelectedChanged(viewHolder, actionState);
  77.                 final boolean swiping = actionState == ItemTouchHelper.ACTION_STATE_SWIPE;
  78.                 refreshLayout.setEnabled(!swiping);
  79.             }
  80.         } ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement