From 57157ac5d8d602e9497753333b8a47de5cf6ec81 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 22 Jan 2019 19:01:48 +0100 Subject: Fix WindowInsetsController lifecycle Provide a recording insets controller before the window gets created, and replay the commands once a view gets attached. This allows the client to use the controller in Activity.onCreate. Test: WindowInsetsControllerTests Bug: 118118435 Change-Id: I1a825ecc4367c02b27f2d08cd5442325315d4f89 --- core/java/android/view/ViewRootImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'core/java/android/view/ViewRootImpl.java') diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 4de1c969057d..229143a71d57 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -1117,6 +1117,14 @@ public final class ViewRootImpl implements ViewParent, mFirstInputStage = nativePreImeStage; mFirstPostImeInputStage = earlyPostImeStage; mPendingInputEventQueueLengthCounterName = "aq:pending:" + counterSuffix; + + if (mView instanceof RootViewSurfaceTaker) { + PendingInsetsController pendingInsetsController = + ((RootViewSurfaceTaker) mView).providePendingInsetsController(); + if (pendingInsetsController != null) { + pendingInsetsController.replayAndAttach(mInsetsController); + } + } } } } -- cgit v1.2.3