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

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

Simplify IMMS#onImeSwitchButtonClickFromClient()

This CL simplifies

  InputMethodManagerService#onImeSwitchButtonClickFromClient()

which was recently added [1] to as a preparation to support new IME
Language Picker (Bug 311791923), by passing

  InputMethodPrivilegedOperationsImpl#mUserId

instead of propagating UserHandle.myUserId() from the IME process in
favor of simplicity.

Other than the code simplification, there must be no behavior change
in this CL.

 [1]: I633da5b03fa50ec1ccf515a4df5538e397d15442
      61e1f831

Bug: 305849394
Flag: android.view.inputmethod.ime_switcher_revamp
Test: presubmit
Change-Id: Ib21678d864ad2e0a5edf72eefe54d3b6fe4047d4
parent d934b93e
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.inputmethodservice;

import static android.view.inputmethod.Flags.predictiveBackIme;
import static android.inputmethodservice.InputMethodServiceProto.CANDIDATES_VIEW_STARTED;
import static android.inputmethodservice.InputMethodServiceProto.CANDIDATES_VISIBILITY;
import static android.inputmethodservice.InputMethodServiceProto.CONFIGURATION;
@@ -57,6 +56,7 @@ import static android.view.inputmethod.ConnectionlessHandwritingCallback.CONNECT
import static android.view.inputmethod.ConnectionlessHandwritingCallback.CONNECTIONLESS_HANDWRITING_ERROR_UNSUPPORTED;
import static android.view.inputmethod.Flags.FLAG_CONNECTIONLESS_HANDWRITING;
import static android.view.inputmethod.Flags.ctrlShiftShortcut;
import static android.view.inputmethod.Flags.predictiveBackIme;

import static java.lang.annotation.RetentionPolicy.SOURCE;

@@ -101,7 +101,6 @@ import android.os.ResultReceiver;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.InputType;
import android.text.Layout;
@@ -4348,7 +4347,7 @@ public class InputMethodService extends AbstractInputMethodService {
     * @hide
     */
    final void onImeSwitchButtonClickFromClient() {
        mPrivOps.onImeSwitchButtonClickFromClient(getDisplayId(), UserHandle.myUserId());
        mPrivOps.onImeSwitchButtonClickFromClient(getDisplayId());
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ oneway interface IInputMethodPrivilegedOperations {
    void switchToPreviousInputMethod(in AndroidFuture future /* T=Boolean */);
    void switchToNextInputMethod(boolean onlyCurrentIme, in AndroidFuture future /* T=Boolean */);
    void shouldOfferSwitchingToNextInputMethod(in AndroidFuture future /* T=Boolean */);
    void onImeSwitchButtonClickFromClient(int displayId, int userId);
    void onImeSwitchButtonClickFromClient(int displayId);
    void notifyUserActionAsync();
    void applyImeVisibilityAsync(IBinder showOrHideInputToken, boolean setVisible,
            in ImeTracker.Token statsToken);
+3 −3
Original line number Diff line number Diff line
@@ -378,16 +378,16 @@ public final class InputMethodPrivilegedOperations {
    }

    /**
     * Calls {@link IInputMethodPrivilegedOperations#onImeSwitchButtonClickFromClient(int, int)}
     * Calls {@link IInputMethodPrivilegedOperations#onImeSwitchButtonClickFromClient(int)}
     */
    @AnyThread
    public void onImeSwitchButtonClickFromClient(int displayId, int userId) {
    public void onImeSwitchButtonClickFromClient(int displayId) {
        final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull();
        if (ops == null) {
            return;
        }
        try {
            ops.onImeSwitchButtonClickFromClient(displayId, userId);
            ops.onImeSwitchButtonClickFromClient(displayId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+2 −6
Original line number Diff line number Diff line
@@ -3972,10 +3972,6 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
    @BinderThread
    private void onImeSwitchButtonClickFromClient(@NonNull IBinder token, int displayId,
            @UserIdInt int userId) {
        userId = mActivityManagerInternal.handleIncomingUser(
                Binder.getCallingPid(), Binder.getCallingUid(), userId, false,
                ActivityManagerInternal.ALLOW_FULL_ONLY, "onImeSwitchButtonClickFromClient", null);

        final var userData = getUserData(userId);
        synchronized (ImfLock.class) {
            if (!calledWithValidTokenLocked(token, userData)) {
@@ -6960,8 +6956,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.

        @BinderThread
        @Override
        public void onImeSwitchButtonClickFromClient(int displayId, @UserIdInt int userId) {
            mImms.onImeSwitchButtonClickFromClient(mToken, displayId, userId);
        public void onImeSwitchButtonClickFromClient(int displayId) {
            mImms.onImeSwitchButtonClickFromClient(mToken, displayId, mUserId);
        }

        @BinderThread