diff --git a/core/proto/android/server/windowmanagerservice.proto b/core/proto/android/server/windowmanagerservice.proto index 4af9d75682bbd..8e33561cc91f5 100644 --- a/core/proto/android/server/windowmanagerservice.proto +++ b/core/proto/android/server/windowmanagerservice.proto @@ -211,6 +211,8 @@ message DisplayContentProto { optional DisplayRotationProto display_rotation = 33; optional int32 ime_policy = 34; + + repeated InsetsSourceProviderProto insets_source_providers = 35; } /* represents DisplayArea object */ diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index e934cb8c926a1..5f67b93146387 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -111,6 +111,7 @@ import static com.android.server.wm.DisplayContentProto.IME_POLICY; import static com.android.server.wm.DisplayContentProto.INPUT_METHOD_CONTROL_TARGET; import static com.android.server.wm.DisplayContentProto.INPUT_METHOD_INPUT_TARGET; import static com.android.server.wm.DisplayContentProto.INPUT_METHOD_TARGET; +import static com.android.server.wm.DisplayContentProto.INSETS_SOURCE_PROVIDERS; import static com.android.server.wm.DisplayContentProto.OPENING_APPS; import static com.android.server.wm.DisplayContentProto.RESUMED_ACTIVITY; import static com.android.server.wm.DisplayContentProto.ROOT_DISPLAY_AREA; @@ -3225,10 +3226,15 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp if (mCurrentFocus != null) { mCurrentFocus.dumpDebug(proto, CURRENT_FOCUS, logLevel); } - if (mInsetsStateController != null - && mInsetsStateController.getImeSourceProvider() != null) { - mInsetsStateController.getImeSourceProvider().dumpDebug(proto, - IME_INSETS_SOURCE_PROVIDER, logLevel); + if (mInsetsStateController != null) { + for (@InternalInsetsType int type = 0; type < InsetsState.SIZE; type++) { + final InsetsSourceProvider provider = mInsetsStateController.peekSourceProvider( + type); + if (provider != null) { + provider.dumpDebug(proto, type == ITYPE_IME ? IME_INSETS_SOURCE_PROVIDER : + INSETS_SOURCE_PROVIDERS, logLevel); + } + } } proto.write(IME_POLICY, getImePolicy()); proto.end(token);