code: private void endAnimation() {
          sAnimations.get().remove(this);
          sPendingAnimations.get().remove(this);
          sDelayedAnims.get().remove(this);
          mPlayingState = STOPPED;
          if (mRunning && mListeners != null) {
              ArrayList<AnimatorListener> tmpListeners =
                      (ArrayList<AnimatorListener>) mListeners.clone();
              int numListeners = tmpListeners.size();
              for (int i = 0; i < numListeners; ++i) {
                  tmpListeners.get(i).onAnimationEnd(this);
              }
          }
          mRunning = false;
          mStarted = false;
      }
docs: Called internally to end an animation by removing it from the animations list. Must be
  called on the UI thread.