diff options
3 files changed, 24 insertions, 18 deletions
diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl index 39dddb723cb9..1b96224f03da 100644 --- a/core/java/android/hardware/input/IInputManager.aidl +++ b/core/java/android/hardware/input/IInputManager.aidl @@ -266,19 +266,19 @@ interface IInputManager { @PermissionManuallyEnforced @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = " + "android.Manifest.permission.MANAGE_KEY_GESTURES)") - int addCustomInputGesture(in AidlInputGestureData data); + int addCustomInputGesture(int userId, in AidlInputGestureData data); @PermissionManuallyEnforced @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = " + "android.Manifest.permission.MANAGE_KEY_GESTURES)") - int removeCustomInputGesture(in AidlInputGestureData data); + int removeCustomInputGesture(int userId, in AidlInputGestureData data); @PermissionManuallyEnforced @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = " + "android.Manifest.permission.MANAGE_KEY_GESTURES)") - void removeAllCustomInputGestures(); + void removeAllCustomInputGestures(int userId); - AidlInputGestureData[] getCustomInputGestures(); + AidlInputGestureData[] getCustomInputGestures(int userId); AidlInputGestureData[] getAppLaunchBookmarks(); } diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index 2051dbe7fb2e..9050ae235ce7 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -34,6 +34,7 @@ import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SuppressLint; import android.annotation.SystemService; import android.annotation.TestApi; +import android.annotation.UserHandleAware; import android.annotation.UserIdInt; import android.app.ActivityThread; import android.compat.annotation.ChangeId; @@ -1487,12 +1488,13 @@ public final class InputManager { */ @RequiresPermission(Manifest.permission.MANAGE_KEY_GESTURES) @CustomInputGestureResult + @UserHandleAware public int addCustomInputGesture(@NonNull InputGestureData inputGestureData) { if (!enableCustomizableInputGestures()) { return CUSTOM_INPUT_GESTURE_RESULT_ERROR_OTHER; } try { - return mIm.addCustomInputGesture(inputGestureData.getAidlData()); + return mIm.addCustomInputGesture(mContext.getUserId(), inputGestureData.getAidlData()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -1509,12 +1511,14 @@ public final class InputManager { */ @RequiresPermission(Manifest.permission.MANAGE_KEY_GESTURES) @CustomInputGestureResult + @UserHandleAware public int removeCustomInputGesture(@NonNull InputGestureData inputGestureData) { if (!enableCustomizableInputGestures()) { return CUSTOM_INPUT_GESTURE_RESULT_ERROR_OTHER; } try { - return mIm.removeCustomInputGesture(inputGestureData.getAidlData()); + return mIm.removeCustomInputGesture(mContext.getUserId(), + inputGestureData.getAidlData()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -1525,12 +1529,13 @@ public final class InputManager { * @hide */ @RequiresPermission(Manifest.permission.MANAGE_KEY_GESTURES) + @UserHandleAware public void removeAllCustomInputGestures() { if (!enableCustomizableInputGestures()) { return; } try { - mIm.removeAllCustomInputGestures(); + mIm.removeAllCustomInputGestures(mContext.getUserId()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -1540,13 +1545,14 @@ public final class InputManager { * * @hide */ + @UserHandleAware public List<InputGestureData> getCustomInputGestures() { List<InputGestureData> result = new ArrayList<>(); if (!enableCustomizableInputGestures()) { return result; } try { - for (AidlInputGestureData data : mIm.getCustomInputGestures()) { + for (AidlInputGestureData data : mIm.getCustomInputGestures(mContext.getUserId())) { result.add(new InputGestureData(data)); } } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 78e3b846f9dc..55a0ce679d90 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -2995,35 +2995,35 @@ public class InputManagerService extends IInputManager.Stub @Override @PermissionManuallyEnforced - public int addCustomInputGesture(@NonNull AidlInputGestureData inputGestureData) { + public int addCustomInputGesture(@UserIdInt int userId, + @NonNull AidlInputGestureData inputGestureData) { enforceManageKeyGesturePermission(); Objects.requireNonNull(inputGestureData); - return mKeyGestureController.addCustomInputGesture(UserHandle.getCallingUserId(), - inputGestureData); + return mKeyGestureController.addCustomInputGesture(userId, inputGestureData); } @Override @PermissionManuallyEnforced - public int removeCustomInputGesture(@NonNull AidlInputGestureData inputGestureData) { + public int removeCustomInputGesture(@UserIdInt int userId, + @NonNull AidlInputGestureData inputGestureData) { enforceManageKeyGesturePermission(); Objects.requireNonNull(inputGestureData); - return mKeyGestureController.removeCustomInputGesture(UserHandle.getCallingUserId(), - inputGestureData); + return mKeyGestureController.removeCustomInputGesture(userId, inputGestureData); } @Override @PermissionManuallyEnforced - public void removeAllCustomInputGestures() { + public void removeAllCustomInputGestures(@UserIdInt int userId) { enforceManageKeyGesturePermission(); - mKeyGestureController.removeAllCustomInputGestures(UserHandle.getCallingUserId()); + mKeyGestureController.removeAllCustomInputGestures(userId); } @Override - public AidlInputGestureData[] getCustomInputGestures() { - return mKeyGestureController.getCustomInputGestures(UserHandle.getCallingUserId()); + public AidlInputGestureData[] getCustomInputGestures(@UserIdInt int userId) { + return mKeyGestureController.getCustomInputGestures(userId); } @Override |