Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ItemTouchHelper.Callback callback = new ItemTouchHelper.Callback() {
- @Override
- public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
- Device device = (Device)adapter.getContent(viewHolder.getAdapterPosition());
- 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) {
- showConfirmationDialog(R.string.device_manager_delete_device_title, R.string.device_manager_delete_device_message, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- final int position = viewHolder.getAdapterPosition();
- final Device device = (Device)adapter.getContent(position);
- apiClient.deleteAssociatedDevice(DeviceManagerActivity.this, device.deviceId, new ResponseListener(){
- @Override
- public void onSuccess(){
- adapter.remove(position);
- sessionManager.getUser().removeDevice(device.deviceId);
- resetList(viewHolder);
- }
- @Override
- public void onError(Object response) {
- super.onError(response);
- String errorMsg = getString(R.string.device_manager_delete_device_error);
- showSimpleSnack(errorMsg);
- AnalyticsManager.getInstance(DeviceManagerActivity.this).trackError(errorMsg, Events.ERROR_TYPE_SERVER_SIDE, false);
- resetList(viewHolder);
- }
- });
- }
- }, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- resetList(viewHolder);
- }
- });
- }
- @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) {
- if(viewHolder instanceof DeviceAdapter.DeviceViewHolder)
- {
- DeviceAdapter.DeviceViewHolder deviceViewHolder = (DeviceAdapter.DeviceViewHolder)viewHolder;
- deviceViewHolder.getContentView().setTranslationX(dX);
- float percentage = Math.max(1 - Math.abs(dX)/getScreenWidth()/2, 0.5f);
- deviceViewHolder.getBackgroundView().setBackgroundColor(Color.argb(255, Math.round(255 * percentage), 0, 0));
- }
- }
- /**
- * Reset the list of devices
- * @param viewHolder - the ViewHolder that's being swiped
- */
- private void resetList(RecyclerView.ViewHolder viewHolder) {
- adapter.notifyDataSetChanged();
- if(viewHolder instanceof DeviceAdapter.DeviceViewHolder)
- {
- DeviceAdapter.DeviceViewHolder deviceViewHolder = (DeviceAdapter.DeviceViewHolder)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;
- refreshLayout.setEnabled(!swiping);
- }
- } ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement