summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wilsonshih <wilsonshih@google.com> 2022-04-13 15:22:55 +0800
committer wilsonshih <wilsonshih@google.com> 2022-04-13 18:10:30 +0800
commit694338cbf10b4de35ea92c43eb511eba0449b17f (patch)
treea6d3781f848948754e55f7586924fcb5922a14db
parent6a60515cbae066f0f0ae3a305373fb45790b3964 (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.java7
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();
}