Always send configuration to client from resize and relayout.
Previously, the server side would omit reporting new configurations during resize and relayout if the current configuration matched the last reported. However, if the last reported came through a resize, the client side handling would be enqueued as a Handler message. This leads to the possibility of the client getting a new window frame but not a new configuration where this is synchronously handled, such as ViewRootImpl::performTraversals. To address this issue, we now always send the current configuration from the server to the client. The client then identifies changes against its own record of last reported configuration and updates as appropriate. This changelist also adds a call to force window relayout during updateConfiguration, as it's possible this is called after performTraversals is called or resize is handled, leading to a stale window frame. Bug: 24671393 Test: go/wm-smoke Test: Open Camera while rotating phone to landscape. Added temporary logs to detect inconsistencies between measurements and reported rotation on draw. Change-Id: I0d5143dfe80400f6a43ce710750f9fc9d4b93f74
Loading
Please register or sign in to comment