From 5693db4d66d06f83f70c03a4d733d26c04e076ab Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Tue, 3 Aug 2021 14:34:36 -0700 Subject: [PATCH] Rename IInputConnectionWrapper to RemoteInputConnectionImpl This is a mechanical refactoring CL that renames com.android.internal.view.IInputConnectionWrapper to com.android.internal.inputmethod.RemoteInputConnectionImpl with no observable behavior change. Bug: 192412909 Test: presubmit Test: No lint error under core/java/com/android/internal/inputmethod Change-Id: I171106ad0b46fbb495a6bf08d10f33915c2d29ac --- .../RemoteInputConnection.java | 10 ++++++++ .../view/inputmethod/InputMethodManager.java | 12 +++++----- .../RemoteInputConnectionImpl.java} | 24 +++++++++---------- 3 files changed, 28 insertions(+), 18 deletions(-) rename core/java/com/android/internal/{view/IInputConnectionWrapper.java => inputmethod/RemoteInputConnectionImpl.java} (97%) diff --git a/core/java/android/inputmethodservice/RemoteInputConnection.java b/core/java/android/inputmethodservice/RemoteInputConnection.java index 5a8687d78fd86..ec5bcf1f1199b 100644 --- a/core/java/android/inputmethodservice/RemoteInputConnection.java +++ b/core/java/android/inputmethodservice/RemoteInputConnection.java @@ -43,6 +43,16 @@ import com.android.internal.view.IInputMethod; import java.lang.ref.WeakReference; +/** + * Takes care of remote method invocations of {@link InputConnection} in the IME side. + * + *

This class works as a proxy to forward API calls on {@link InputConnection} to + * {@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.

+ */ final class RemoteInputConnection implements InputConnection { private static final String TAG = "RemoteInputConnection"; diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index c46b77f1dbe63..c023c6ef04df9 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -90,12 +90,12 @@ import com.android.internal.inputmethod.ImeTracing; import com.android.internal.inputmethod.InputBindResult; import com.android.internal.inputmethod.InputMethodDebug; import com.android.internal.inputmethod.InputMethodPrivilegedOperationsRegistry; +import com.android.internal.inputmethod.RemoteInputConnectionImpl; import com.android.internal.inputmethod.SoftInputShowHideReason; import com.android.internal.inputmethod.StartInputFlags; import com.android.internal.inputmethod.StartInputReason; import com.android.internal.inputmethod.UnbindReason; import com.android.internal.os.SomeArgs; -import com.android.internal.view.IInputConnectionWrapper; import com.android.internal.view.IInputMethodClient; import com.android.internal.view.IInputMethodManager; import com.android.internal.view.IInputMethodSession; @@ -365,7 +365,7 @@ public final class InputMethodManager { final H mH; // Our generic input connection if the current target does not have its own. - private final IInputConnectionWrapper mFallbackInputConnection; + private final RemoteInputConnectionImpl mFallbackInputConnection; private final int mDisplayId; @@ -407,7 +407,7 @@ public final class InputMethodManager { /** * The InputConnection that was last retrieved from the served view. */ - IInputConnectionWrapper mServedInputConnection; + RemoteInputConnectionImpl mServedInputConnection; /** * The completions that were last provided by the served view. */ @@ -1120,7 +1120,7 @@ public final class InputMethodManager { mMainLooper = looper; mH = new H(looper); mDisplayId = displayId; - mFallbackInputConnection = new IInputConnectionWrapper(looper, + mFallbackInputConnection = new RemoteInputConnectionImpl(looper, new BaseInputConnection(this, false), this, null); } @@ -1938,7 +1938,7 @@ public final class InputMethodManager { mServedInputConnection.deactivate(); mServedInputConnection = null; } - IInputConnectionWrapper servedInputConnection; + RemoteInputConnectionImpl servedInputConnection; final int missingMethodFlags; if (ic != null) { mCursorSelStart = tba.initialSelStart; @@ -1955,7 +1955,7 @@ public final class InputMethodManager { } else { icHandler = ic.getHandler(); } - servedInputConnection = new IInputConnectionWrapper( + servedInputConnection = new RemoteInputConnectionImpl( icHandler != null ? icHandler.getLooper() : vh.getLooper(), ic, this, view); } else { servedInputConnection = null; diff --git a/core/java/com/android/internal/view/IInputConnectionWrapper.java b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java similarity index 97% rename from core/java/com/android/internal/view/IInputConnectionWrapper.java rename to core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java index 65970a8e992de..d1bca85f8425e 100644 --- a/core/java/com/android/internal/view/IInputConnectionWrapper.java +++ b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.internal.view; +package com.android.internal.inputmethod; import android.annotation.NonNull; import android.annotation.Nullable; @@ -40,21 +40,21 @@ import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.SurroundingText; import com.android.internal.annotations.GuardedBy; -import com.android.internal.inputmethod.IBooleanResultCallback; -import com.android.internal.inputmethod.ICharSequenceResultCallback; -import com.android.internal.inputmethod.IExtractedTextResultCallback; -import com.android.internal.inputmethod.IIntResultCallback; -import com.android.internal.inputmethod.ISurroundingTextResultCallback; -import com.android.internal.inputmethod.ImeTracing; -import com.android.internal.inputmethod.InputConnectionProtoDumper; +import com.android.internal.view.IInputContext; import java.lang.ref.WeakReference; /** * 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}.

*/ -public final class IInputConnectionWrapper extends IInputContext.Stub { - private static final String TAG = "IInputConnectionWrapper"; +public final class RemoteInputConnectionImpl extends IInputContext.Stub { + private static final String TAG = "RemoteInputConnectionImpl"; private static final boolean DEBUG = false; @GuardedBy("mLock") @@ -72,7 +72,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { private final InputMethodManager mParentInputMethodManager; private final WeakReference mServedView; - public IInputConnectionWrapper(@NonNull Looper looper, + public RemoteInputConnectionImpl(@NonNull Looper looper, @NonNull InputConnection inputConnection, @NonNull InputMethodManager inputMethodManager, @Nullable View servedView) { mInputConnection = inputConnection; @@ -140,7 +140,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { @Override public String toString() { - return "IInputConnectionWrapper{" + return "RemoteInputConnectionImpl{" + "connection=" + getInputConnection() + " finished=" + isFinished() + " mParentInputMethodManager.isActive()=" + mParentInputMethodManager.isActive()