Loading services/core/java/com/android/server/wm/DisplayContent.java +10 −37 Original line number Diff line number Diff line Loading @@ -696,29 +696,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp */ private @Nullable Pair<IBinder, WindowContainerListener> mImeInputTargetTokenListenerPair; /** * Used by {@link #getImeTarget} to return the IME target which the input method window on * top of for adjusting input method window surface layer Z-Ordering. * * @see #mImeLayeringTarget */ static final int IME_TARGET_LAYERING = 0; /** * Used by {@link #getImeTarget} to return the IME target which controls the IME insets * visibility and animation. * * @see #mImeControlTarget */ static final int IME_TARGET_CONTROL = 2; @IntDef(flag = false, prefix = { "IME_TARGET_" }, value = { IME_TARGET_LAYERING, IME_TARGET_CONTROL, }) @Retention(RetentionPolicy.SOURCE) @interface InputMethodTarget {} /** The surface parent window of the IME container. */ private WindowContainer mInputMethodSurfaceParentWindow; /** The surface parent of the IME container. */ Loading Loading @@ -4324,20 +4301,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return defaultDc; } /** * Returns the corresponding IME insets control target according the IME target type. * * @param type The type of the IME target. * @see #IME_TARGET_LAYERING * @see #IME_TARGET_CONTROL */ InsetsControlTarget getImeTarget(@InputMethodTarget int type) { switch (type) { case IME_TARGET_LAYERING: return mImeLayeringTarget; case IME_TARGET_CONTROL: return mImeControlTarget; default: return null; } /** Returns the window the IME is on top of. */ @Nullable WindowState getImeLayeringTarget() { return mImeLayeringTarget; } /** Returns the target which receives input from the IME. */ Loading @@ -4346,6 +4313,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mImeInputTarget; } /** Returns the target which controls the visibility and animation of the IME window. */ @Nullable InsetsControlTarget getImeControlTarget() { return mImeControlTarget; } // IMPORTANT: When introducing new dependencies in this method, make sure that // changes to those result in RootWindowContainer.updateDisplayImePolicyCache() // being called. Loading services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java +15 −17 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.InsetsSource.ID_IME; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.ImeInsetsSourceProviderProto.IME_TARGET_FROM_IME_IDENTIFIER; import static com.android.server.wm.ImeInsetsSourceProviderProto.INSETS_SOURCE_PROVIDER; import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS; Loading Loading @@ -356,14 +354,15 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { InsetsControlTarget controlTarget = getControlTarget(); if (caller != controlTarget) { if (Flags.refactorInsetsController()) { if (isImeInputTarget(caller)) { reportImeInputTargetStateToControlTarget(caller, controlTarget, statsToken); final var imeInputTarget = mDisplayContent.getImeInputTarget(); if (caller == imeInputTarget) { reportImeInputTargetStateToControlTarget(imeInputTarget, controlTarget, statsToken); } else { ProtoLog.w(WM_DEBUG_IME, "Tried to update client visibility for non-IME input target %s " + "(current target: %s, IME requested: %s)", caller, mDisplayContent.getImeInputTarget(), caller.isRequestedVisible(WindowInsets.Type.ime())); imeInputTarget, caller.isRequestedVisible(WindowInsets.Type.ime())); ImeTracker.forLogging().onFailed(statsToken, ImeTracker.PHASE_SERVER_UPDATE_CLIENT_VISIBILITY); } Loading Loading @@ -678,8 +677,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { // The window is not drawn, or it has pending insets. return false; } final InsetsControlTarget imeLayeringTarget = mDisplayContent.getImeTarget(IME_TARGET_LAYERING); final WindowState imeLayeringTarget = mDisplayContent.getImeLayeringTarget(); if (imeLayeringTarget == null) { // No IME layering target. return false; Loading @@ -689,7 +687,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { // No IME control target. return false; } if (controlTarget != mDisplayContent.getImeTarget(IME_TARGET_CONTROL)) { if (controlTarget != mDisplayContent.getImeControlTarget()) { // The control target does not match the one in DisplayContent. return false; } Loading @@ -703,7 +701,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { } ProtoLog.d(WM_DEBUG_IME, "imeLayeringTarget: %s mImeRequester: %s", imeLayeringTarget.getWindow().getName(), mImeRequester.getWindow() == null imeLayeringTarget.getName(), mImeRequester.getWindow() == null ? mImeRequester : mImeRequester.getWindow().getName()); return isImeLayeringTarget(mImeRequester, imeLayeringTarget) Loading Loading @@ -748,7 +746,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { */ private void logIsScheduledAndReadyToShowIme(boolean aborted) { final var windowState = mWindowContainer != null ? mWindowContainer.asWindowState() : null; final var imeLayeringTarget = mDisplayContent.getImeTarget(IME_TARGET_LAYERING); final var imeLayeringTarget = mDisplayContent.getImeLayeringTarget(); final var controlTarget = getControlTarget(); final var sb = new StringBuilder(); sb.append("showImePostLayout ").append(aborted ? "aborted" : "cancelled"); Loading @@ -767,7 +765,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { if (mImeRequester != null && imeLayeringTarget != null && controlTarget != null) { sb.append("\n"); sb.append("controlTarget == DisplayContent.imeControlTarget: "); sb.append(controlTarget == mDisplayContent.getImeTarget(IME_TARGET_CONTROL)); sb.append(controlTarget == mDisplayContent.getImeControlTarget()); sb.append(", hasPendingControls: "); sb.append(mStateController.hasPendingControls(controlTarget)); final boolean hasLeash = getLeash(controlTarget) != null; Loading Loading @@ -801,8 +799,8 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { * @param imeLayeringTarget the IME layering target. */ private static boolean isImeLayeringTarget(@NonNull InsetsControlTarget target, @NonNull InsetsControlTarget imeLayeringTarget) { return !isWindowClosing(imeLayeringTarget.getWindow()) && target == imeLayeringTarget; @NonNull WindowState imeLayeringTarget) { return !isWindowClosing(imeLayeringTarget) && target == imeLayeringTarget; } /** Loading @@ -814,10 +812,10 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { * @see WindowManagerPolicy#getSubWindowLayerFromTypeLw */ private static boolean isParentOfAndBelowImeLayeringTarget(@NonNull InsetsControlTarget target, @NonNull InsetsControlTarget imeLayeringTarget) { @NonNull WindowState imeLayeringTarget) { return target.getWindow() != null && imeLayeringTarget.getWindow().getParentWindow() == target && imeLayeringTarget.getWindow().mSubLayer > target.getWindow().mSubLayer; && imeLayeringTarget.getParentWindow() == target && imeLayeringTarget.mSubLayer > target.getWindow().mSubLayer; } /** Loading services/core/java/com/android/server/wm/TaskOrganizerController.java +3 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_STARTING_REVEAL; import static com.android.server.wm.WindowOrganizerController.configurationsAreEqualForOrganizer; Loading Loading @@ -985,13 +984,13 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { return null; } final InsetsControlTarget imeLayeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); if (imeLayeringTarget == null || imeLayeringTarget.getWindow() == null) { final WindowState imeLayeringTarget = dc.getImeLayeringTarget(); if (imeLayeringTarget == null) { return null; } // Avoid WindowState#getRootTask() so we don't attribute system windows to a task. final Task task = imeLayeringTarget.getWindow().getTask(); final Task task = imeLayeringTarget.getTask(); if (task == null) { return null; } Loading services/core/java/com/android/server/wm/WindowManagerService.java +9 −11 Original line number Diff line number Diff line Loading @@ -120,8 +120,6 @@ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND_FLOATING; import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_SOLID_COLOR; import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_WALLPAPER; import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.RootWindowContainer.MATCH_ATTACHED_TASK_OR_RECENT_TASKS; import static com.android.server.wm.SensitiveContentPackages.PackageInfo; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; Loading Loading @@ -6923,9 +6921,9 @@ public class WindowManagerService extends IWindowManager.Stub mRoot.dumpTopFocusedDisplayId(pw); mRoot.forAllDisplays(dc -> { final int displayId = dc.getDisplayId(); final InsetsControlTarget imeLayeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); final WindowState imeLayeringTarget = dc.getImeLayeringTarget(); final InputTarget imeInputTarget = dc.getImeInputTarget(); final InsetsControlTarget imeControlTarget = dc.getImeTarget(IME_TARGET_CONTROL); final InsetsControlTarget imeControlTarget = dc.getImeControlTarget(); if (imeLayeringTarget != null) { pw.print(" imeLayeringTarget in display# "); pw.print(displayId); pw.print(' '); pw.println(imeLayeringTarget); Loading Loading @@ -8328,12 +8326,12 @@ public class WindowManagerService extends IWindowManager.Stub // requested to be hidden. dc.getInsetsStateController().getImeSourceProvider().abortShowImePostLayout(); } if (dc != null && dc.getImeTarget(IME_TARGET_CONTROL) != null) { if (dc != null && dc.getImeControlTarget() != null) { ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_WM_HAS_IME_INSETS_CONTROL_TARGET); ProtoLog.d(WM_DEBUG_IME, "hideIme imeControlTarget: %s", dc.getImeTarget(IME_TARGET_CONTROL)); dc.getImeTarget(IME_TARGET_CONTROL).hideInsets(WindowInsets.Type.ime(), dc.getImeControlTarget()); dc.getImeControlTarget().hideInsets(WindowInsets.Type.ime(), true /* fromIme */, statsToken); } else { ImeTracker.forLogging().onFailed(statsToken, Loading Loading @@ -8534,16 +8532,16 @@ public class WindowManagerService extends IWindowManager.Stub requestWindowName = requestWin != null ? requestWin.getName() : "null"; final DisplayContent dc = mRoot.getDisplayContent(displayId); if (dc != null) { final InsetsControlTarget controlTarget = dc.getImeTarget(IME_TARGET_CONTROL); final InsetsControlTarget controlTarget = dc.getImeControlTarget(); if (controlTarget != null) { final WindowState w = InsetsControlTarget.asWindowOrNull(controlTarget); imeControlTargetName = w != null ? w.getName() : controlTarget.toString(); } else { imeControlTargetName = "null"; } final InsetsControlTarget layeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); imeLayeringTargetName = layeringTarget != null ? layeringTarget.getWindow().getName() : "null"; final WindowState layeringTarget = dc.getImeLayeringTarget(); imeLayeringTargetName = layeringTarget != null ? layeringTarget.getName() : "null"; final SurfaceControl imeParent = dc.mInputMethodSurfaceParent; imeSurfaceParentName = imeParent != null ? imeParent.toString() : "null"; if (show) { Loading services/core/java/com/android/server/wm/WindowState.java +2 −4 Original line number Diff line number Diff line Loading @@ -118,7 +118,6 @@ import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE; import static com.android.server.wm.AnimationSpecProto.MOVE; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.DisplayContent.logsGestureExclusionRestrictions; import static com.android.server.wm.IdentifierProto.HASH_CODE; import static com.android.server.wm.IdentifierProto.TITLE; Loading Loading @@ -5430,7 +5429,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } boolean isImeLayeringTarget() { return getDisplayContent().getImeTarget(IME_TARGET_LAYERING) == this; return mDisplayContent.getImeLayeringTarget() == this; } /** Loading @@ -5443,8 +5442,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP @Nullable WindowState getImeLayeringTarget() { final InsetsControlTarget target = getDisplayContent().getImeTarget(IME_TARGET_LAYERING); return target != null ? target.getWindow() : null; return mDisplayContent.getImeLayeringTarget(); } @Nullable Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +10 −37 Original line number Diff line number Diff line Loading @@ -696,29 +696,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp */ private @Nullable Pair<IBinder, WindowContainerListener> mImeInputTargetTokenListenerPair; /** * Used by {@link #getImeTarget} to return the IME target which the input method window on * top of for adjusting input method window surface layer Z-Ordering. * * @see #mImeLayeringTarget */ static final int IME_TARGET_LAYERING = 0; /** * Used by {@link #getImeTarget} to return the IME target which controls the IME insets * visibility and animation. * * @see #mImeControlTarget */ static final int IME_TARGET_CONTROL = 2; @IntDef(flag = false, prefix = { "IME_TARGET_" }, value = { IME_TARGET_LAYERING, IME_TARGET_CONTROL, }) @Retention(RetentionPolicy.SOURCE) @interface InputMethodTarget {} /** The surface parent window of the IME container. */ private WindowContainer mInputMethodSurfaceParentWindow; /** The surface parent of the IME container. */ Loading Loading @@ -4324,20 +4301,10 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return defaultDc; } /** * Returns the corresponding IME insets control target according the IME target type. * * @param type The type of the IME target. * @see #IME_TARGET_LAYERING * @see #IME_TARGET_CONTROL */ InsetsControlTarget getImeTarget(@InputMethodTarget int type) { switch (type) { case IME_TARGET_LAYERING: return mImeLayeringTarget; case IME_TARGET_CONTROL: return mImeControlTarget; default: return null; } /** Returns the window the IME is on top of. */ @Nullable WindowState getImeLayeringTarget() { return mImeLayeringTarget; } /** Returns the target which receives input from the IME. */ Loading @@ -4346,6 +4313,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return mImeInputTarget; } /** Returns the target which controls the visibility and animation of the IME window. */ @Nullable InsetsControlTarget getImeControlTarget() { return mImeControlTarget; } // IMPORTANT: When introducing new dependencies in this method, make sure that // changes to those result in RootWindowContainer.updateDisplayImePolicyCache() // being called. Loading
services/core/java/com/android/server/wm/ImeInsetsSourceProvider.java +15 −17 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.view.InsetsSource.ID_IME; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_IME; import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.ImeInsetsSourceProviderProto.IME_TARGET_FROM_IME_IDENTIFIER; import static com.android.server.wm.ImeInsetsSourceProviderProto.INSETS_SOURCE_PROVIDER; import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS; Loading Loading @@ -356,14 +354,15 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { InsetsControlTarget controlTarget = getControlTarget(); if (caller != controlTarget) { if (Flags.refactorInsetsController()) { if (isImeInputTarget(caller)) { reportImeInputTargetStateToControlTarget(caller, controlTarget, statsToken); final var imeInputTarget = mDisplayContent.getImeInputTarget(); if (caller == imeInputTarget) { reportImeInputTargetStateToControlTarget(imeInputTarget, controlTarget, statsToken); } else { ProtoLog.w(WM_DEBUG_IME, "Tried to update client visibility for non-IME input target %s " + "(current target: %s, IME requested: %s)", caller, mDisplayContent.getImeInputTarget(), caller.isRequestedVisible(WindowInsets.Type.ime())); imeInputTarget, caller.isRequestedVisible(WindowInsets.Type.ime())); ImeTracker.forLogging().onFailed(statsToken, ImeTracker.PHASE_SERVER_UPDATE_CLIENT_VISIBILITY); } Loading Loading @@ -678,8 +677,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { // The window is not drawn, or it has pending insets. return false; } final InsetsControlTarget imeLayeringTarget = mDisplayContent.getImeTarget(IME_TARGET_LAYERING); final WindowState imeLayeringTarget = mDisplayContent.getImeLayeringTarget(); if (imeLayeringTarget == null) { // No IME layering target. return false; Loading @@ -689,7 +687,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { // No IME control target. return false; } if (controlTarget != mDisplayContent.getImeTarget(IME_TARGET_CONTROL)) { if (controlTarget != mDisplayContent.getImeControlTarget()) { // The control target does not match the one in DisplayContent. return false; } Loading @@ -703,7 +701,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { } ProtoLog.d(WM_DEBUG_IME, "imeLayeringTarget: %s mImeRequester: %s", imeLayeringTarget.getWindow().getName(), mImeRequester.getWindow() == null imeLayeringTarget.getName(), mImeRequester.getWindow() == null ? mImeRequester : mImeRequester.getWindow().getName()); return isImeLayeringTarget(mImeRequester, imeLayeringTarget) Loading Loading @@ -748,7 +746,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { */ private void logIsScheduledAndReadyToShowIme(boolean aborted) { final var windowState = mWindowContainer != null ? mWindowContainer.asWindowState() : null; final var imeLayeringTarget = mDisplayContent.getImeTarget(IME_TARGET_LAYERING); final var imeLayeringTarget = mDisplayContent.getImeLayeringTarget(); final var controlTarget = getControlTarget(); final var sb = new StringBuilder(); sb.append("showImePostLayout ").append(aborted ? "aborted" : "cancelled"); Loading @@ -767,7 +765,7 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { if (mImeRequester != null && imeLayeringTarget != null && controlTarget != null) { sb.append("\n"); sb.append("controlTarget == DisplayContent.imeControlTarget: "); sb.append(controlTarget == mDisplayContent.getImeTarget(IME_TARGET_CONTROL)); sb.append(controlTarget == mDisplayContent.getImeControlTarget()); sb.append(", hasPendingControls: "); sb.append(mStateController.hasPendingControls(controlTarget)); final boolean hasLeash = getLeash(controlTarget) != null; Loading Loading @@ -801,8 +799,8 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { * @param imeLayeringTarget the IME layering target. */ private static boolean isImeLayeringTarget(@NonNull InsetsControlTarget target, @NonNull InsetsControlTarget imeLayeringTarget) { return !isWindowClosing(imeLayeringTarget.getWindow()) && target == imeLayeringTarget; @NonNull WindowState imeLayeringTarget) { return !isWindowClosing(imeLayeringTarget) && target == imeLayeringTarget; } /** Loading @@ -814,10 +812,10 @@ final class ImeInsetsSourceProvider extends InsetsSourceProvider { * @see WindowManagerPolicy#getSubWindowLayerFromTypeLw */ private static boolean isParentOfAndBelowImeLayeringTarget(@NonNull InsetsControlTarget target, @NonNull InsetsControlTarget imeLayeringTarget) { @NonNull WindowState imeLayeringTarget) { return target.getWindow() != null && imeLayeringTarget.getWindow().getParentWindow() == target && imeLayeringTarget.getWindow().mSubLayer > target.getWindow().mSubLayer; && imeLayeringTarget.getParentWindow() == target && imeLayeringTarget.mSubLayer > target.getWindow().mSubLayer; } /** Loading
services/core/java/com/android/server/wm/TaskOrganizerController.java +3 −4 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION; import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_ORGANIZER; import static com.android.server.wm.ActivityTaskManagerService.enforceTaskPermission; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_STARTING_REVEAL; import static com.android.server.wm.WindowOrganizerController.configurationsAreEqualForOrganizer; Loading Loading @@ -985,13 +984,13 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { return null; } final InsetsControlTarget imeLayeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); if (imeLayeringTarget == null || imeLayeringTarget.getWindow() == null) { final WindowState imeLayeringTarget = dc.getImeLayeringTarget(); if (imeLayeringTarget == null) { return null; } // Avoid WindowState#getRootTask() so we don't attribute system windows to a task. final Task task = imeLayeringTarget.getWindow().getTask(); final Task task = imeLayeringTarget.getTask(); if (task == null) { return null; } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +9 −11 Original line number Diff line number Diff line Loading @@ -120,8 +120,6 @@ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_ import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND_FLOATING; import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_SOLID_COLOR; import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_BACKGROUND_WALLPAPER; import static com.android.server.wm.DisplayContent.IME_TARGET_CONTROL; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.RootWindowContainer.MATCH_ATTACHED_TASK_OR_RECENT_TASKS; import static com.android.server.wm.SensitiveContentPackages.PackageInfo; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; Loading Loading @@ -6923,9 +6921,9 @@ public class WindowManagerService extends IWindowManager.Stub mRoot.dumpTopFocusedDisplayId(pw); mRoot.forAllDisplays(dc -> { final int displayId = dc.getDisplayId(); final InsetsControlTarget imeLayeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); final WindowState imeLayeringTarget = dc.getImeLayeringTarget(); final InputTarget imeInputTarget = dc.getImeInputTarget(); final InsetsControlTarget imeControlTarget = dc.getImeTarget(IME_TARGET_CONTROL); final InsetsControlTarget imeControlTarget = dc.getImeControlTarget(); if (imeLayeringTarget != null) { pw.print(" imeLayeringTarget in display# "); pw.print(displayId); pw.print(' '); pw.println(imeLayeringTarget); Loading Loading @@ -8328,12 +8326,12 @@ public class WindowManagerService extends IWindowManager.Stub // requested to be hidden. dc.getInsetsStateController().getImeSourceProvider().abortShowImePostLayout(); } if (dc != null && dc.getImeTarget(IME_TARGET_CONTROL) != null) { if (dc != null && dc.getImeControlTarget() != null) { ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_WM_HAS_IME_INSETS_CONTROL_TARGET); ProtoLog.d(WM_DEBUG_IME, "hideIme imeControlTarget: %s", dc.getImeTarget(IME_TARGET_CONTROL)); dc.getImeTarget(IME_TARGET_CONTROL).hideInsets(WindowInsets.Type.ime(), dc.getImeControlTarget()); dc.getImeControlTarget().hideInsets(WindowInsets.Type.ime(), true /* fromIme */, statsToken); } else { ImeTracker.forLogging().onFailed(statsToken, Loading Loading @@ -8534,16 +8532,16 @@ public class WindowManagerService extends IWindowManager.Stub requestWindowName = requestWin != null ? requestWin.getName() : "null"; final DisplayContent dc = mRoot.getDisplayContent(displayId); if (dc != null) { final InsetsControlTarget controlTarget = dc.getImeTarget(IME_TARGET_CONTROL); final InsetsControlTarget controlTarget = dc.getImeControlTarget(); if (controlTarget != null) { final WindowState w = InsetsControlTarget.asWindowOrNull(controlTarget); imeControlTargetName = w != null ? w.getName() : controlTarget.toString(); } else { imeControlTargetName = "null"; } final InsetsControlTarget layeringTarget = dc.getImeTarget(IME_TARGET_LAYERING); imeLayeringTargetName = layeringTarget != null ? layeringTarget.getWindow().getName() : "null"; final WindowState layeringTarget = dc.getImeLayeringTarget(); imeLayeringTargetName = layeringTarget != null ? layeringTarget.getName() : "null"; final SurfaceControl imeParent = dc.mInputMethodSurfaceParent; imeSurfaceParentName = imeParent != null ? imeParent.toString() : "null"; if (show) { Loading
services/core/java/com/android/server/wm/WindowState.java +2 −4 Original line number Diff line number Diff line Loading @@ -118,7 +118,6 @@ import static com.android.server.policy.WindowManagerPolicy.TRANSIT_ENTER; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_EXIT; import static com.android.server.policy.WindowManagerPolicy.TRANSIT_PREVIEW_DONE; import static com.android.server.wm.AnimationSpecProto.MOVE; import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING; import static com.android.server.wm.DisplayContent.logsGestureExclusionRestrictions; import static com.android.server.wm.IdentifierProto.HASH_CODE; import static com.android.server.wm.IdentifierProto.TITLE; Loading Loading @@ -5430,7 +5429,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP } boolean isImeLayeringTarget() { return getDisplayContent().getImeTarget(IME_TARGET_LAYERING) == this; return mDisplayContent.getImeLayeringTarget() == this; } /** Loading @@ -5443,8 +5442,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP @Nullable WindowState getImeLayeringTarget() { final InsetsControlTarget target = getDisplayContent().getImeTarget(IME_TARGET_LAYERING); return target != null ? target.getWindow() : null; return mDisplayContent.getImeLayeringTarget(); } @Nullable Loading