Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1ff9740 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Lock down RemoteInputConnectionImpl#getInputConnection()

This is a mechanical refactoring CL that locks down

  RemoteInputConnectionImpl#getInputConnection()

as a private method.

This is supposed to be helpful to to avoid future misuse of raw
InputConnection instance outside RemoteInputConnectionImpl.

Note that InputMethodManager#isAcceptingText() remains to have the
same observable behavior in this CL.  The key fact is that the
following two fields are updated in an atomic way.

  * RemoteInputConnectionImpl#mInputConnection
  * RemoteInputConnectionImpl#mFinished

Bug: 192412909
Test: presubmit
Change-Id: Ic5fbc6213ad62df95fc0b7eef18bab1fd9fbdbf1
parent b37f32cf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1381,8 +1381,7 @@ public final class InputMethodManager {
    public boolean isAcceptingText() {
        checkFocus();
        synchronized (mH) {
            return mServedInputConnection != null
                    && mServedInputConnection.getInputConnection() != null;
            return mServedInputConnection != null && !mServedInputConnection.isFinished();
        }
    }

+6 −2
Original line number Diff line number Diff line
@@ -86,13 +86,17 @@ public final class RemoteInputConnectionImpl extends IInputContext.Stub {
     * @return {@link InputConnection} to which incoming IPCs will be dispatched.
     */
    @Nullable
    public InputConnection getInputConnection() {
    private InputConnection getInputConnection() {
        synchronized (mLock) {
            return mInputConnection;
        }
    }

    private boolean isFinished() {
    /**
     * @return {@code true} until the target {@link InputConnection} receives
     * {@link InputConnection#closeConnection()} as a result of {@link #deactivate()}.
     */
    public boolean isFinished() {
        synchronized (mLock) {
            return mFinished;
        }