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

Commit 52276eef authored by Arpit Singh's avatar Arpit Singh Committed by Automerger Merge Worker
Browse files

Merge "Input method manager method to check for active connection" into...

Merge "Input method manager method to check for active connection" into udc-qpr-dev am: a5b15857 am: 54a52939

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23877016



Change-Id: I0a231cb2ae290d44f17ccc449e9c5adb9e6a73f5
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a673c7f4 54a52939
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -116,6 +116,7 @@ import com.android.server.DisplayThread;
import com.android.server.LocalServices;
import com.android.server.LocalServices;
import com.android.server.Watchdog;
import com.android.server.Watchdog;
import com.android.server.input.InputManagerInternal.LidSwitchCallback;
import com.android.server.input.InputManagerInternal.LidSwitchCallback;
import com.android.server.inputmethod.InputMethodManagerInternal;
import com.android.server.policy.WindowManagerPolicy;
import com.android.server.policy.WindowManagerPolicy;


import libcore.io.IoUtils;
import libcore.io.IoUtils;
@@ -165,6 +166,8 @@ public class InputManagerService extends IInputManager.Stub
    private final InputManagerHandler mHandler;
    private final InputManagerHandler mHandler;
    private DisplayManagerInternal mDisplayManagerInternal;
    private DisplayManagerInternal mDisplayManagerInternal;


    private InputMethodManagerInternal mInputMethodManagerInternal;

    // Context cache used for loading pointer resources.
    // Context cache used for loading pointer resources.
    private Context mPointerIconDisplayContext;
    private Context mPointerIconDisplayContext;


@@ -510,6 +513,8 @@ public class InputManagerService extends IInputManager.Stub
        }
        }


        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
        mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
        mInputMethodManagerInternal =
                LocalServices.getService(InputMethodManagerInternal.class);


        mSettingsObserver.registerAndUpdate();
        mSettingsObserver.registerAndUpdate();


@@ -2784,6 +2789,13 @@ public class InputManagerService extends IInputManager.Stub
                        yPosition)).sendToTarget();
                        yPosition)).sendToTarget();
    }
    }


    // Native callback.
    @SuppressWarnings("unused")
    boolean isInputMethodConnectionActive() {
        return mInputMethodManagerInternal != null
                && mInputMethodManagerInternal.isAnyInputConnectionActive();
    }

    /**
    /**
     * Callback interface implemented by the Window Manager.
     * Callback interface implemented by the Window Manager.
     */
     */
+11 −0
Original line number Original line Diff line number Diff line
@@ -185,6 +185,12 @@ public abstract class InputMethodManagerInternal {
     */
     */
    public abstract void switchKeyboardLayout(int direction);
    public abstract void switchKeyboardLayout(int direction);


    /**
     * Returns true if any InputConnection is currently active.
     * {@hide}
     */
    public abstract boolean isAnyInputConnectionActive();

    /**
    /**
     * Fake implementation of {@link InputMethodManagerInternal}.  All the methods do nothing.
     * Fake implementation of {@link InputMethodManagerInternal}.  All the methods do nothing.
     */
     */
@@ -268,6 +274,11 @@ public abstract class InputMethodManagerInternal {
                @Override
                @Override
                public void switchKeyboardLayout(int direction) {
                public void switchKeyboardLayout(int direction) {
                }
                }

                @Override
                public boolean isAnyInputConnectionActive() {
                    return false;
                }
            };
            };


    /**
    /**
+8 −0
Original line number Original line Diff line number Diff line
@@ -5937,6 +5937,14 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
                }
                }
            }
            }
        }
        }

        /**
         * Returns true if any InputConnection is currently active.
         */
        @Override
        public boolean isAnyInputConnectionActive() {
            return mCurInputConnection != null;
        }
    }
    }


    @BinderThread
    @BinderThread
+13 −0
Original line number Original line Diff line number Diff line
@@ -108,6 +108,7 @@ static struct {
    jmethodID notifySensorEvent;
    jmethodID notifySensorEvent;
    jmethodID notifySensorAccuracy;
    jmethodID notifySensorAccuracy;
    jmethodID notifyStylusGestureStarted;
    jmethodID notifyStylusGestureStarted;
    jmethodID isInputMethodConnectionActive;
    jmethodID notifyVibratorState;
    jmethodID notifyVibratorState;
    jmethodID filterInputEvent;
    jmethodID filterInputEvent;
    jmethodID interceptKeyBeforeQueueing;
    jmethodID interceptKeyBeforeQueueing;
@@ -321,6 +322,7 @@ public:


    TouchAffineTransformation getTouchAffineTransformation(JNIEnv* env, jfloatArray matrixArr);
    TouchAffineTransformation getTouchAffineTransformation(JNIEnv* env, jfloatArray matrixArr);
    void notifyStylusGestureStarted(int32_t deviceId, nsecs_t eventTime) override;
    void notifyStylusGestureStarted(int32_t deviceId, nsecs_t eventTime) override;
    bool isInputMethodConnectionActive() override;


    /* --- InputDispatcherPolicyInterface implementation --- */
    /* --- InputDispatcherPolicyInterface implementation --- */


@@ -1307,6 +1309,14 @@ void NativeInputManager::notifyStylusGestureStarted(int32_t deviceId, nsecs_t ev
    checkAndClearExceptionFromCallback(env, "notifyStylusGestureStarted");
    checkAndClearExceptionFromCallback(env, "notifyStylusGestureStarted");
}
}


bool NativeInputManager::isInputMethodConnectionActive() {
    JNIEnv* env = jniEnv();
    const jboolean result =
            env->CallBooleanMethod(mServiceObj, gServiceClassInfo.isInputMethodConnectionActive);
    checkAndClearExceptionFromCallback(env, "isInputMethodConnectionActive");
    return result;
}

bool NativeInputManager::filterInputEvent(const InputEvent& inputEvent, uint32_t policyFlags) {
bool NativeInputManager::filterInputEvent(const InputEvent& inputEvent, uint32_t policyFlags) {
    ATRACE_CALL();
    ATRACE_CALL();
    JNIEnv* env = jniEnv();
    JNIEnv* env = jniEnv();
@@ -2749,6 +2759,9 @@ int register_android_server_InputManager(JNIEnv* env) {
    GET_METHOD_ID(gServiceClassInfo.notifyStylusGestureStarted, clazz, "notifyStylusGestureStarted",
    GET_METHOD_ID(gServiceClassInfo.notifyStylusGestureStarted, clazz, "notifyStylusGestureStarted",
                  "(IJ)V");
                  "(IJ)V");


    GET_METHOD_ID(gServiceClassInfo.isInputMethodConnectionActive, clazz,
                  "isInputMethodConnectionActive", "()Z");

    GET_METHOD_ID(gServiceClassInfo.notifyVibratorState, clazz, "notifyVibratorState", "(IZ)V");
    GET_METHOD_ID(gServiceClassInfo.notifyVibratorState, clazz, "notifyVibratorState", "(IZ)V");


    GET_METHOD_ID(gServiceClassInfo.notifyNoFocusedWindowAnr, clazz, "notifyNoFocusedWindowAnr",
    GET_METHOD_ID(gServiceClassInfo.notifyNoFocusedWindowAnr, clazz, "notifyNoFocusedWindowAnr",