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

Commit 5d7b24f2 authored by Yohei Yukawa's avatar Yohei Yukawa Committed by Android Git Automerger
Browse files

am f2c509a8: am 310da35c: Merge "Follow up API signature change" into lmp-dev

* commit 'f2c509a8':
  Follow up API signature change
parents 96e4828f f2c509a8
Loading
Loading
Loading
Loading
+15 −17
Original line number Diff line number Diff line
@@ -21,30 +21,29 @@ import android.view.inputmethod.InputMethodManager;

public final class InputConnectionCompatUtils {
    private static final CompatUtils.ClassWrapper sInputConnectionType;
    private static final CompatUtils.ToBooleanMethodWrapper sRequestUpdateCursorAnchorInfoMethod;
    private static final CompatUtils.ToBooleanMethodWrapper sRequestCursorUpdatesMethod;
    static {
        sInputConnectionType = new CompatUtils.ClassWrapper(InputConnection.class);
        sRequestUpdateCursorAnchorInfoMethod = sInputConnectionType.getPrimitiveMethod(
                "requestUpdateCursorAnchorInfo", false, int.class);
        sRequestCursorUpdatesMethod = sInputConnectionType.getPrimitiveMethod(
                "requestCursorUpdates", false, int.class);
    }

    public static boolean isRequestUpdateCursorAnchorInfoAvailable() {
        return sRequestUpdateCursorAnchorInfoMethod != null;
    public static boolean isRequestCursorUpdatesAvailable() {
        return sRequestCursorUpdatesMethod != null;
    }

    /**
     * Local copies of some constants in CursorAnchorInfoRequest until the SDK becomes publicly
     * available.
     * Local copies of some constants in InputConnection until the SDK becomes publicly available.
     */
    private static int REQUEST_UPDATE_CURSOR_UPDATE_IMMEDIATE = 1 << 0;
    private static int REQUEST_UPDATE_CURSOR_UPDATE_MONITOR = 1 << 1;
    private static int CURSOR_UPDATE_IMMEDIATE = 1 << 0;
    private static int CURSOR_UPDATE_MONITOR = 1 << 1;

    private static boolean requestUpdateCursorAnchorInfoImpl(final InputConnection inputConnection,
    private static boolean requestCursorUpdatesImpl(final InputConnection inputConnection,
            final int cursorUpdateMode) {
        if (!isRequestUpdateCursorAnchorInfoAvailable()) {
        if (!isRequestCursorUpdatesAvailable()) {
             return false;
        }
        return sRequestUpdateCursorAnchorInfoMethod.invoke(inputConnection, cursorUpdateMode);
        return sRequestCursorUpdatesMethod.invoke(inputConnection, cursorUpdateMode);
    }

    /**
@@ -56,11 +55,10 @@ public final class InputConnectionCompatUtils {
     * as soon as possible to notify the current cursor/anchor position to the input method.
     * @return {@code false} if the request is not handled. Otherwise returns {@code true}.
     */
    public static boolean requestUpdateCursorAnchorInfo(final InputConnection inputConnection,
    public static boolean requestCursorUpdates(final InputConnection inputConnection,
            final boolean enableMonitor, final boolean requestImmediateCallback) {
        final int cursorUpdateMode = (enableMonitor ? REQUEST_UPDATE_CURSOR_UPDATE_MONITOR : 0)
                | (requestImmediateCallback ? REQUEST_UPDATE_CURSOR_UPDATE_IMMEDIATE : 0);
        return requestUpdateCursorAnchorInfoImpl(inputConnection, cursorUpdateMode);
        final int cursorUpdateMode = (enableMonitor ? CURSOR_UPDATE_MONITOR : 0)
                | (requestImmediateCallback ? CURSOR_UPDATE_IMMEDIATE : 0);
        return requestCursorUpdatesImpl(inputConnection, cursorUpdateMode);
    }

}
+3 −3
Original line number Diff line number Diff line
@@ -922,13 +922,13 @@ public final class RichInputConnection {
     * prevents the application from fulfilling the request. (TODO: Improve the API when it turns
     * out that we actually need more detailed error codes)
     */
    public boolean requestUpdateCursorAnchorInfo(final boolean enableMonitor,
    public boolean requestCursorUpdates(final boolean enableMonitor,
            final boolean requestImmediateCallback) {
        mIC = mParent.getCurrentInputConnection();
        final boolean scheduled;
        if (null != mIC) {
            scheduled = InputConnectionCompatUtils.requestUpdateCursorAnchorInfo(mIC,
                    enableMonitor, requestImmediateCallback);
            scheduled = InputConnectionCompatUtils.requestCursorUpdates(mIC, enableMonitor,
                    requestImmediateCallback);
        } else {
            scheduled = false;
        }
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ public final class InputLogic {
        if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) {
            // AcceptTypedWord feature relies on CursorAnchorInfo.
            if (settingsValues.mShouldShowUiToAcceptTypedWord) {
                mConnection.requestUpdateCursorAnchorInfo(true /* enableMonitor */,
                mConnection.requestCursorUpdates(true /* enableMonitor */,
                        true /* requestImmediateCallback */);
            }
        }