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; ...@@ -10,7 +10,6 @@ import android.content.Context;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimationHandler; import org.chromium.chrome.browser.compositor.animation.CompositorAnimationHandler;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator; 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.PanelState;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason;
import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost;
...@@ -348,12 +347,7 @@ public abstract class OverlayPanelAnimation extends OverlayPanelBase { ...@@ -348,12 +347,7 @@ public abstract class OverlayPanelAnimation extends OverlayPanelBase {
mHeightAnimator = CompositorAnimator.ofFloat( mHeightAnimator = CompositorAnimator.ofFloat(
getAnimationHandler(), getHeight(), height, duration, null); getAnimationHandler(), getHeight(), height, duration, null);
mHeightAnimator.addUpdateListener(new AnimatorUpdateListener() { mHeightAnimator.addUpdateListener(animator -> setPanelHeight(animator.getAnimatedValue()));
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
setPanelHeight(animator.getAnimatedValue());
}
});
mHeightAnimator.addListener(new CancelAwareAnimatorListener() { mHeightAnimator.addListener(new CancelAwareAnimatorListener() {
@Override @Override
public void onEnd(Animator animation) { public void onEnd(Animator animation) {
......
...@@ -11,7 +11,6 @@ import android.view.ViewGroup; ...@@ -11,7 +11,6 @@ import android.view.ViewGroup;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator; 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.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater;
...@@ -251,25 +250,21 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater { ...@@ -251,25 +250,21 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater {
* Animates the Bar Banner appearance. * Animates the Bar Banner appearance.
*/ */
public void animateAppearance() { public void animateAppearance() {
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
float percentage = animator.getAnimatedFraction();
mRippleWidthPx = Math.round(MathUtils.interpolate(
mRippleMinimumWidthPx, mRippleMaximumWidthPx, percentage));
mRippleOpacity = MathUtils.interpolate(0.f, 1.f, percentage);
float textOpacityDelay = 0.5f;
float textOpacityPercentage =
Math.max(0.f, percentage - textOpacityDelay) / (1.f - textOpacityDelay);
mTextOpacity = MathUtils.interpolate(0.f, 1.f, textOpacityPercentage);
}
};
CompositorAnimator appearance = CompositorAnimator appearance =
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 0.f, 1.f, CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 0.f, 1.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, listener); OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
appearance.addUpdateListener(animator -> {
float percentage = animator.getAnimatedFraction();
mRippleWidthPx = Math.round(MathUtils.interpolate(
mRippleMinimumWidthPx, mRippleMaximumWidthPx, percentage));
mRippleOpacity = MathUtils.interpolate(0.f, 1.f, percentage);
float textOpacityDelay = 0.5f;
float textOpacityPercentage =
Math.max(0.f, percentage - textOpacityDelay) / (1.f - textOpacityDelay);
mTextOpacity = MathUtils.interpolate(0.f, 1.f, textOpacityPercentage);
});
appearance.start(); appearance.start();
} }
...@@ -281,13 +276,10 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater { ...@@ -281,13 +276,10 @@ public class ContextualSearchBarBannerControl extends OverlayPanelInflater {
CompositorAnimator disappearance = CompositorAnimator disappearance =
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f, CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null); OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
disappearance.addUpdateListener(new AnimatorUpdateListener() { disappearance.addUpdateListener(animator -> {
@Override if (isVisible()) {
public void onAnimationUpdate(CompositorAnimator animator) { float percentage = animator.getAnimatedFraction();
if (isVisible()) { mHeightPx = MathUtils.interpolate(getPaddedHeightPx(), 0.f, percentage);
float percentage = animator.getAnimatedFraction();
mHeightPx = MathUtils.interpolate(getPaddedHeightPx(), 0.f, percentage);
}
} }
}); });
disappearance.addListener(new AnimatorListenerAdapter() { disappearance.addListener(new AnimatorListenerAdapter() {
......
...@@ -13,7 +13,6 @@ import org.chromium.base.ApiCompatibilityUtils; ...@@ -13,7 +13,6 @@ import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator; 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.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
...@@ -430,15 +429,11 @@ public class ContextualSearchBarControl { ...@@ -430,15 +429,11 @@ public class ContextualSearchBarControl {
float endValue = visible ? FULL_OPACITY : TRANSPARENT_OPACITY; float endValue = visible ? FULL_OPACITY : TRANSPARENT_OPACITY;
if (mDividerLineVisibilityPercentage == endValue) return; if (mDividerLineVisibilityPercentage == endValue) return;
if (mDividerLineVisibilityAnimation != null) mDividerLineVisibilityAnimation.cancel(); if (mDividerLineVisibilityAnimation != null) mDividerLineVisibilityAnimation.cancel();
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
mDividerLineVisibilityPercentage = animator.getAnimatedValue();
}
};
mDividerLineVisibilityAnimation = CompositorAnimator.ofFloat( mDividerLineVisibilityAnimation = CompositorAnimator.ofFloat(
mContextualSearchPanel.getAnimationHandler(), mDividerLineVisibilityPercentage, 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(); mDividerLineVisibilityAnimation.start();
} }
...@@ -581,12 +576,8 @@ public class ContextualSearchBarControl { ...@@ -581,12 +576,8 @@ public class ContextualSearchBarControl {
mTextOpacityAnimation = CompositorAnimator.ofFloat( mTextOpacityAnimation = CompositorAnimator.ofFloat(
mContextualSearchPanel.getAnimationHandler(), TRANSPARENT_OPACITY, FULL_OPACITY, mContextualSearchPanel.getAnimationHandler(), TRANSPARENT_OPACITY, FULL_OPACITY,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null); OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
mTextOpacityAnimation.addUpdateListener(new AnimatorUpdateListener() { mTextOpacityAnimation.addUpdateListener(
@Override animator -> updateSearchBarTextOpacity(animator.getAnimatedValue()));
public void onAnimationUpdate(CompositorAnimator animator) {
updateSearchBarTextOpacity(animator.getAnimatedValue());
}
});
} }
mTextOpacityAnimation.cancel(); mTextOpacityAnimation.cancel();
mTextOpacityAnimation.start(); mTextOpacityAnimation.start();
......
...@@ -14,7 +14,6 @@ import android.widget.TextView; ...@@ -14,7 +14,6 @@ import android.widget.TextView;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator; 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.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelTextViewInflater; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelTextViewInflater;
...@@ -254,15 +253,11 @@ public class ContextualSearchCaptionControl extends OverlayPanelTextViewInflater ...@@ -254,15 +253,11 @@ public class ContextualSearchCaptionControl extends OverlayPanelTextViewInflater
// ============================================================================================ // ============================================================================================
private void animateTransitionIn() { private void animateTransitionIn() {
AnimatorUpdateListener listener = new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
mAnimationPercentage = animator.getAnimatedValue();
}
};
mTransitionAnimator = CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), mTransitionAnimator = CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(),
ANIMATION_PERCENTAGE_ZERO, ANIMATION_PERCENTAGE_COMPLETE, 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.setInterpolator(ANIMATION_INTERPOLATOR);
mTransitionAnimator.start(); mTransitionAnimator.start();
} }
......
...@@ -213,12 +213,9 @@ public class ContextualSearchImageControl { ...@@ -213,12 +213,9 @@ public class ContextualSearchImageControl {
mImageVisibilityAnimator.setDuration(OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS); mImageVisibilityAnimator.setDuration(OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS);
mImageVisibilityAnimator.setInterpolator(mCustomImageVisibilityInterpolator); mImageVisibilityAnimator.setInterpolator(mCustomImageVisibilityInterpolator);
mImageVisibilityAnimator.setValues(mCustomImageVisibilityPercentage, visible ? 1.f : 0.f); mImageVisibilityAnimator.setValues(mCustomImageVisibilityPercentage, visible ? 1.f : 0.f);
mImageVisibilityAnimator.addUpdateListener(new CompositorAnimator.AnimatorUpdateListener() { mImageVisibilityAnimator.addUpdateListener(animator -> {
@Override if (mExpandedPercentage > 0.f) return;
public void onAnimationUpdate(CompositorAnimator animator) { mCustomImageVisibilityPercentage = animator.getAnimatedValue();
if (mExpandedPercentage > 0.f) return;
mCustomImageVisibilityPercentage = animator.getAnimatedValue();
}
}); });
mImageVisibilityAnimator.addListener(new AnimatorListenerAdapter() { mImageVisibilityAnimator.addListener(new AnimatorListenerAdapter() {
@Override @Override
......
...@@ -16,7 +16,6 @@ import android.widget.TextView; ...@@ -16,7 +16,6 @@ import android.widget.TextView;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.animation.CompositorAnimator; 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.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelAnimation;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelInflater;
...@@ -291,12 +290,7 @@ public class ContextualSearchPromoControl extends OverlayPanelInflater { ...@@ -291,12 +290,7 @@ public class ContextualSearchPromoControl extends OverlayPanelInflater {
CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f, CompositorAnimator.ofFloat(mOverlayPanel.getAnimationHandler(), 1.f, 0.f,
OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null); OverlayPanelAnimation.BASE_ANIMATION_DURATION_MS, null);
collapse.addUpdateListener(new AnimatorUpdateListener() { collapse.addUpdateListener(animator -> updateAppearance(animator.getAnimatedValue()));
@Override
public void onAnimationUpdate(CompositorAnimator animator) {
updateAppearance(animator.getAnimatedValue());
}
});
collapse.addListener(new AnimatorListenerAdapter() { collapse.addListener(new AnimatorListenerAdapter() {
@Override @Override
......
...@@ -246,12 +246,9 @@ public class ToolbarSwipeLayout extends Layout { ...@@ -246,12 +246,9 @@ public class ToolbarSwipeLayout extends Layout {
if (duration > 0) { if (duration > 0) {
CompositorAnimator offsetAnimation = CompositorAnimator offsetAnimation =
CompositorAnimator.ofFloat(getAnimationHandler(), start, end, duration, null); CompositorAnimator.ofFloat(getAnimationHandler(), start, end, duration, null);
offsetAnimation.addUpdateListener(new CompositorAnimator.AnimatorUpdateListener() { offsetAnimation.addUpdateListener(animator -> {
@Override mOffset = animator.getAnimatedValue();
public void onAnimationUpdate(CompositorAnimator animator) { mOffsetTarget = mOffset;
mOffset = animator.getAnimatedValue();
mOffsetTarget = mOffset;
}
}); });
offsetAnimation.start(); 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