diff options
| author | 2025-03-19 23:43:48 -0700 | |
|---|---|---|
| committer | 2025-03-21 07:46:58 +0000 | |
| commit | e0a9fcc642b37c08decfd6cd468fe48643cc0c82 (patch) | |
| tree | 9b046a8ec920ad7c7506e0aa240ceee7ca918f90 | |
| parent | 440faf35257727adaa6c90e3d2de1221f28d4d21 (diff) | |
Revert^2 "Remove DepartingAnimationTarget from BackMotionEvent"
This would create another SurfaceControl object through IPC, which is
unnecessary because the animation should run through
BackAnimationRunner.
Flag: com.android.window.flags.remove_depart_target_from_motion
Bug: 395035430
Test: execute back-to-home transition several times, verify no
predict_back animation leash left in offscreen layer.
Change-Id: Ic9c24402a3e121be98251965ede375ad61991e4e
| -rw-r--r-- | core/java/android/window/flags/windowing_frontend.aconfig | 11 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java | 3 |
2 files changed, 13 insertions, 1 deletions
diff --git a/core/java/android/window/flags/windowing_frontend.aconfig b/core/java/android/window/flags/windowing_frontend.aconfig index 8dd0457248a4..3d4d98955168 100644 --- a/core/java/android/window/flags/windowing_frontend.aconfig +++ b/core/java/android/window/flags/windowing_frontend.aconfig @@ -388,6 +388,17 @@ flag { } flag { + name: "remove_depart_target_from_motion" + namespace: "windowing_frontend" + description: "Remove DepartingAnimationTarget from BackMotionEvent" + bug: "395035430" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { name: "predictive_back_default_enable_sdk_36" namespace: "systemui" description: "Enable Predictive Back by default with targetSdk>=36" diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java index 5d59af940da0..e29e98562cfa 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java @@ -1045,7 +1045,8 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont () -> mShellExecutor.execute(this::onBackAnimationFinished)); if (mApps.length >= 1) { - BackMotionEvent startEvent = mCurrentTracker.createStartEvent(mApps[0]); + BackMotionEvent startEvent = mCurrentTracker.createStartEvent( + Flags.removeDepartTargetFromMotion() ? null : mApps[0]); dispatchOnBackStarted(mActiveCallback, startEvent); if (startEvent.getSwipeEdge() == EDGE_NONE) { // TODO(b/373544911): onBackStarted is dispatched here so that |