From bac8a178b20a90147203711d4282c0ce67a1293d Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 3 Mar 2022 18:23:42 +0100 Subject: [PATCH] Fix lock contention between DMS and ATMS This causes jank often, and we don't need to call into ATMS synchronously to update the dream state, as we're not doing that when starting the dream. Test: Presubmit, check if AOD still works Bug: 219502599 Change-Id: Ib3048447e6bb36d78aac39a3dffd3bacf33c5e13 --- .../java/com/android/server/dreams/DreamManagerService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java index 22d32a665611f..50f5536d9f4bf 100644 --- a/services/core/java/com/android/server/dreams/DreamManagerService.java +++ b/services/core/java/com/android/server/dreams/DreamManagerService.java @@ -467,7 +467,9 @@ public final class DreamManagerService extends SystemService { } mCurrentDreamDozeScreenState = Display.STATE_UNKNOWN; mCurrentDreamDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT; - mAtmInternal.notifyDreamStateChanged(false); + mHandler.post(() -> { + mAtmInternal.notifyDreamStateChanged(false); + }); } private void checkPermission(String permission) {