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

Commit c5002e47 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove overload ImeVisibilityApplier#applyImeVisibility" into main

parents 5a6dc363 a4df4cc5
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -141,14 +141,7 @@ final class DefaultImeVisibilityApplier implements ImeVisibilityApplier {

    @GuardedBy("ImfLock.class")
    @Override
    public void applyImeVisibility(IBinder windowToken, @NonNull ImeTracker.Token statsToken,
            @ImeVisibilityStateComputer.VisibilityState int state, @UserIdInt int userId) {
        applyImeVisibility(windowToken, statsToken, state,
                SoftInputShowHideReason.NOT_SET /* ignore reason */, userId);
    }

    @GuardedBy("ImfLock.class")
    void applyImeVisibility(IBinder windowToken, @Nullable ImeTracker.Token statsToken,
    public void applyImeVisibility(IBinder windowToken, @Nullable ImeTracker.Token statsToken,
            @ImeVisibilityStateComputer.VisibilityState int state,
            @SoftInputShowHideReason int reason, @UserIdInt int userId) {
        final var bindingController = mService.getInputMethodBindingController(userId);
+3 −1
Original line number Diff line number Diff line
@@ -67,10 +67,12 @@ interface ImeVisibilityApplier {
     * @param windowToken the token of a window for applying the IME visibility
     * @param statsToken  the token tracking the current IME request
     * @param state       the new IME visibility state for the applier to handle
     * @param reason      the reason why the input window is visible or hidden
     * @param userId      the target user when applying the IME visibility state
     */
    default void applyImeVisibility(IBinder windowToken, @NonNull ImeTracker.Token statsToken,
            @ImeVisibilityStateComputer.VisibilityState int state, @UserIdInt int userId) {
            @ImeVisibilityStateComputer.VisibilityState int state,
            @SoftInputShowHideReason int reason, @UserIdInt int userId) {
    }

    /**
+4 −2
Original line number Diff line number Diff line
@@ -1868,7 +1868,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
            final var statsToken = createStatsTokenForFocusedClient(false /* show */,
                    SoftInputShowHideReason.UNBIND_CURRENT_METHOD, userId);
            mVisibilityApplier.applyImeVisibility(userData.mImeBindingState.mFocusedWindow,
                    statsToken, STATE_HIDE_IME, userId);
                    statsToken, STATE_HIDE_IME, SoftInputShowHideReason.NOT_SET /* ignore reason */,
                    userId);
        }
    }

@@ -4662,7 +4663,8 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl.
                        windowToken, userId);
                mVisibilityApplier.applyImeVisibility(requestToken, statsToken,
                        setVisible ? ImeVisibilityStateComputer.STATE_SHOW_IME
                                : ImeVisibilityStateComputer.STATE_HIDE_IME, userId);
                                : ImeVisibilityStateComputer.STATE_HIDE_IME,
                        SoftInputShowHideReason.NOT_SET /* ignore reason */, userId);
            }
        } finally {
            Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
+10 −8
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.dx.mockito.inline.extended.ExtendedMockito;
import com.android.internal.inputmethod.InputBindResult;
import com.android.internal.inputmethod.SoftInputShowHideReason;
import com.android.internal.inputmethod.StartInputFlags;
import com.android.internal.inputmethod.StartInputReason;

@@ -106,7 +107,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
        assertThrows(IllegalArgumentException.class, () -> {
            synchronized (ImfLock.class) {
                mVisibilityApplier.applyImeVisibility(mWindowToken, ImeTracker.Token.empty(),
                        STATE_INVALID, mUserId);
                        STATE_INVALID, eq(SoftInputShowHideReason.NOT_SET), mUserId);
            }
        });
    }
@@ -116,7 +117,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
        final var statsToken = ImeTracker.Token.empty();
        synchronized (ImfLock.class) {
            mVisibilityApplier.applyImeVisibility(mWindowToken, statsToken, STATE_SHOW_IME,
                    mUserId);
                    eq(SoftInputShowHideReason.NOT_SET), mUserId);
        }
        verify(mMockWindowManagerInternal).showImePostLayout(eq(mWindowToken), eq(statsToken));
    }
@@ -126,7 +127,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
        final var statsToken = ImeTracker.Token.empty();
        synchronized (ImfLock.class) {
            mVisibilityApplier.applyImeVisibility(mWindowToken, statsToken, STATE_HIDE_IME,
                    mUserId);
                    eq(SoftInputShowHideReason.NOT_SET), mUserId);
        }
        verify(mMockWindowManagerInternal).hideIme(eq(mWindowToken), anyInt() /* displayId */,
                eq(statsToken));
@@ -137,7 +138,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
        mInputMethodManagerService.mImeWindowVis = IME_ACTIVE;
        synchronized (ImfLock.class) {
            mVisibilityApplier.applyImeVisibility(mWindowToken, ImeTracker.Token.empty(),
                    STATE_HIDE_IME_EXPLICIT, mUserId);
                    STATE_HIDE_IME_EXPLICIT, eq(SoftInputShowHideReason.NOT_SET), mUserId);
        }
        verifyHideSoftInput(true, true);
    }
@@ -147,7 +148,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
        mInputMethodManagerService.mImeWindowVis = IME_ACTIVE;
        synchronized (ImfLock.class) {
            mVisibilityApplier.applyImeVisibility(mWindowToken, ImeTracker.Token.empty(),
                    STATE_HIDE_IME_NOT_ALWAYS, mUserId);
                    STATE_HIDE_IME_NOT_ALWAYS, eq(SoftInputShowHideReason.NOT_SET), mUserId);
        }
        verifyHideSoftInput(true, true);
    }
@@ -156,7 +157,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
    public void testApplyImeVisibility_showImeImplicit() throws Exception {
        synchronized (ImfLock.class) {
            mVisibilityApplier.applyImeVisibility(mWindowToken, ImeTracker.Token.empty(),
                    STATE_SHOW_IME_IMPLICIT, mUserId);
                    STATE_SHOW_IME_IMPLICIT, eq(SoftInputShowHideReason.NOT_SET), mUserId);
        }
        verifyShowSoftInput(true, true, 0 /* showFlags */);
    }
@@ -177,7 +178,7 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
            // Verify hideIme will apply the expected displayId when the default IME
            // visibility applier app STATE_HIDE_IME.
            mVisibilityApplier.applyImeVisibility(mWindowToken, statsToken, STATE_HIDE_IME,
                    mUserId);
                    eq(SoftInputShowHideReason.NOT_SET), mUserId);
            verify(mInputMethodManagerService.mWindowManagerInternal).hideIme(
                    eq(mWindowToken), eq(displayIdToShowIme), eq(statsToken));
        }
@@ -224,7 +225,8 @@ public class DefaultImeVisibilityApplierTest extends InputMethodManagerServiceTe
            // the IME hidden state.
            // The unbind will cancel the previous stats token, and create a new one internally.
            verify(mVisibilityApplier).applyImeVisibility(
                    eq(mWindowToken), any(), eq(STATE_HIDE_IME), eq(mUserId) /* userId */);
                    eq(mWindowToken), any(), eq(STATE_HIDE_IME),
                    eq(SoftInputShowHideReason.NOT_SET), eq(mUserId) /* userId */);
            verify(mInputMethodManagerService.mWindowManagerInternal).hideIme(
                    eq(mWindowToken), eq(displayIdToShowIme), and(not(eq(statsToken)), notNull()));
        }