public void removeTaskDialog(final int location) {
    AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());

    dialogBuilder.setMessage(R.string.dialog_removing_message);

    Item item = adapter.getItem(location);
    if (item.isTask()) {
      ModelTask removingTask = (ModelTask) item;

      final long timeStamp = removingTask.getTimeStamp();
      final boolean[] isRemoved = {false};

      dialogBuilder.setPositiveButton(
          R.string.dialog_ok,
          new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
              adapter.removeItem(location);
              isRemoved[0] = true;

              Snackbar snackbar =
                  Snackbar.make(
                      getActivity().findViewById(R.id.coordinator),
                      R.string.removed,
                      Snackbar.LENGTH_LONG);
              snackbar.setAction(
                  R.string.dialog_cancel,
                  new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                      addTask(activity.dbHelper.query().getTask(timeStamp), false);
                      isRemoved[0] = false;
                    }
                  });

              snackbar
                  .getView()
                  .addOnAttachStateChangeListener(
                      new View.OnAttachStateChangeListener() {
                        @Override
                        public void onViewAttachedToWindow(View v) {}

                        @Override
                        public void onViewDetachedFromWindow(View v) {
                          if (isRemoved[0]) {
                            alarmHelper.removeAlarm(timeStamp);
                            activity.dbHelper.removeTask(timeStamp);
                          }
                        }
                      });

              snackbar.show();

              dialog.dismiss();
            }
          });

      dialogBuilder.setNegativeButton(
          R.string.dialog_cancel,
          new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
              dialog.cancel();
            }
          });
    }
    dialogBuilder.show();
  }
 public void updateTask(ModelTask task) {
   adapter.updateItem(task);
 }