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
diff --git a/services/core/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java
index 22d32a6..50f5536 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 @@
}
mCurrentDreamDozeScreenState = Display.STATE_UNKNOWN;
mCurrentDreamDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT;
- mAtmInternal.notifyDreamStateChanged(false);
+ mHandler.post(() -> {
+ mAtmInternal.notifyDreamStateChanged(false);
+ });
}
private void checkPermission(String permission) {