summaryrefslogtreecommitdiff
path: root/core/java/android/inputmethodservice/IInputMethodWrapper.java
diff options
context:
space:
mode:
authorTarandeep Singh <tarandeep@google.com>2020-01-15 13:58:29 -0800
committerTarandeep Singh <tarandeep@google.com>2020-01-21 17:02:22 -0800
commitbb0e2f753b4b6e37ab0411499c25661abfbf6553 (patch)
treea270517c80929b8e0dd3bc33aba120b0591b87ee /core/java/android/inputmethodservice/IInputMethodWrapper.java
parent1dc6ec5bf5503b36d0430a09aa94dd00677efcf5 (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.java13
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