diff options
| author | 2022-06-09 09:09:56 +0000 | |
|---|---|---|
| committer | 2022-06-15 01:01:28 +0000 | |
| commit | 3ff201a71394945fa000742a6419b830ecf8ea8a (patch) | |
| tree | 852e21763144d308b7745e0aa048fccb5a6a2f7e | |
| parent | 51e6e8a0e18105533a980ead8f639f3aa8879af1 (diff) | |
Fix the problem that the turn_screen_on Activity does not draw.
A phone call came when the screen was off, displayState may change from Display.STATE_OFF to STATE_ON before registerDisplayListener, which causes ViewRootImpl.mAttachInfo.mDisplayState of InCallActivity to remain Display.STATE_OFF, which causes performDraw to return directly. So we should update ViewRootImpl.mAttachInfo.mDisplayState after registerDisplayListener.
Bug: 235446909
Change-Id: I60b2da453da0ac5c4df6e5a1040defe4bfe726ec
Merged-In: I60b2da453da0ac5c4df6e5a1040defe4bfe726ec
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index a2ff69e15915..d779b4965d4e 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1035,7 +1035,6 @@ public final class ViewRootImpl implements ViewParent, if (mView == null) { mView = view; - mAttachInfo.mDisplayState = mDisplay.getState(); mViewLayoutDirectionInitial = mView.getRawLayoutDirection(); mFallbackEventHandler.setView(view); mWindowAttributes.copyFrom(attrs); @@ -1229,6 +1228,9 @@ public final class ViewRootImpl implements ViewParent, } registerListeners(); + // We should update mAttachInfo.mDisplayState after registerDisplayListener + // because displayState might be changed before registerDisplayListener. + mAttachInfo.mDisplayState = mDisplay.getState(); if ((res & WindowManagerGlobal.ADD_FLAG_USE_BLAST) != 0) { mUseBLASTAdapter = true; } |