Merge "Insets Animations: Always dispatch onEnd when cancelled" into sc-dev am: e53e6f5c10 am: 37c3d45dec
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15029085 Change-Id: I81d253cc380c129a176e086a29fc69ce9b959639
This commit is contained in:
@@ -1265,7 +1265,7 @@ public class InsetsController implements WindowInsetsController, InsetsAnimation
|
||||
}
|
||||
stateChanged |= getSourceConsumer(types.valueAt(j)).notifyAnimationFinished();
|
||||
}
|
||||
if (invokeCallback && runningAnimation.startDispatched) {
|
||||
if (invokeCallback) {
|
||||
dispatchAnimationEnd(runningAnimation.runner.getAnimation());
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -110,6 +110,10 @@ public class ViewRootInsetsControllerHost implements InsetsController.Host {
|
||||
@Override
|
||||
public void dispatchWindowInsetsAnimationEnd(@NonNull WindowInsetsAnimation animation) {
|
||||
if (DEBUG) Log.d(TAG, "windowInsetsAnimation ended");
|
||||
if (mViewRoot.mView == null) {
|
||||
// The view has already detached from window.
|
||||
return;
|
||||
}
|
||||
mViewRoot.mView.dispatchWindowInsetsAnimationEnd(animation);
|
||||
}
|
||||
|
||||
|
||||
@@ -360,6 +360,13 @@ public final class WindowInsetsAnimation {
|
||||
* finished, and then revert to the starting state of the animation in the first
|
||||
* {@link #onProgress} callback by using post-layout view properties like {@link View#setX}
|
||||
* and related methods.
|
||||
*
|
||||
* <p>Note that the animation might be cancelled before {@link #onStart} is dispatched. On
|
||||
* {@link android.os.Build.VERSION_CODES#S S} and later, {@link #onEnd} is immediately
|
||||
* dispatched without an {@link #onStart} in that case.
|
||||
* On {@link android.os.Build.VERSION_CODES#R R}, no callbacks are dispatched after
|
||||
* {@code #onPrepare} for such an animation.
|
||||
*
|
||||
* <p>
|
||||
* Note: If the animation is application controlled by using
|
||||
* {@link WindowInsetsController#controlWindowInsetsAnimation}, the end state of the
|
||||
|
||||
Reference in New Issue
Block a user