diff options
| author | 2022-04-13 15:22:55 +0800 | |
|---|---|---|
| committer | 2022-04-13 18:10:30 +0800 | |
| commit | 694338cbf10b4de35ea92c43eb511eba0449b17f (patch) | |
| tree | a6d3781f848948754e55f7586924fcb5922a14db | |
| parent | 6a60515cbae066f0f0ae3a305373fb45790b3964 (diff) | |
Skip splash screen exit animation if screen isn't on.
Skip the default splash screen exit animation if display
is turned off or start dozing.
Bug: 225295803
Test: Manual, enable AOD, start activity from background,
verify no exit animation on system trace.
Change-Id: Ic4fb1cba78c7ebe883a9eca58fb9852c4ea1052c
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskOrganizerController.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/TaskOrganizerController.java b/services/core/java/com/android/server/wm/TaskOrganizerController.java index 8a0ae65267a3..9bf988f16090 100644 --- a/services/core/java/com/android/server/wm/TaskOrganizerController.java +++ b/services/core/java/com/android/server/wm/TaskOrganizerController.java @@ -38,6 +38,7 @@ import android.os.Parcel; import android.os.RemoteException; import android.util.Slog; import android.util.proto.ProtoOutputStream; +import android.view.Display; import android.view.SurfaceControl; import android.window.ITaskOrganizer; import android.window.ITaskOrganizerController; @@ -526,17 +527,17 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { } final StartingWindowRemovalInfo removalInfo = new StartingWindowRemovalInfo(); removalInfo.taskId = task.mTaskId; - removalInfo.playRevealAnimation = prepareAnimation; + removalInfo.playRevealAnimation = prepareAnimation + && task.getDisplayInfo().state == Display.STATE_ON; final boolean playShiftUpAnimation = !task.inMultiWindowMode(); final ActivityRecord topActivity = task.topActivityContainsStartingWindow(); if (topActivity != null) { removalInfo.deferRemoveForIme = topActivity.mDisplayContent .mayImeShowOnLaunchingActivity(topActivity); - if (prepareAnimation && playShiftUpAnimation) { + if (removalInfo.playRevealAnimation && playShiftUpAnimation) { final WindowState mainWindow = topActivity.findMainWindow(false/* includeStartingApp */); if (mainWindow != null) { - final SurfaceControl.Transaction t = mainWindow.getPendingTransaction(); removalInfo.windowAnimationLeash = applyStartingWindowAnimation(mainWindow); removalInfo.mainFrame = mainWindow.getRelativeFrame(); } |