diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowState.java | 85 |
1 files changed, 28 insertions, 57 deletions
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index b4487409c74e..016277c0c37d 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -3427,53 +3427,38 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } void reportResized() { - Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.reportResized_" + getWindowTag()); - try { - ProtoLog.v(WM_DEBUG_RESIZE, - "Reporting new frame to %s: %s", this, - mWindowFrames.mCompatFrame); - final MergedConfiguration mergedConfiguration = - new MergedConfiguration(getProcessGlobalConfiguration(), - getMergedOverrideConfiguration()); + if (Trace.isTagEnabled(TRACE_TAG_WINDOW_MANAGER)) { + Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "wm.reportResized_" + getWindowTag()); + } - setLastReportedMergedConfiguration(mergedConfiguration); + ProtoLog.v(WM_DEBUG_RESIZE, "Reporting new frame to %s: %s", this, + mWindowFrames.mCompatFrame); + if (mWinAnimator.mDrawState == DRAW_PENDING) { + ProtoLog.i(WM_DEBUG_ORIENTATION, "Resizing %s WITH DRAW PENDING", this); + } - if (mWinAnimator.mDrawState == DRAW_PENDING) { - ProtoLog.i(WM_DEBUG_ORIENTATION, - "Resizing %s WITH DRAW PENDING", this); - } + getMergedConfiguration(mLastReportedConfiguration); + mLastConfigReportedToClient = true; + + final Rect frame = mWindowFrames.mCompatFrame; + final Rect contentInsets = mWindowFrames.mLastContentInsets; + final Rect visibleInsets = mWindowFrames.mLastVisibleInsets; + final Rect stableInsets = mWindowFrames.mLastStableInsets; + final MergedConfiguration mergedConfiguration = mLastReportedConfiguration; + final boolean reportDraw = mWinAnimator.mDrawState == DRAW_PENDING; + final boolean forceRelayout = mReportOrientationChanged || isDragResizeChanged(); + final int displayId = getDisplayId(); + final DisplayCutout displayCutout = getWmDisplayCutout().getDisplayCutout(); + + try { + mClient.resized(frame, contentInsets, visibleInsets, stableInsets, reportDraw, + mergedConfiguration, getBackdropFrame(frame), forceRelayout, + getDisplayContent().getDisplayPolicy().areSystemBarsForcedShownLw(this), + displayId, new DisplayCutout.ParcelableWrapper(displayCutout)); + mDragResizingChangeReported = true; - final Rect frame = mWindowFrames.mCompatFrame; - final Rect contentInsets = mWindowFrames.mLastContentInsets; - final Rect visibleInsets = mWindowFrames.mLastVisibleInsets; - final Rect stableInsets = mWindowFrames.mLastStableInsets; - final boolean reportDraw = mWinAnimator.mDrawState == DRAW_PENDING; - final boolean reportOrientation = mReportOrientationChanged; - final int displayId = getDisplayId(); - final DisplayCutout displayCutout = getWmDisplayCutout().getDisplayCutout(); - if (mAttrs.type != WindowManager.LayoutParams.TYPE_APPLICATION_STARTING - && mClient instanceof IWindow.Stub) { - // To prevent deadlock simulate one-way call if win.mClient is a local object. - mWmService.mH.post(new Runnable() { - @Override - public void run() { - try { - dispatchResized(frame, contentInsets, visibleInsets, - stableInsets, reportDraw, mergedConfiguration, - reportOrientation, displayId, displayCutout); - } catch (RemoteException e) { - // Not a remote call, RemoteException won't be raised. - } - } - }); - } else { - dispatchResized(frame, contentInsets, visibleInsets, stableInsets, - reportDraw, mergedConfiguration, reportOrientation, displayId, - displayCutout); - } if (mWmService.mAccessibilityController != null) { - mWmService.mAccessibilityController.onSomeWindowResizedOrMovedLocked( - getDisplayId()); + mWmService.mAccessibilityController.onSomeWindowResizedOrMovedLocked(displayId); } updateLocationInParentDisplayIfNeeded(); @@ -3603,20 +3588,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return stack.mTaskId; } - private void dispatchResized(Rect frame, Rect contentInsets, - Rect visibleInsets, Rect stableInsets, boolean reportDraw, - MergedConfiguration mergedConfiguration, boolean reportOrientation, int displayId, - DisplayCutout displayCutout) - throws RemoteException { - final boolean forceRelayout = isDragResizeChanged() || reportOrientation; - - mClient.resized(frame, contentInsets, visibleInsets, stableInsets, - reportDraw, mergedConfiguration, getBackdropFrame(frame), forceRelayout, - getDisplayContent().getDisplayPolicy().areSystemBarsForcedShownLw(this), displayId, - new DisplayCutout.ParcelableWrapper(displayCutout)); - mDragResizingChangeReported = true; - } - public void registerFocusObserver(IWindowFocusObserver observer) { synchronized (mWmService.mGlobalLock) { if (mFocusCallbacks == null) { |