[M140] [New Tab Animation] Remove foreground host view immediately
Original change's description:
> [New Tab Animation] Remove foreground host view immediately
>
> Removes the host view in forceAnimationToFinish instead of waiting for
> the listeners to do it
>
> Bug: 438261749
> Change-Id: I201c6486bea33163464dc1e94620f2e3c475c3fb
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6843815
> Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
> Commit-Queue: Dan Polanco <polardz@google.com>
> Cr-Commit-Position: refs/heads/main@{#1500417}
Bug: 438949101,438261749
Change-Id: I201c6486bea33163464dc1e94620f2e3c475c3fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6852759
Auto-Submit: Chrome Cherry Picker <chrome-cherry-picker@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/branch-heads/7339@{#639}
Cr-Branched-From: 27be8b77710f4405fdfeb4ee946fcabb0f6c92b2-refs/heads/main@{#1496484}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java
index e3475a8..8b690f9fe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java
@@ -191,21 +191,17 @@
mFadeAnimator.setDuration(FADE_DURATION_MS);
mFadeAnimator.addListener(
new CancelAwareAnimatorListener() {
- private void finishAnimation() {
+ @Override
+ public void onEnd(Animator animation) {
+ if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onEnd");
mListener.onForegroundAnimationFinished();
mFadeAnimator = null;
}
@Override
- public void onEnd(Animator animation) {
- if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onEnd");
- finishAnimation();
- }
-
- @Override
public void onCancel(Animator animation) {
if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onCancel");
- finishAnimation();
+ mFadeAnimator = null;
}
});
@@ -234,12 +230,10 @@
@Override
public void onCancel(Animator animation) {
if (mLogsEnabled) Log.i(TAG, "mExpandAnimatorSet#onCancel");
- mListener.onForegroundAnimationFinished();
clearAnimators();
mFadeAnimator = null;
}
});
-
mRectView.setVisibility(View.VISIBLE);
mExpandAnimatorSet.start();
}
@@ -268,8 +262,7 @@
/**
* Forces the animation to finish. If the expand animation is running, it will be canceled, and
* the fade-out animation will be skipped. If the fade-out animation is running, it will be
- * fast-forwarded to the end. In both cases, {@link Listener#onForegroundAnimationFinished()}
- * will be called to notify {@link NewTabAnimationLayout} to remove the view.
+ * cancelled.
*/
/* package */ void forceAnimationToFinish() {
if (mExpandAnimatorSet != null) {
@@ -277,7 +270,7 @@
mExpandAnimatorSet.cancel();
} else if (mFadeAnimator != null) {
if (mLogsEnabled) Log.i(TAG, "forceAnimationToFinish: mFadeAnimator#end");
- mFadeAnimator.end();
+ mFadeAnimator.cancel();
}
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java
index 138d535..47da43e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java
@@ -232,6 +232,8 @@
Log.i(TAG, "forceAnimationToFinish: mForegroundHostView#forceAnimationToFinish");
}
mForegroundHostView.forceAnimationToFinish();
+ mAnimationHostView.removeView(mForegroundHostView);
+ mForegroundHostView = null;
}
if (mTabCreatedBackgroundAnimation != null) {
if (mLogsEnabled) {