/**
   * Will delete all pending dismisses. Will call callback onDismiss for all pending dismisses. Will
   * reset all cell height to originalHeight.
   *
   * @param originalHeight is the height of the cell before animation.
   */
  private void removePendingDismisses(int originalHeight) {
    // No active animations, process all pending dismisses.
    // Sort by descending position
    Collections.sort(pendingDismisses);

    int[] dismissPositions = new int[pendingDismisses.size()];
    for (int i = pendingDismisses.size() - 1; i >= 0; i--) {
      dismissPositions[i] = pendingDismisses.get(i).position;
    }
    swipeRecyclerView.onDismiss(dismissPositions);

    ViewGroup.LayoutParams lp;
    for (PendingDismissData pendingDismiss : pendingDismisses) {
      // Reset view presentation
      if (pendingDismiss.view != null) {
        setAlpha(pendingDismiss.view, 1f);
        setTranslationX(pendingDismiss.view, 0);
        lp = pendingDismiss.view.getLayoutParams();
        lp.height = originalHeight;
        pendingDismiss.view.setLayoutParams(lp);
      }
    }

    resetPendingDismisses();
  }