From 694338cbf10b4de35ea92c43eb511eba0449b17f Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Wed, 13 Apr 2022 15:22:55 +0800 Subject: 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 --- .../core/java/com/android/server/wm/TaskOrganizerController.java | 7 ++++--- 1 file 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(); } -- cgit v1.2.3-59-g8ed1b