Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2037677e authored by Taran Singh's avatar Taran Singh Committed by Automerger Merge Worker
Browse files

Merge "Don't allow pinned window to be IME target" into rvc-dev am: 218e017d...

Merge "Don't allow pinned window to be IME target" into rvc-dev am: 218e017d am: 11f5d41c am: 39eab599

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11875421

Change-Id: Ibcc36e0d43f28967e07afdca7d26eae78e48f108
parents d661f251 39eab599
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2339,6 +2339,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
            return false;
        }

        if (inPinnedWindowingMode()) {
            return false;
        }

        final boolean windowsAreFocusable = mActivityRecord == null || mActivityRecord.windowsAreFocusable();
        if (!windowsAreFocusable) {
            // This window can't be an IME target if the app's windows should not be focusable.
+7 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.server.wm;

import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY;
import static android.hardware.camera2.params.OutputConfiguration.ROTATION_90;
import static android.view.InsetsState.ITYPE_STATUS_BAR;
@@ -244,6 +245,12 @@ public class WindowStateTests extends WindowTestsBase {
        appWindow.mAttrs.flags &= ~FLAG_NOT_FOCUSABLE;
        assertTrue(appWindow.canBeImeTarget());

        // Verify PINNED windows can't be IME target.
        int initialMode = appWindow.mActivityRecord.getWindowingMode();
        appWindow.mActivityRecord.setWindowingMode(WINDOWING_MODE_PINNED);
        assertFalse(appWindow.canBeImeTarget());
        appWindow.mActivityRecord.setWindowingMode(initialMode);

        // Make windows invisible
        appWindow.hideLw(false /* doAnimation */);
        imeWindow.hideLw(false /* doAnimation */);