code: private void swapAnimator(ViewPositionAnimator old, ViewPositionAnimator next) {
          final float position = old.getPosition();
          final boolean isLeaving = old.isLeaving();
          final boolean isAnimating = old.isAnimating();
  
          if (GestureDebug.isDebugAnimator()) {
              Log.d(TAG, "Swapping animator for " + getRequestedId());
          }
  
          cleanupAnimator(old);
  
          if (getFromView() != null) {
              next.enter(getFromView(), false);
          } else if (getFromPos() != null) {
              next.enter(getFromPos(), false);
          }
  
          initAnimator(next);
  
          next.setState(position, isLeaving, isAnimating);
      }
docs: Replaces old animator with new one preserving state.