code: @NonNull
      public Transition addListener(@NonNull TransitionListener listener) {
          if (mListeners == null) {
              mListeners = new ArrayList<TransitionListener>();
          }
          mListeners.add(listener);
          return this;
      }
docs: Adds a listener to the set of listeners that are sent events through the
  life of an animation, such as start, repeat, and end.
  
  @param listener the listener to be added to the current set of listeners
  for this animation.
  @return This transition object.