Merge "Clear cached override frame when window removed" into tm-qpr-dev

This commit is contained in:
Yunfan Chen
2022-10-25 03:37:49 +00:00
committed by Android (Google) Code Review

View File

@@ -173,6 +173,7 @@ abstract class InsetsSourceProvider {
mWindowContainer = windowContainer; mWindowContainer = windowContainer;
// TODO: remove the frame provider for non-WindowState container. // TODO: remove the frame provider for non-WindowState container.
mFrameProvider = frameProvider; mFrameProvider = frameProvider;
mOverrideFrames.clear();
mOverrideFrameProviders = overrideFrameProviders; mOverrideFrameProviders = overrideFrameProviders;
if (windowContainer == null) { if (windowContainer == null) {
setServerVisible(false); setServerVisible(false);
@@ -234,6 +235,8 @@ abstract class InsetsSourceProvider {
updateSourceFrameForServerVisibility(); updateSourceFrameForServerVisibility();
if (mOverrideFrameProviders != null) { if (mOverrideFrameProviders != null) {
// Not necessary to clear the mOverrideFrames here. It will be cleared every time the
// override frame provider updates.
for (int i = mOverrideFrameProviders.size() - 1; i >= 0; i--) { for (int i = mOverrideFrameProviders.size() - 1; i >= 0; i--) {
final int windowType = mOverrideFrameProviders.keyAt(i); final int windowType = mOverrideFrameProviders.keyAt(i);
final Rect overrideFrame; final Rect overrideFrame;