From 2b71400356288e325a06e6f6c28608df14a334f7 Mon Sep 17 00:00:00 2001 From: Garfield Tan Date: Wed, 21 Apr 2021 12:44:24 -0700 Subject: [PATCH] Add null check around mImeRequester.getWindow() mImeRequester is an InsetsControlTarget, which in some cases isn't backed by a WindowState. Therefore we can't write window dump to protobuf without checking if mImeRequester.getWindow() is null first. Bug: 186006740 Test: Builds. Change-Id: I3648763b4cee3a3d5cd1d39ebacbb00289f6fb33 --- .../java/com/android/server/wm/ImeInsetsSourceProvider.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java index 510c62d9029f4..da47328691c0a 100644 --- a/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java +++ b/services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java @@ -257,8 +257,10 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { void dumpDebug(ProtoOutputStream proto, long fieldId, @WindowTraceLogLevel int logLevel) { final long token = proto.start(fieldId); super.dumpDebug(proto, INSETS_SOURCE_PROVIDER, logLevel); - if (mImeRequester != null) { - mImeRequester.getWindow().dumpDebug(proto, IME_TARGET_FROM_IME, logLevel); + final WindowState imeRequesterWindow = + mImeRequester != null ? mImeRequester.getWindow() : null; + if (imeRequesterWindow != null) { + imeRequesterWindow.dumpDebug(proto, IME_TARGET_FROM_IME, logLevel); } proto.write(IS_IME_LAYOUT_DRAWN, mIsImeLayoutDrawn); proto.end(token);