diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index e2caeec114d0a..a752c15921832 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -2974,6 +2974,13 @@ public class InputManagerService extends IInputManager.Stub return null; } + // Native callback. + @SuppressWarnings("unused") + private boolean isStylusPointerIconEnabled() { + return Objects.requireNonNull(mContext.getSystemService(InputManager.class)) + .isStylusPointerIconEnabled(); + } + private static class PointerDisplayIdChangedArgs { final int mPointerDisplayId; final float mXPosition; diff --git a/services/core/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp index 56ccf872d2f63..b4e2fb6ca3e3f 100644 --- a/services/core/jni/com_android_server_input_InputManagerService.cpp +++ b/services/core/jni/com_android_server_input_InputManagerService.cpp @@ -137,6 +137,7 @@ static struct { jmethodID notifyDropWindow; jmethodID getParentSurfaceForPointers; jmethodID isPerDisplayTouchModeEnabled; + jmethodID isStylusPointerIconEnabled; } gServiceClassInfo; static struct { @@ -660,6 +661,12 @@ void NativeInputManager::getReaderConfiguration(InputReaderConfiguration* outCon outConfig->pointerGestureTapSlop = hoverTapSlop; } + jboolean stylusPointerIconEnabled = + env->CallBooleanMethod(mServiceObj, gServiceClassInfo.isStylusPointerIconEnabled); + if (!checkAndClearExceptionFromCallback(env, "isStylusPointerIconEnabled")) { + outConfig->stylusPointerIconEnabled = stylusPointerIconEnabled; + } + { // acquire lock AutoMutex _l(mLock); @@ -2793,6 +2800,9 @@ int register_android_server_InputManager(JNIEnv* env) { GET_METHOD_ID(gServiceClassInfo.isPerDisplayTouchModeEnabled, clazz, "isPerDisplayTouchModeEnabled", "()Z"); + GET_METHOD_ID(gServiceClassInfo.isStylusPointerIconEnabled, clazz, "isStylusPointerIconEnabled", + "()Z"); + // InputDevice FIND_CLASS(gInputDeviceClassInfo.clazz, "android/view/InputDevice");