code: public Snackbar remove(final View view, final String text, final String actionText, @Snackbar.Duration int duration, final Set<Integer> positions) {
          if (mHistory != null) {
              // Set a flag, if remove was called before the Snackbar
              // executed the commit -> Snackbar does not commit the new
              // inserted history
              mAlreadyCommitted = true;
              notifyCommit();
          }
  
          History history = new History();
          history.action = ACTION_REMOVE;
          for (int position : positions) {
              history.items.add(mAdapter.getRelativeInfo(position));
          }
          Collections.sort(history.items, new Comparator<FastAdapter.RelativeInfo<Item>>() {
              @Override
              public int compare(FastAdapter.RelativeInfo<Item> lhs, FastAdapter.RelativeInfo<Item> rhs) {
                  return Integer.valueOf(lhs.position).compareTo(rhs.position);
              }
          });
  
          mHistory = history;
          doChange(); // Do not execute when Snackbar shows up, instead change immediately
  
          mSnackBar = Snackbar.make(view, text, duration).addCallback(mSnackbarCallback);
          mSnackBar.setAction(actionText, new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  undoChange();
              }
          });
  
          mSnackBar.show();
          return mSnackBar;
      }
docs: removes items from the ItemAdapter.
  note that the values of "view", "text", "actionText", and "duration"
  will be ignored if {@link #withSnackBar(Snackbar, String)} was used.
  if it was not used, a default snackbar will be generated
  
  @param view       the view which will host the SnackBar
  @param text       the text to show on the SnackBar
  @param actionText the text to show for the Undo Action
  @param positions  the positions where the items were removed
  @return the generated Snackbar