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
This commit is contained in:
Cheng Shi
2022-06-09 09:09:56 +00:00
committed by Chris Li
parent 51e6e8a0e1
commit 3ff201a713

View File

@@ -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;
}