Loading core/java/android/view/WindowManagerInternal.java +19 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,25 @@ public abstract class WindowManagerInternal { */ public abstract void clearLastInputMethodWindowForTransition(); /** * Notifies WindowManagerService that the current IME window status is being changed. * * <p>Only {@link com.android.server.InputMethodManagerService} is the expected and tested * caller of this method.</p> * * @param imeToken token to track the active input method. Corresponding IME windows can be * identified by checking {@link android.view.WindowManager.LayoutParams#token}. * Note that there is no guarantee that the corresponding window is already * created * @param imeWindowVisible whether the active IME thinks that its window should be visible or * hidden, no matter how WindowManagerService will react / has reacted * to corresponding API calls. Note that this state is not guaranteed * to be synchronized with state in WindowManagerService. * @param targetWindowToken token to identify the target window that the IME is associated with. */ public abstract void updateInputMethodWindowStatus(IBinder imeToken, boolean imeWindowVisible, IBinder targetWindowToken); /** * Returns true when the hardware keyboard is available. */ Loading services/core/java/com/android/server/InputMethodManagerService.java +4 −1 Original line number Diff line number Diff line Loading @@ -1863,8 +1863,9 @@ public class InputMethodManagerService extends IInputMethodManager.Stub return; } final StartInputInfo info; synchronized (mMethodMap) { final StartInputInfo info = mStartInputMap.get(startInputToken); info = mStartInputMap.get(startInputToken); if (info == null) { throw new InvalidParameterException("Unknown startInputToken=" + startInputToken); } Loading @@ -1872,6 +1873,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub mBackDisposition = backDisposition; updateSystemUiLocked(token, vis, backDisposition); } mWindowManagerInternal.updateInputMethodWindowStatus(info.mImeToken, (vis & InputMethodService.IME_VISIBLE) != 0, info.mTargetWindow); } private void updateSystemUi(IBinder token, int vis, int backDisposition) { Loading services/core/java/com/android/server/wm/WindowManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_CONFIGURATION import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DRAG; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_KEEP_SCREEN_ON; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ORIENTATION; Loading Loading @@ -7913,6 +7914,17 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void updateInputMethodWindowStatus(IBinder imeToken, boolean imeWindowVisible, IBinder targetWindowToken) { // TODO (b/34628091): Use this method to address the window animation issue. if (DEBUG_INPUT_METHOD) { Slog.w(TAG_WM, "updateInputMethodWindowStatus: imeToken=" + imeToken + " imeWindowVisible=" + imeWindowVisible + " targetWindowToken=" + targetWindowToken); } } @Override public boolean isHardKeyboardAvailable() { synchronized (mWindowMap) { Loading Loading
core/java/android/view/WindowManagerInternal.java +19 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,25 @@ public abstract class WindowManagerInternal { */ public abstract void clearLastInputMethodWindowForTransition(); /** * Notifies WindowManagerService that the current IME window status is being changed. * * <p>Only {@link com.android.server.InputMethodManagerService} is the expected and tested * caller of this method.</p> * * @param imeToken token to track the active input method. Corresponding IME windows can be * identified by checking {@link android.view.WindowManager.LayoutParams#token}. * Note that there is no guarantee that the corresponding window is already * created * @param imeWindowVisible whether the active IME thinks that its window should be visible or * hidden, no matter how WindowManagerService will react / has reacted * to corresponding API calls. Note that this state is not guaranteed * to be synchronized with state in WindowManagerService. * @param targetWindowToken token to identify the target window that the IME is associated with. */ public abstract void updateInputMethodWindowStatus(IBinder imeToken, boolean imeWindowVisible, IBinder targetWindowToken); /** * Returns true when the hardware keyboard is available. */ Loading
services/core/java/com/android/server/InputMethodManagerService.java +4 −1 Original line number Diff line number Diff line Loading @@ -1863,8 +1863,9 @@ public class InputMethodManagerService extends IInputMethodManager.Stub return; } final StartInputInfo info; synchronized (mMethodMap) { final StartInputInfo info = mStartInputMap.get(startInputToken); info = mStartInputMap.get(startInputToken); if (info == null) { throw new InvalidParameterException("Unknown startInputToken=" + startInputToken); } Loading @@ -1872,6 +1873,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub mBackDisposition = backDisposition; updateSystemUiLocked(token, vis, backDisposition); } mWindowManagerInternal.updateInputMethodWindowStatus(info.mImeToken, (vis & InputMethodService.IME_VISIBLE) != 0, info.mTargetWindow); } private void updateSystemUi(IBinder token, int vis, int backDisposition) { Loading
services/core/java/com/android/server/wm/WindowManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_CONFIGURATION import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DRAG; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_FOCUS_LIGHT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_KEEP_SCREEN_ON; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_LAYOUT; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_ORIENTATION; Loading Loading @@ -7913,6 +7914,17 @@ public class WindowManagerService extends IWindowManager.Stub } } @Override public void updateInputMethodWindowStatus(IBinder imeToken, boolean imeWindowVisible, IBinder targetWindowToken) { // TODO (b/34628091): Use this method to address the window animation issue. if (DEBUG_INPUT_METHOD) { Slog.w(TAG_WM, "updateInputMethodWindowStatus: imeToken=" + imeToken + " imeWindowVisible=" + imeWindowVisible + " targetWindowToken=" + targetWindowToken); } } @Override public boolean isHardKeyboardAvailable() { synchronized (mWindowMap) { Loading