From d8cdd3ef82030e181fbf00ea7e307ad55f742824 Mon Sep 17 00:00:00 2001 From: "sai.gairuboina-IN009276" Date: Fri, 23 Jun 2023 19:24:57 +0530 Subject: [PATCH] Watchdog and sluggishness due to multiple virtual displays created by third party apps Problem: { 1.Install third party app which creates virtual displays on screen off like easy boost cleaner app 2.Open easy.booster.clean.tool 3.Press power button to lock and then unlock 4.repeat the step 3 for 500 times or usage over the time without reboot } Solution: { 1. Over the time the snapshot time taken for multiple virtual displays takes over a minutes. 2. Avoid taking snapshot of DEFAULT_DISPLAY for virtual displays, since we have already taken snapshot for default display. } Bug: 288536413 Change-Id: Iad61fe589ade31c7a78820a5655986198b8ae0f8 --- .../core/java/com/android/server/wm/KeyguardController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java index 283e12a6ddaf3..07a1a8ac69f20 100644 --- a/services/core/java/com/android/server/wm/KeyguardController.java +++ b/services/core/java/com/android/server/wm/KeyguardController.java @@ -199,7 +199,8 @@ class KeyguardController { // handle the snapshot. // - The display state is ON. Because if AOD is not on or pulsing, the display state will // be OFF or DOZE (the path of screen off may have handled it). - if (((aodShowing ^ keyguardShowing) || (aodShowing && aodChanged && keyguardChanged)) + if (displayId == DEFAULT_DISPLAY + && ((aodShowing ^ keyguardShowing) || (aodShowing && aodChanged && keyguardChanged)) && !state.mKeyguardGoingAway && Display.isOnState( mRootWindowContainer.getDefaultDisplay().getDisplayInfo().state)) { mWindowManager.mTaskSnapshotController.snapshotForSleeping(DEFAULT_DISPLAY);