From 854a170ea7e3719a0c57f5c40d0f9ea35b53582d Mon Sep 17 00:00:00 2001 From: Tony Huang Date: Mon, 6 Mar 2023 15:34:39 +0800 Subject: [PATCH] Fix wrong set force translucent when devices locked When split entering background, we will set it as force translucent to ensure right animation when next time entering by launch adjacent. But when devices locked, both stage invisible and we misidentify it entering background because both stage invisible. we should avoid do this when locked case. Fix: 267674372 Test: manual Test: pass existing tests Change-Id: I9d830a5636e8dc88dfa39bb706f851b3306a8fd1 --- .../com/android/wm/shell/splitscreen/StageCoordinator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java index 7d3e7ca671e5c..96394222bf9c7 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java @@ -1687,7 +1687,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // Split entering background. wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, true /* setReparentLeafTaskIfRelaunch */); - wct.setForceTranslucent(mRootTaskInfo.token, true); + if (!mMainStage.mRootTaskInfo.isSleeping && !mSideStage.mRootTaskInfo.isSleeping) { + wct.setForceTranslucent(mRootTaskInfo.token, true); + } } else { wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, false /* setReparentLeafTaskIfRelaunch */);