Loading core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1805,6 +1805,7 @@ package android.hardware.input { method @FlaggedApi("com.android.input.flags.device_associations") @RequiresPermission("android.permission.ASSOCIATE_INPUT_DEVICE_TO_DISPLAY") public void addUniqueIdAssociationByDescriptor(@NonNull String, @NonNull String); method @RequiresPermission("android.permission.ASSOCIATE_INPUT_DEVICE_TO_DISPLAY") public void addUniqueIdAssociationByPort(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.REMAP_MODIFIER_KEYS) public void clearAllModifierKeyRemappings(); method @Nullable @RequiresPermission(android.Manifest.permission.INJECT_EVENTS) public android.graphics.PointF getCursorPosition(int); method @NonNull public java.util.List<java.lang.String> getKeyboardLayoutDescriptors(); method @NonNull public String getKeyboardLayoutTypeForLayoutDescriptor(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.REMAP_MODIFIER_KEYS) public java.util.Map<java.lang.Integer,java.lang.Integer> getModifierKeyRemapping(); Loading core/java/android/hardware/input/IInputManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware.input; import android.graphics.PointF; import android.graphics.Rect; import android.hardware.input.AidlInputGestureData; import android.hardware.input.HostUsiVersion; Loading Loading @@ -307,4 +308,6 @@ interface IInputManager { void resetLockedModifierState(); void setMouseScalingEnabled(boolean enabled, int displayId); PointF getCursorPosition(int displayId); } core/java/android/hardware/input/InputManager.java +22 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.app.ActivityThread; import android.compat.annotation.ChangeId; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.hardware.BatteryState; import android.os.Build; Loading Loading @@ -1642,6 +1643,27 @@ public final class InputManager { } } /** * Gets the current position of the mouse cursor on the specified display. * * <p>Returns null if no cursor is available, or if existing cursor is not on the supplied * `displayId`. * * <p>This method is inherently racy, and should only be used for test purposes. * @hide */ @TestApi @SuppressLint("UnflaggedApi") // @TestApi without associated feature. @RequiresPermission(Manifest.permission.INJECT_EVENTS) @Nullable public PointF getCursorPosition(int displayId) { try { return mIm.getCursorPosition(displayId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * A callback used to be notified about battery state changes for an input device. The * {@link #onBatteryStateChanged(int, long, BatteryState)} method will be called once after the Loading core/java/android/hardware/input/VirtualMouse.java +4 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,10 @@ public class VirtualMouse extends VirtualInputDevice { */ public @NonNull PointF getCursorPosition() { try { return mVirtualDevice.getCursorPosition(mToken); PointF cursorPosition = mVirtualDevice.getCursorPosition(mToken); // TODO(b/410677781): Returning PointF(NaN, NaN) on invalid displayId is different with // what the javadoc states, consider updating this (or the javadoc). return cursorPosition != null ? cursorPosition : new PointF(Float.NaN, Float.NaN); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading services/companion/java/com/android/server/companion/virtual/InputController.java +1 −2 Original line number Diff line number Diff line Loading @@ -386,8 +386,7 @@ class InputController { throw new IllegalArgumentException( "Could not get cursor position for input device for given token"); } return LocalServices.getService(InputManagerInternal.class).getCursorPosition( inputDeviceDescriptor.getDisplayId()); return mInputManager.getCursorPosition(inputDeviceDescriptor.getDisplayId()); } } Loading Loading
core/api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1805,6 +1805,7 @@ package android.hardware.input { method @FlaggedApi("com.android.input.flags.device_associations") @RequiresPermission("android.permission.ASSOCIATE_INPUT_DEVICE_TO_DISPLAY") public void addUniqueIdAssociationByDescriptor(@NonNull String, @NonNull String); method @RequiresPermission("android.permission.ASSOCIATE_INPUT_DEVICE_TO_DISPLAY") public void addUniqueIdAssociationByPort(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.REMAP_MODIFIER_KEYS) public void clearAllModifierKeyRemappings(); method @Nullable @RequiresPermission(android.Manifest.permission.INJECT_EVENTS) public android.graphics.PointF getCursorPosition(int); method @NonNull public java.util.List<java.lang.String> getKeyboardLayoutDescriptors(); method @NonNull public String getKeyboardLayoutTypeForLayoutDescriptor(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.REMAP_MODIFIER_KEYS) public java.util.Map<java.lang.Integer,java.lang.Integer> getModifierKeyRemapping(); Loading
core/java/android/hardware/input/IInputManager.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware.input; import android.graphics.PointF; import android.graphics.Rect; import android.hardware.input.AidlInputGestureData; import android.hardware.input.HostUsiVersion; Loading Loading @@ -307,4 +308,6 @@ interface IInputManager { void resetLockedModifierState(); void setMouseScalingEnabled(boolean enabled, int displayId); PointF getCursorPosition(int displayId); }
core/java/android/hardware/input/InputManager.java +22 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.app.ActivityThread; import android.compat.annotation.ChangeId; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.hardware.BatteryState; import android.os.Build; Loading Loading @@ -1642,6 +1643,27 @@ public final class InputManager { } } /** * Gets the current position of the mouse cursor on the specified display. * * <p>Returns null if no cursor is available, or if existing cursor is not on the supplied * `displayId`. * * <p>This method is inherently racy, and should only be used for test purposes. * @hide */ @TestApi @SuppressLint("UnflaggedApi") // @TestApi without associated feature. @RequiresPermission(Manifest.permission.INJECT_EVENTS) @Nullable public PointF getCursorPosition(int displayId) { try { return mIm.getCursorPosition(displayId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * A callback used to be notified about battery state changes for an input device. The * {@link #onBatteryStateChanged(int, long, BatteryState)} method will be called once after the Loading
core/java/android/hardware/input/VirtualMouse.java +4 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,10 @@ public class VirtualMouse extends VirtualInputDevice { */ public @NonNull PointF getCursorPosition() { try { return mVirtualDevice.getCursorPosition(mToken); PointF cursorPosition = mVirtualDevice.getCursorPosition(mToken); // TODO(b/410677781): Returning PointF(NaN, NaN) on invalid displayId is different with // what the javadoc states, consider updating this (or the javadoc). return cursorPosition != null ? cursorPosition : new PointF(Float.NaN, Float.NaN); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
services/companion/java/com/android/server/companion/virtual/InputController.java +1 −2 Original line number Diff line number Diff line Loading @@ -386,8 +386,7 @@ class InputController { throw new IllegalArgumentException( "Could not get cursor position for input device for given token"); } return LocalServices.getService(InputManagerInternal.class).getCursorPosition( inputDeviceDescriptor.getDisplayId()); return mInputManager.getCursorPosition(inputDeviceDescriptor.getDisplayId()); } } Loading