Commit 9ee32f1e authored by Marcin Wiacek's avatar Marcin Wiacek Committed by Commit Bot

Migrating creating AnimatorUpdateListeners to lambdas

According to various sources lambdas can provide profits in some scenarios.

According to the

https://chromium.googlesource.com/chromium/src/+/master/styleguide/java/java.md#Lambdas-and-Method-References

lambdas are allowed also in Chrome, patch is migrating AnimatorUpdateListener usage to them.

BUG=889613

Change-Id: I7d4af5f34e83abe03bd998359e4c0b3cc149e3f0
Reviewed-on: https://chromium-review.googlesource.com/1244440
Commit-Queue: Marcin Wiącek <marcin@mwiacek.com>
Reviewed-by: default avatarChangwan Ryu <changwan@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarDonn Denman <donnd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595651}
parent e87c0946
......@@ -10,7 +10,6 @@ import android.content.Context;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimationHandler;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator.AnimatorUpdateListener;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.PanelState;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason;
import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost;
......@@ -348,12 +347,7 @@ public abstract class OverlayPanelAnimation extends OverlayPanelBase {
mHeightAnimator = CompositorAnimator.ofFloat(
getAnimationHandler(), getHeight(), height, duration, null);
mHeightAnimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
setPanelHeight(animator.getAnimatedValue());
}
});
mHeightAnimator.addUpdateListener(animator -> setPanelHeight(animator.getAnimatedValue()));
mHeightAnimator.addListener(new CancelAwareAnimatorListener() {
@Override
public void onEnd(Animator animation) {
......
......@@ -11,7 +11,6 @@ import android.view.ViewGroup;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator.AnimatorUpdateListener;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater;
......@@ -251,9 +250,10 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater {
* Animates the Bar Banner appearance.
*/
public void animateAppearance() {
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
CompositorAnimator appearance =
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 0.f, 1.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
appearance.addUpdateListener(animator -> {
float percentage = animator.getAnimatedFraction();
mRippleWidthPx = Math.round(MathUtils.interpolate(
mRippleMinimumWidthPx, mRippleMaximumWidthPx, percentage));
......@@ -264,12 +264,7 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater {
float textOpacityPercentage =
Math.max(0.f, percentage - textOpacityDelay) / (1.f - textOpacityDelay);
mTextOpacity = MathUtils.interpolate(0.f, 1.f, textOpacityPercentage);
}
};
CompositorAnimator appearance =
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 0.f, 1.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, listener);
});
appearance.start();
}
......@@ -281,14 +276,11 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater {
CompositorAnimator disappearance =
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
disappearance.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
disappearance.addUpdateListener(animator -> {
if (isVisible()) {
float percentage = animator.getAnimatedFraction();
mHeightPx = MathUtils.interpolate(getPaddedHeightPx(), 0.f, percentage);
}
}
});
disappearance.addListener(new AnimatorListenerAdapter() {
@Override
......
......@@ -13,7 +13,6 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator.AnimatorUpdateListener;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
......@@ -430,15 +429,11 @@ public class ContextualSearchBarControl {
float endValue = visible ? FULL_OPACITY : TRANSPARENT_OPACITY;
if (mDividerLineVisibilityPercentage == endValue) return;
if (mDividerLineVisibilityAnimation != null) mDividerLineVisibilityAnimation.cancel();
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
mDividerLineVisibilityPercentage = animator.getAnimatedValue();
}
};
mDividerLineVisibilityAnimation = CompositorAnimator.ofFloat(
mContextualSearchPanel.getAnimationHandler(), mDividerLineVisibilityPercentage,
endValue, OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, listener);
endValue, OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
mDividerLineVisibilityAnimation.addUpdateListener(
animator -> mDividerLineVisibilityPercentage = animator.getAnimatedValue());
mDividerLineVisibilityAnimation.start();
}
......@@ -581,12 +576,8 @@ public class ContextualSearchBarControl {
mTextOpacityAnimation = CompositorAnimator.ofFloat(
mContextualSearchPanel.getAnimationHandler(), TRANSPARENT_OPACITY, FULL_OPACITY,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
mTextOpacityAnimation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
updateSearchBarTextOpacity(animator.getAnimatedValue());
}
});
mTextOpacityAnimation.addUpdateListener(
animator -> updateSearchBarTextOpacity(animator.getAnimatedValue()));
}
mTextOpacityAnimation.cancel();
mTextOpacityAnimation.start();
......
......@@ -14,7 +14,6 @@ import android.widget.TextView;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator.AnimatorUpdateListener;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelTextViewInflater;
......@@ -254,15 +253,11 @@ public class ContextualSearchCaptionControl extends OverlayPanelTextViewInflater
// ============================================================================================
private void animateTransitionIn() {
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
mAnimationPercentage = animator.getAnimatedValue();
}
};
mTransitionAnimator = CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(),
ANIMATION_PERCENTAGE_ZERO, ANIMATION_PERCENTAGE_COMPLETE,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, listener);
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
mTransitionAnimator.addUpdateListener(
animator -> mAnimationPercentage = animator.getAnimatedValue());
mTransitionAnimator.setInterpolator(ANIMATION_INTERPOLATOR);
mTransitionAnimator.start();
}
......
......@@ -213,12 +213,9 @@ public class ContextualSearchImageControl {
mImageVisibilityAnimator.setDuration(OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS);
mImageVisibilityAnimator.setInterpolator(mCustomImageVisibilityInterpolator);
mImageVisibilityAnimator.setValues(mCustomImageVisibilityPercentage, visible ? 1.f : 0.f);
mImageVisibilityAnimator.addUpdateListener(new CompositorAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
mImageVisibilityAnimator.addUpdateListener(animator -> {
if (mExpandedPercentage > 0.f) return;
mCustomImageVisibilityPercentage = animator.getAnimatedValue();
}
});
mImageVisibilityAnimator.addListener(new AnimatorListenerAdapter() {
@Override
......
......@@ -16,7 +16,6 @@ import android.widget.TextView;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator.AnimatorUpdateListener;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater;
......@@ -291,12 +290,7 @@ public class ContextualSearchPromoControl extends OverlayPanelInflater {
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
collapse.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
updateAppearance(animator.getAnimatedValue());
}
});
collapse.addUpdateListener(animator -> updateAppearance(animator.getAnimatedValue()));
collapse.addListener(new AnimatorListenerAdapter() {
@Override
......
......@@ -246,12 +246,9 @@ public class ToolbarSwipeLayout extends Layout {
if (duration > 0) {
CompositorAnimator offsetAnimation =
CompositorAnimator.ofFloat(getAnimationHandler(), start, end, duration, null);
offsetAnimation.addUpdateListener(new CompositorAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
offsetAnimation.addUpdateListener(animator -> {
mOffset = animator.getAnimatedValue();
mOffsetTarget = mOffset;
}
});
offsetAnimation.start();
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment