diff --git a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java index 9a7ccc64efcd1..48373148ccec1 100644 --- a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java @@ -36,9 +36,9 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.InputMethodSession; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.os.HandlerCaller; import com.android.internal.os.SomeArgs; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodSession; class IInputMethodSessionWrapper extends IInputMethodSession.Stub @@ -144,7 +144,7 @@ class IInputMethodSessionWrapper extends IInputMethodSession.Stub final SomeArgs args = (SomeArgs) msg.obj; try { mInputMethodSession.invalidateInputInternal((EditorInfo) args.arg1, - (IInputContext) args.arg2, msg.arg1); + (IRemoteInputConnection) args.arg2, msg.arg1); } finally { args.recycle(); } @@ -221,9 +221,10 @@ class IInputMethodSessionWrapper extends IInputMethodSession.Stub } @Override - public void invalidateInput(EditorInfo editorInfo, IInputContext inputContext, int sessionId) { + public void invalidateInput(EditorInfo editorInfo, IRemoteInputConnection inputConnection, + int sessionId) { mCaller.executeOrSendMessage(mCaller.obtainMessageIOO( - DO_INVALIDATE_INPUT, sessionId, editorInfo, inputContext)); + DO_INVALIDATE_INPUT, sessionId, editorInfo, inputConnection)); } @Override diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 3f49b73a78fcb..bb3a19d58499c 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -41,11 +41,11 @@ import android.window.ImeOnBackInvokedDispatcher; import com.android.internal.inputmethod.CancellationGroup; import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.inputmethod.InputMethodNavButtonFlags; import com.android.internal.os.HandlerCaller; import com.android.internal.os.SomeArgs; import com.android.internal.view.IInlineSuggestionsRequestCallback; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethod; import com.android.internal.view.IInputMethodSession; import com.android.internal.view.IInputSessionCallback; @@ -98,7 +98,7 @@ class IInputMethodWrapper extends IInputMethod.Stub * *
This field must be set and cleared only from the binder thread(s), where the system * guarantees that {@link #bindInput(InputBinding)}, - * {@link #startInput(IBinder, IInputContext, int, EditorInfo, boolean, boolean)}, and + * {@link #startInput(IBinder, IRemoteInputConnection, int, EditorInfo, boolean, boolean)}, and * {@link #unbindInput()} are called with the same order as the original calls * in {@link com.android.server.inputmethod.InputMethodManagerService}. * See {@link IBinder#FLAG_ONEWAY} for detailed semantics.
@@ -195,7 +195,8 @@ class IInputMethodWrapper extends IInputMethod.Stub case DO_START_INPUT: { final SomeArgs args = (SomeArgs) msg.obj; final IBinder startInputToken = (IBinder) args.arg1; - final IInputContext inputContext = (IInputContext) ((SomeArgs) args.arg2).arg1; + final IRemoteInputConnection remoteIc = + (IRemoteInputConnection) ((SomeArgs) args.arg2).arg1; final ImeOnBackInvokedDispatcher imeDispatcher = (ImeOnBackInvokedDispatcher) ((SomeArgs) args.arg2).arg2; final EditorInfo info = (EditorInfo) args.arg3; @@ -203,8 +204,8 @@ class IInputMethodWrapper extends IInputMethod.Stub final boolean restarting = args.argi5 == 1; @InputMethodNavButtonFlags final int navButtonFlags = args.argi6; - final InputConnection ic = inputContext != null - ? new RemoteInputConnection(mTarget, inputContext, cancellationGroup) + final InputConnection ic = remoteIc != null + ? new RemoteInputConnection(mTarget, remoteIc, cancellationGroup) : null; info.makeCompatible(mTargetSdkVersion); inputMethod.dispatchStartInputWithToken(ic, info, restarting, startInputToken, @@ -329,7 +330,8 @@ class IInputMethodWrapper extends IInputMethod.Stub } mCancellationGroup = new CancellationGroup(); InputConnection ic = new RemoteInputConnection(mTarget, - IInputContext.Stub.asInterface(binding.getConnectionToken()), mCancellationGroup); + IRemoteInputConnection.Stub.asInterface(binding.getConnectionToken()), + mCancellationGroup); InputBinding nu = new InputBinding(ic, binding); mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_SET_INPUT_CONTEXT, nu)); } @@ -349,7 +351,7 @@ class IInputMethodWrapper extends IInputMethod.Stub @BinderThread @Override - public void startInput(IBinder startInputToken, IInputContext inputContext, + public void startInput(IBinder startInputToken, IRemoteInputConnection inputConnection, EditorInfo attribute, boolean restarting, @InputMethodNavButtonFlags int navButtonFlags, @NonNull ImeOnBackInvokedDispatcher imeDispatcher) { @@ -358,7 +360,7 @@ class IInputMethodWrapper extends IInputMethod.Stub mCancellationGroup = new CancellationGroup(); } SomeArgs args = SomeArgs.obtain(); - args.arg1 = inputContext; + args.arg1 = inputConnection; args.arg2 = imeDispatcher; mCaller.executeOrSendMessage(mCaller.obtainMessageOOOOII(DO_START_INPUT, startInputToken, args, attribute, mCancellationGroup, restarting ? 1 : 0, navButtonFlags)); diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 04f39a0e986a9..29bf3e7b4fd31 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -143,6 +143,7 @@ import android.window.WindowMetricsHelper; import com.android.internal.annotations.GuardedBy; import com.android.internal.inputmethod.IInputContentUriToken; import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.inputmethod.ImeTracing; import com.android.internal.inputmethod.InputMethodNavButtonFlags; import com.android.internal.inputmethod.InputMethodPrivilegedOperations; @@ -150,7 +151,6 @@ import com.android.internal.inputmethod.InputMethodPrivilegedOperationsRegistry; import com.android.internal.inputmethod.SoftInputShowHideReason; import com.android.internal.util.RingBuffer; import com.android.internal.view.IInlineSuggestionsRequestCallback; -import com.android.internal.view.IInputContext; import com.android.internal.view.InlineSuggestionsRequestInfo; import java.io.FileDescriptor; @@ -1255,10 +1255,10 @@ public class InputMethodService extends AbstractInputMethodService { */ @Override public final void invalidateInputInternal(@NonNull EditorInfo editorInfo, - @NonNull IInputContext inputContext, int sessionId) { + @NonNull IRemoteInputConnection inputConnection, int sessionId) { if (mStartedInputConnection instanceof RemoteInputConnection) { final RemoteInputConnection ric = (RemoteInputConnection) mStartedInputConnection; - if (!ric.isSameConnection(inputContext)) { + if (!ric.isSameConnection(inputConnection)) { // This is not an error, and can be safely ignored. if (DEBUG) { Log.d(TAG, "ignoring invalidateInput() due to context mismatch."); diff --git a/core/java/android/inputmethodservice/RemoteInputConnection.java b/core/java/android/inputmethodservice/RemoteInputConnection.java index 86e59e9dcf2f5..d13da3fb3ce22 100644 --- a/core/java/android/inputmethodservice/RemoteInputConnection.java +++ b/core/java/android/inputmethodservice/RemoteInputConnection.java @@ -35,10 +35,10 @@ import android.view.inputmethod.TextAttribute; import com.android.internal.inputmethod.CancellationGroup; import com.android.internal.inputmethod.CompletableFutureUtil; -import com.android.internal.inputmethod.IInputContextInvoker; +import com.android.internal.inputmethod.IRemoteInputConnection; +import com.android.internal.inputmethod.IRemoteInputConnectionInvoker; import com.android.internal.inputmethod.ImeTracing; import com.android.internal.inputmethod.InputConnectionProtoDumper; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethod; import java.lang.ref.WeakReference; @@ -51,8 +51,8 @@ import java.util.concurrent.CompletableFuture; * {@link com.android.internal.inputmethod.RemoteInputConnectionImpl} running on the IME client * (editor app) process then waits replies as needed. * - *See also {@link IInputContext} for the actual {@link android.os.Binder} IPC protocols under - * the hood.
+ *See also {@link IRemoteInputConnection} for the actual {@link android.os.Binder} IPC protocols + * under the hood.
*/ final class RemoteInputConnection implements InputConnection { private static final String TAG = "RemoteInputConnection"; @@ -60,7 +60,7 @@ final class RemoteInputConnection implements InputConnection { private static final int MAX_WAIT_TIME_MILLIS = 2000; @NonNull - private final IInputContextInvoker mInvoker; + private final IRemoteInputConnectionInvoker mInvoker; private static final class InputMethodServiceInternalHolder { @NonNull @@ -97,15 +97,15 @@ final class RemoteInputConnection implements InputConnection { RemoteInputConnection( @NonNull WeakReferenceThis ID is considered to belong to an implicit namespace defined for each - * {@link com.android.internal.view.IInputContext} instance. Uniqueness of the session ID - * across multiple instances of {@link com.android.internal.view.IInputContext} is not - * guaranteed unless explicitly noted in a higher layer.
+ * {@link com.android.internal.inputmethod.IRemoteInputConnection} instance. Uniqueness of the + * session ID across multiple instances of + * {@link com.android.internal.inputmethod.IRemoteInputConnection} is not guaranteed unless + * explicitly noted in a higher layer. */ public final int mSessionId; diff --git a/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java index f21cee9971638..cb18ccc9788a1 100644 --- a/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java +++ b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java @@ -49,7 +49,6 @@ import android.view.inputmethod.TextSnapshot; import com.android.internal.annotations.GuardedBy; import com.android.internal.infra.AndroidFuture; -import com.android.internal.view.IInputContext; import java.lang.annotation.Retention; import java.lang.ref.WeakReference; @@ -62,10 +61,10 @@ import java.util.function.Supplier; * Takes care of remote method invocations of {@link InputConnection} in the IME client side. * *{@link android.inputmethodservice.RemoteInputConnection} code is executed in the IME process. - * It makes IInputContext binder calls under the hood. {@link RemoteInputConnectionImpl} receives - * {@link IInputContext} binder calls in the IME client (editor app) process, and forwards them to - * {@link InputConnection} that the IME client provided, on the {@link Looper} associated to the - * {@link InputConnection}.
+ * It makes {@link IRemoteInputConnection} binder calls under the hood. + * {@link RemoteInputConnectionImpl} receives {@link IRemoteInputConnection} binder calls in the IME + * client (editor app) process, and forwards them to {@link InputConnection} that the IME client + * provided, on the {@link Looper} associated to the {@link InputConnection}. * *{@link com.android.internal.inputmethod.RemoteAccessibilityInputConnection} code is executed * in the {@link android.accessibilityservice.AccessibilityService} process. It makes @@ -74,7 +73,7 @@ import java.util.function.Supplier; * (editor app) process, and forwards them to {@link InputConnection} that the IME client provided, * on the {@link Looper} associated to the {@link InputConnection}.
*/ -public final class RemoteInputConnectionImpl extends IInputContext.Stub { +public final class RemoteInputConnectionImpl extends IRemoteInputConnection.Stub { private static final String TAG = "RemoteInputConnectionImpl"; private static final boolean DEBUG = false; diff --git a/core/java/com/android/internal/view/IInputMethod.aidl b/core/java/com/android/internal/view/IInputMethod.aidl index 4e2526a281b37..d3b575af87429 100644 --- a/core/java/com/android/internal/view/IInputMethod.aidl +++ b/core/java/com/android/internal/view/IInputMethod.aidl @@ -25,8 +25,8 @@ import android.view.inputmethod.InputBinding; import android.view.inputmethod.InputMethodSubtype; import android.window.ImeOnBackInvokedDispatcher; import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.view.IInlineSuggestionsRequestCallback; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodSession; import com.android.internal.view.IInputSessionCallback; import com.android.internal.view.InlineSuggestionsRequestInfo; @@ -47,7 +47,7 @@ oneway interface IInputMethod { void unbindInput(); - void startInput(in IBinder startInputToken, in IInputContext inputContext, + void startInput(in IBinder startInputToken, in IRemoteInputConnection inputConnection, in EditorInfo attribute, boolean restarting, int navigationBarFlags, in ImeOnBackInvokedDispatcher imeDispatcher); diff --git a/core/java/com/android/internal/view/IInputMethodManager.aidl b/core/java/com/android/internal/view/IInputMethodManager.aidl index 3f93fb1a4bac1..9b19e021cc4fa 100644 --- a/core/java/com/android/internal/view/IInputMethodManager.aidl +++ b/core/java/com/android/internal/view/IInputMethodManager.aidl @@ -24,15 +24,15 @@ import android.window.ImeOnBackInvokedDispatcher; import com.android.internal.inputmethod.IInputMethodClient; import com.android.internal.inputmethod.IRemoteAccessibilityInputConnection; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.inputmethod.InputBindResult; -import com.android.internal.view.IInputContext; /** * Public interface to the global input method manager, used by all client * applications. */ interface IInputMethodManager { - void addClient(in IInputMethodClient client, in IInputContext inputContext, + void addClient(in IInputMethodClient client, in IRemoteInputConnection inputmethod, int untrustedDisplayId); // TODO: Use ParceledListSlice instead @@ -56,7 +56,7 @@ interface IInputMethodManager { in IInputMethodClient client, in IBinder windowToken, /* @StartInputFlags */ int startInputFlags, /* @android.view.WindowManager.LayoutParams.SoftInputModeFlags */ int softInputMode, - int windowFlags, in EditorInfo attribute, in IInputContext inputContext, + int windowFlags, in EditorInfo attribute, in IRemoteInputConnection inputConnection, in IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection, int unverifiedTargetSdkVersion, in ImeOnBackInvokedDispatcher imeDispatcher); diff --git a/core/java/com/android/internal/view/IInputMethodSession.aidl b/core/java/com/android/internal/view/IInputMethodSession.aidl index d505c1995deff..2f8b3f5108bb6 100644 --- a/core/java/com/android/internal/view/IInputMethodSession.aidl +++ b/core/java/com/android/internal/view/IInputMethodSession.aidl @@ -25,7 +25,7 @@ import android.view.inputmethod.CursorAnchorInfo; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.ExtractedText; -import com.android.internal.view.IInputContext; +import com.android.internal.inputmethod.IRemoteInputConnection; /** * Sub-interface of IInputMethod which is safe to give to client applications. @@ -54,5 +54,6 @@ oneway interface IInputMethodSession { void finishInput(); - void invalidateInput(in EditorInfo editorInfo, in IInputContext inputContext, int sessionId); + void invalidateInput(in EditorInfo editorInfo, in IRemoteInputConnection inputConnection, + int sessionId); } diff --git a/services/core/java/com/android/server/inputmethod/IInputMethodInvoker.java b/services/core/java/com/android/server/inputmethod/IInputMethodInvoker.java index 1703310320869..c719fb5009a81 100644 --- a/services/core/java/com/android/server/inputmethod/IInputMethodInvoker.java +++ b/services/core/java/com/android/server/inputmethod/IInputMethodInvoker.java @@ -33,9 +33,9 @@ import android.view.inputmethod.InputMethodSubtype; import android.window.ImeOnBackInvokedDispatcher; import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.inputmethod.InputMethodNavButtonFlags; import com.android.internal.view.IInlineSuggestionsRequestCallback; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethod; import com.android.internal.view.IInputMethodSession; import com.android.internal.view.IInputSessionCallback; @@ -148,11 +148,11 @@ final class IInputMethodInvoker { } @AnyThread - void startInput(IBinder startInputToken, IInputContext inputContext, EditorInfo attribute, - boolean restarting, @InputMethodNavButtonFlags int navButtonFlags, + void startInput(IBinder startInputToken, IRemoteInputConnection inputConnection, + EditorInfo attribute, boolean restarting, @InputMethodNavButtonFlags int navButtonFlags, @NonNull ImeOnBackInvokedDispatcher imeDispatcher) { try { - mTarget.startInput(startInputToken, inputContext, attribute, restarting, + mTarget.startInput(startInputToken, inputConnection, attribute, restarting, navButtonFlags, imeDispatcher); } catch (RemoteException e) { logRemoteException(e); diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 5d72414fb1711..8b025479b080c 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -161,6 +161,7 @@ import com.android.internal.inputmethod.IInputContentUriToken; import com.android.internal.inputmethod.IInputMethodClient; import com.android.internal.inputmethod.IInputMethodPrivilegedOperations; import com.android.internal.inputmethod.IRemoteAccessibilityInputConnection; +import com.android.internal.inputmethod.IRemoteInputConnection; import com.android.internal.inputmethod.ImeTracing; import com.android.internal.inputmethod.InputBindResult; import com.android.internal.inputmethod.InputMethodDebug; @@ -177,7 +178,6 @@ import com.android.internal.util.ConcurrentUtils; import com.android.internal.util.DumpUtils; import com.android.internal.view.IInlineSuggestionsRequestCallback; import com.android.internal.view.IInlineSuggestionsResponseCallback; -import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethodManager; import com.android.internal.view.IInputMethodSession; import com.android.internal.view.IInputSessionCallback; @@ -470,7 +470,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub static final class ClientState { final IInputMethodClient client; - final IInputContext inputContext; + final IRemoteInputConnection fallbackInputConnection; final int uid; final int pid; final int selfReportedDisplayId; @@ -489,15 +489,15 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub + " pid=" + pid + " displayId=" + selfReportedDisplayId + "}"; } - ClientState(IInputMethodClient _client, IInputContext _inputContext, + ClientState(IInputMethodClient _client, IRemoteInputConnection _fallbackInputConnection, int _uid, int _pid, int _selfReportedDisplayId, ClientDeathRecipient _clientDeathRecipient) { client = _client; - inputContext = _inputContext; + fallbackInputConnection = _fallbackInputConnection; uid = _uid; pid = _pid; selfReportedDisplayId = _selfReportedDisplayId; - binding = new InputBinding(null, inputContext.asBinder(), uid, pid); + binding = new InputBinding(null, fallbackInputConnection.asBinder(), uid, pid); clientDeathRecipient = _clientDeathRecipient; } } @@ -621,9 +621,9 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub ClientState mCurFocusedWindowClient; /** - * The input context last provided by the current client. + * The {@link IRemoteInputConnection} last provided by the current client. */ - IInputContext mCurInputContext; + IRemoteInputConnection mCurInputConnection; /** * The {@link ImeOnBackInvokedDispatcher} last provided by the current client to @@ -847,7 +847,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub /** * Internal state snapshot when - * {@link com.android.internal.view.IInputMethod#startInput(IBinder, IInputContext, EditorInfo, + * {@link com.android.internal.view.IInputMethod#startInput(IBinder, IRemoteInputConnection, EditorInfo, * boolean)} is about to be called. * *Calling that IPC endpoint basically means that @@ -2412,14 +2412,14 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub * @param client {@link android.os.Binder} proxy that is associated with the singleton instance * of {@link android.view.inputmethod.InputMethodManager} that runs on the client * process - * @param inputContext communication channel for the fallback {@link InputConnection} + * @param inputConnection communication channel for the fallback {@link InputConnection} * @param selfReportedDisplayId self-reported display ID to which the client is associated. * Whether the client is still allowed to access to this display * or not needs to be evaluated every time the client interacts * with the display */ @Override - public void addClient(IInputMethodClient client, IInputContext inputContext, + public void addClient(IInputMethodClient client, IRemoteInputConnection inputConnection, int selfReportedDisplayId) { // Here there are two scenarios where this method is called: // A. IMM is being instantiated in a different process and this is an IPC from that process @@ -2456,7 +2456,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub // have the client crash. Thus we do not verify the display ID at all here. Instead we // later check the display ID every time the client needs to interact with the specified // display. - mClients.put(client.asBinder(), new ClientState(client, inputContext, callerUid, + mClients.put(client.asBinder(), new ClientState(client, inputConnection, callerUid, callerPid, selfReportedDisplayId, deathRecipient)); } } @@ -2646,7 +2646,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub final int navButtonFlags = getInputMethodNavButtonFlagsLocked(); final SessionState session = mCurClient.curSession; setEnabledSessionLocked(session); - session.method.startInput(startInputToken, mCurInputContext, mCurAttribute, restarting, + session.method.startInput(startInputToken, mCurInputConnection, mCurAttribute, restarting, navButtonFlags, mCurImeDispatcher); if (mShowRequested) { if (DEBUG) Slog.v(TAG, "Attach new input asks to show input"); @@ -2753,7 +2753,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @GuardedBy("ImfLock.class") @NonNull private InputBindResult startInputUncheckedLocked(@NonNull ClientState cs, - IInputContext inputContext, + IRemoteInputConnection inputConnection, @Nullable IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection, @NonNull EditorInfo attribute, @StartInputFlags int startInputFlags, @StartInputReason int startInputReason, @@ -2800,7 +2800,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub // Bump up the sequence for this client and attach it. advanceSequenceNumberLocked(); mCurClient = cs; - mCurInputContext = inputContext; + mCurInputConnection = inputConnection; mCurRemoteAccessibilityInputConnection = remoteAccessibilityInputConnection; mCurImeDispatcher = imeDispatcher; mCurVirtualDisplayToScreenMatrix = @@ -3817,12 +3817,12 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub public InputBindResult startInputOrWindowGainedFocus( @StartInputReason int startInputReason, IInputMethodClient client, IBinder windowToken, @StartInputFlags int startInputFlags, @SoftInputModeFlags int softInputMode, - int windowFlags, @Nullable EditorInfo attribute, IInputContext inputContext, + int windowFlags, @Nullable EditorInfo attribute, IRemoteInputConnection inputConnection, IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection, int unverifiedTargetSdkVersion, @NonNull ImeOnBackInvokedDispatcher imeDispatcher) { return startInputOrWindowGainedFocusInternal(startInputReason, client, windowToken, - startInputFlags, softInputMode, windowFlags, attribute, inputContext, + startInputFlags, softInputMode, windowFlags, attribute, inputConnection, remoteAccessibilityInputConnection, unverifiedTargetSdkVersion, imeDispatcher); } @@ -3831,7 +3831,8 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub private InputBindResult startInputOrWindowGainedFocusInternal( @StartInputReason int startInputReason, IInputMethodClient client, IBinder windowToken, @StartInputFlags int startInputFlags, @SoftInputModeFlags int softInputMode, - int windowFlags, @Nullable EditorInfo attribute, @Nullable IInputContext inputContext, + int windowFlags, @Nullable EditorInfo attribute, + @Nullable IRemoteInputConnection inputConnection, @Nullable IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection, int unverifiedTargetSdkVersion, @NonNull ImeOnBackInvokedDispatcher imeDispatcher) { @@ -3870,7 +3871,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub try { result = startInputOrWindowGainedFocusInternalLocked(startInputReason, client, windowToken, startInputFlags, softInputMode, windowFlags, - attribute, inputContext, remoteAccessibilityInputConnection, + attribute, inputConnection, remoteAccessibilityInputConnection, unverifiedTargetSdkVersion, userId, imeDispatcher); } finally { Binder.restoreCallingIdentity(ident); @@ -3897,7 +3898,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub @StartInputReason int startInputReason, IInputMethodClient client, @NonNull IBinder windowToken, @StartInputFlags int startInputFlags, @SoftInputModeFlags int softInputMode, int windowFlags, EditorInfo attribute, - IInputContext inputContext, + IRemoteInputConnection inputContext, @Nullable IRemoteAccessibilityInputConnection remoteAccessibilityInputConnection, int unverifiedTargetSdkVersion, @UserIdInt int userId, @NonNull ImeOnBackInvokedDispatcher imeDispatcher) { @@ -5998,7 +5999,7 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub final ClientState ci = mClients.valueAt(i); p.println(" Client " + ci + ":"); p.println(" client=" + ci.client); - p.println(" inputContext=" + ci.inputContext); + p.println(" fallbackInputConnection=" + ci.fallbackInputConnection); p.println(" sessionRequested=" + ci.sessionRequested); p.println(" sessionRequestedForAccessibility=" + ci.mSessionRequestedForAccessibility);