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

Commit c9f7abe1 authored by Cosmin Băieș's avatar Cosmin Băieș
Browse files

Add ImeTracker phases for the invokers

This adds a new ImeTracker phase for reaching the
IInputMethodClientInvoker, and the IInputMethodInvoker.

Flag: EXEMPT logging
Bug: 404819907
Test: open Chrome; adb shell am force-stop com.android.chrome
  observe ImeTracker logs
Change-Id: Id8541be807dbc873a2440d8661348905b1a884a7
parent 663723d7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -232,6 +232,8 @@ public interface ImeTracker {
            PHASE_WM_NOTIFY_HIDE_ANIMATION_FINISHED,
            PHASE_WM_UPDATE_DISPLAY_WINDOW_ANIMATING_TYPES,
            PHASE_CLIENT_ON_CONTROLS_CHANGED,
            PHASE_SERVER_IME_INVOKER,
            PHASE_SERVER_CLIENT_INVOKER,
    })
    @Retention(RetentionPolicy.SOURCE)
    @interface Phase {}
@@ -473,6 +475,10 @@ public interface ImeTracker {
    /** InsetsController received a control for the IME. */
    int PHASE_CLIENT_ON_CONTROLS_CHANGED =
            ImeProtoEnums.PHASE_CLIENT_ON_CONTROLS_CHANGED;
    /** Reached the IME invoker on the server. */
    int PHASE_SERVER_IME_INVOKER = ImeProtoEnums.PHASE_SERVER_IME_INVOKER;
    /** Reached the IME client invoker on the server. */
    int PHASE_SERVER_CLIENT_INVOKER = ImeProtoEnums.PHASE_SERVER_CLIENT_INVOKER;

    /**
     * Called when an IME request is started.
+2 −0
Original line number Diff line number Diff line
@@ -256,9 +256,11 @@ final class IInputMethodClientInvoker {
    @AnyThread
    private void setImeVisibilityInternal(boolean visible, @Nullable ImeTracker.Token statsToken) {
        try {
            ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_SERVER_CLIENT_INVOKER);
            mTarget.setImeVisibility(visible, statsToken);
        } catch (RemoteException e) {
            logRemoteException(e);
            ImeTracker.forLogging().onFailed(statsToken, ImeTracker.PHASE_SERVER_CLIENT_INVOKER);
        }
    }

+4 −0
Original line number Diff line number Diff line
@@ -205,9 +205,11 @@ final class IInputMethodInvoker {
    boolean showSoftInput(IBinder showInputToken, @NonNull ImeTracker.Token statsToken,
            @InputMethod.ShowFlags int flags, ResultReceiver resultReceiver) {
        try {
            ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_SERVER_IME_INVOKER);
            mTarget.showSoftInput(showInputToken, statsToken, flags, resultReceiver);
        } catch (RemoteException e) {
            logRemoteException(e);
            ImeTracker.forLogging().onFailed(statsToken, ImeTracker.PHASE_SERVER_IME_INVOKER);
            return false;
        }
        return true;
@@ -218,9 +220,11 @@ final class IInputMethodInvoker {
    boolean hideSoftInput(IBinder hideInputToken, @NonNull ImeTracker.Token statsToken,
            int flags, ResultReceiver resultReceiver) {
        try {
            ImeTracker.forLogging().onProgress(statsToken, ImeTracker.PHASE_SERVER_IME_INVOKER);
            mTarget.hideSoftInput(hideInputToken, statsToken, flags, resultReceiver);
        } catch (RemoteException e) {
            logRemoteException(e);
            ImeTracker.forLogging().onFailed(statsToken, ImeTracker.PHASE_SERVER_IME_INVOKER);
            return false;
        }
        return true;