Program: 92619
Project: 92619
Buggy source:
/** 
 * Returns an Animator which can animate a clipping circle. <p> Any shadow cast by the View will respect the circular clip from this animator. <p> Only a single non-rectangular clip can be applied on a View at any time. Views clipped by a circular reveal animation take priority over  {@link android.view.View#setClipToOutline(boolean) View Outline clipping}. <p> Note that the animation returned here is a one-shot animation. It cannot be re-used, and once started it cannot be paused or resumed.
 * @param view The View will be clipped to the animating circle.
 * @param centerX The x coordinate of the center of the animating circle.
 * @param centerY The y coordinate of the center of the animating circle.
 * @param startRadius The starting radius of the animating circle.
 * @param endRadius The ending radius of the animating circle.
 */
public static Animator createCircularReveal(View view,int centerX,int centerY,float startRadius,float endRadius){
  if (!(view.getParent() instanceof RevealAnimator)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  RevealAnimator revealLayout=(RevealAnimator)view.getParent();
  revealLayout.setTarget(view);
  revealLayout.setCenter(centerX,centerY);
  Rect bounds=new Rect();
  view.getHitRect(bounds);
  Animator reveal=ObjectAnimator.ofFloat(revealLayout,"String_Node_Str",startRadius,endRadius);
  reveal.addListener(new RevealAnimator.RevealFinished(revealLayout,bounds));
  return reveal;
}

Fixed version (ground truth):
/** 
 * Returns an Animator which can animate a clipping circle. <p> Any shadow cast by the View will respect the circular clip from this animator. <p> Only a single non-rectangular clip can be applied on a View at any time. Views clipped by a circular reveal animation take priority over  {@link android.view.View#setClipToOutline(boolean) View Outline clipping}. <p> Note that the animation returned here is a one-shot animation. It cannot be re-used, and once started it cannot be paused or resumed.
 * @param view The View will be clipped to the animating circle.
 * @param centerX The x coordinate of the center of the animating circle.
 * @param centerY The y coordinate of the center of the animating circle.
 * @param startRadius The starting radius of the animating circle.
 * @param endRadius The ending radius of the animating circle.
 */
public static io.codetail.animation.Animator createCircularReveal(View view,int centerX,int centerY,float startRadius,float endRadius){
  if (io.codetail.animation.Animator.LOLLIPOP) {
    return new io.codetail.animation.Animator(android.view.ViewAnimationUtils.createCircularReveal(view,centerX,centerY,startRadius,endRadius));
  }
  if (!(view.getParent() instanceof RevealAnimator)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  RevealAnimator revealLayout=(RevealAnimator)view.getParent();
  revealLayout.setTarget(view);
  revealLayout.setCenter(centerX,centerY);
  Rect bounds=new Rect();
  view.getHitRect(bounds);
  ObjectAnimator reveal=ObjectAnimator.ofFloat(revealLayout,"String_Node_Str",startRadius,endRadius);
  reveal.addListener(new RevealAnimator.RevealFinished(revealLayout,bounds));
  return new io.codetail.animation.Animator(reveal);
}