Program: 92617
Project: 92617
Buggy source:
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  ButterKnife.inject(this);
  ButterKnife.setDebug(true);
  setSupportActionBar(mToolbar);
  mLayoutManager=new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
  mCardsAdapter=new RecycleAdapter();
  mCardsAdapter.setHasStableIds(true);
  mCardsGroup.setHasFixedSize(true);
  mCardsGroup.setItemViewCacheSize(3);
  mCardsGroup.setClipToPadding(false);
  mCardsGroup.setAdapter(mCardsAdapter);
  mCardsGroup.setLayoutManager(mLayoutManager);
  mCardsGroup.setOnScrollListener(new HideExtraOnScroll(mToolbar));
  mToolbar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){
    @Override public void onGlobalLayout(){
      ViewUtils.removeGlobalListeners(mToolbar,this);
      final int outOfScreenY=((ViewGroup.MarginLayoutParams)mFloatingButton.getLayoutParams()).bottomMargin + mFloatingButton.getHeight();
      ViewAnimationUtils.liftingFromBottom(mFloatingButton,0,outOfScreenY,500,0);
    }
  }
);
  mFloatingButton.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      View myView=((RevealFrameLayout)mCardsGroup.getChildAt(0)).getChildAt(0);
      int cx=myView.getRight() - 100;
      int cy=myView.getBottom() - 100;
      int finalRadius=Math.max(myView.getWidth(),myView.getHeight()) + 100;
      ObjectAnimator animator=(ObjectAnimator)ViewAnimationUtils.createCircularReveal(myView,cx,cy,0,finalRadius);
      animator.setInterpolator(new AccelerateInterpolator());
      animator.setDuration(500);
      animator.setAutoCancel(true);
      animator.start();
    }
  }
);
}

Fixed version (ground truth):
@Override protected void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  ButterKnife.inject(this);
  ButterKnife.setDebug(true);
  setSupportActionBar(mToolbar);
  mLayoutManager=new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
  mCardsAdapter=new RecycleAdapter();
  mCardsAdapter.setHasStableIds(true);
  mCardsGroup.setHasFixedSize(true);
  mCardsGroup.setItemViewCacheSize(3);
  mCardsGroup.setClipToPadding(false);
  mCardsGroup.setAdapter(mCardsAdapter);
  mCardsGroup.setLayoutManager(mLayoutManager);
  mToolbar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){
    @Override public void onGlobalLayout(){
      ViewUtils.removeGlobalListeners(mToolbar,this);
      final int outOfScreenY=((ViewGroup.MarginLayoutParams)mFloatingButton.getLayoutParams()).bottomMargin + mFloatingButton.getHeight();
      ViewAnimationUtils.liftingFromBottom(mFloatingButton,0,outOfScreenY,500,0);
    }
  }
);
  mFloatingButton.setOnClickListener(new View.OnClickListener(){
    @Override public void onClick(    View v){
      View myView=((RevealFrameLayout)mCardsGroup.getChildAt(0)).getChildAt(0);
      int cx=myView.getRight() - 100;
      int cy=myView.getBottom() - 100;
      int finalRadius=Math.max(myView.getWidth(),myView.getHeight()) + 100;
      Animator animator=ViewAnimationUtils.createCircularReveal(myView,cx,cy,0,finalRadius);
      animator.setInterpolator(new AccelerateInterpolator());
      animator.setDuration(500);
      if (Animator.LOLLIPOP) {
        android.animation.ObjectAnimator a=(android.animation.ObjectAnimator)animator.getNativeAnimator();
        a.setAutoCancel(true);
      }
 else {
        ObjectAnimator a=(ObjectAnimator)animator.getSupportAnimator();
        a.setAutoCancel(true);
      }
      animator.start();
    }
  }
);
}