diff options
| author | Tarandeep Singh <tarandeep@google.com> | 2020-01-15 13:58:29 -0800 |
|---|---|---|
| committer | Tarandeep Singh <tarandeep@google.com> | 2020-01-21 17:02:22 -0800 |
| commit | bb0e2f753b4b6e37ab0411499c25661abfbf6553 (patch) | |
| tree | a270517c80929b8e0dd3bc33aba120b0591b87ee /core/java/android/inputmethodservice/IInputMethodWrapper.java | |
| parent | 1dc6ec5bf5503b36d0430a09aa94dd00677efcf5 (diff) | |
Pipe windowToken of window requesting IME
It takes time from when IME is requested to the time when IME is ready
to be shown. When its ready to be shown, we need to make sure that
window that requested IME is still the IME target in DisplayContent. The
only realistic way of knowing originating window is passing windowToken
from IMM API.
Bug: 111084606
Test: CtsInputMethodTestCases
Change-Id: Ia49e23dd077d264a58d28a7b8acffde54b7db187
Diffstat (limited to 'core/java/android/inputmethodservice/IInputMethodWrapper.java')
| -rw-r--r-- | core/java/android/inputmethodservice/IInputMethodWrapper.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 4d5fabbae961..2a441de067c6 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -221,7 +221,9 @@ class IInputMethodWrapper extends IInputMethod.Stub inputMethod.revokeSession((InputMethodSession)msg.obj); return; case DO_SHOW_SOFT_INPUT: - inputMethod.showSoftInput(msg.arg1, (ResultReceiver)msg.obj); + SomeArgs args = (SomeArgs)msg.obj; + inputMethod.showSoftInputWithToken( + msg.arg1, (ResultReceiver) args.arg2, (IBinder) args.arg1); return; case DO_HIDE_SOFT_INPUT: inputMethod.hideSoftInput(msg.arg1, (ResultReceiver)msg.obj); @@ -230,10 +232,11 @@ class IInputMethodWrapper extends IInputMethod.Stub inputMethod.changeInputMethodSubtype((InputMethodSubtype)msg.obj); return; case DO_CREATE_INLINE_SUGGESTIONS_REQUEST: - SomeArgs args = (SomeArgs) msg.obj; + args = (SomeArgs) msg.obj; inputMethod.onCreateInlineSuggestionsRequest((ComponentName) args.arg1, (AutofillId) args.arg2, (IInlineSuggestionsRequestCallback) args.arg3); return; + } Log.w(TAG, "Unhandled message code: " + msg.what); } @@ -371,9 +374,9 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override - public void showSoftInput(int flags, ResultReceiver resultReceiver) { - mCaller.executeOrSendMessage(mCaller.obtainMessageIO(DO_SHOW_SOFT_INPUT, - flags, resultReceiver)); + public void showSoftInput(IBinder showInputToken, int flags, ResultReceiver resultReceiver) { + mCaller.executeOrSendMessage(mCaller.obtainMessageIOO(DO_SHOW_SOFT_INPUT, + flags, showInputToken, resultReceiver)); } @BinderThread |
