docs: protected void prepareAnimation(@NonNull StateController sharedController, @IntRange(from = -1) final int duration) {
          if (isAnimating()) {
              return;
          }
          setAnimating(true);
          getTransition().startTransition(mReverse ? 1 : 0);
  
          mController = sharedController;
          if (duration != -1) {
              mController.setAnimationDuration(duration);
          }
          mController.addAnimation(this);
      }