From 531404721f00f386ce3c6572475fc9c11fb8434f Mon Sep 17 00:00:00 2001 From: Taran Singh Date: Thu, 4 Jun 2020 20:31:56 -0700 Subject: [PATCH] Fix InsetsConsumer leak Activity was still referred from ImeInsetsSourceConsumer after ViewRootImpl's mView was destroyed when ViewRoot's surface is cleared using die signal. This CL makes sure we still free-up resources at die signal. Fix: 157955883 Test: atest NexusLauncherTests Change-Id: Ia48f7b7a8cf6b867ce75b2b7393a60ba73b0c3d0 --- core/java/android/view/ViewRootImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 2743654695e0f..2647c0aa6e335 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -21,7 +21,6 @@ import static android.view.Display.INVALID_DISPLAY; import static android.view.InputDevice.SOURCE_CLASS_NONE; import static android.view.InsetsState.ITYPE_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_STATUS_BAR; -import static android.view.InsetsState.LAST_TYPE; import static android.view.InsetsState.SIZE; import static android.view.View.PFLAG_DRAW_ANIMATION; import static android.view.View.SYSTEM_UI_FLAG_FULLSCREEN; @@ -4617,6 +4616,9 @@ public final class ViewRootImpl implements ViewParent, } void dispatchDetachedFromWindow() { + // Make sure we free-up insets resources if view never received onWindowFocusLost() + // because of a die-signal + mInsetsController.onWindowFocusLost(); mFirstInputStage.onDetachedFromWindow(); if (mView != null && mView.mAttachInfo != null) { mAttachInfo.mTreeObserver.dispatchOnWindowAttachedChange(false);