in NearbyConnectionsWalkieTalkie/app/src/manual/java/com/google/location/nearby/apps/walkietalkie/MainActivity.java [438:480]
private Animator createAnimator(boolean reverse) {
Animator animator;
if (Build.VERSION.SDK_INT >= 21) {
int cx = mCurrentStateView.getMeasuredWidth() / 2;
int cy = mCurrentStateView.getMeasuredHeight() / 2;
int initialRadius = 0;
int finalRadius = Math.max(mCurrentStateView.getWidth(), mCurrentStateView.getHeight());
if (reverse) {
int temp = initialRadius;
initialRadius = finalRadius;
finalRadius = temp;
}
animator =
ViewAnimationUtils.createCircularReveal(
mCurrentStateView, cx, cy, initialRadius, finalRadius);
} else {
float initialAlpha = 0f;
float finalAlpha = 1f;
if (reverse) {
float temp = initialAlpha;
initialAlpha = finalAlpha;
finalAlpha = temp;
}
mCurrentStateView.setAlpha(initialAlpha);
animator = ObjectAnimator.ofFloat(mCurrentStateView, "alpha", finalAlpha);
}
animator.addListener(
new AnimatorListener() {
@Override
public void onAnimationCancel(Animator animator) {
mPreviousStateView.setVisibility(View.GONE);
mCurrentStateView.setAlpha(1);
}
@Override
public void onAnimationEnd(Animator animator) {
mPreviousStateView.setVisibility(View.GONE);
mCurrentStateView.setAlpha(1);
}
});
animator.setDuration(ANIMATION_DURATION);
return animator;
}