Use @EnforcePermission for IIMM#addVirtualStylusIdForTestSession()

This CL manually migrates

  IInputMethodManager#addVirtualStylusIdForTestSession(),

which was added recently [1], from manual permission check with

  Context#enforceCallingPermission(INJECT_EVENTS)

to code-generation check with

  @EnforcePermission("INJECT_EVENTS").

There should be no observable semantic behavior change in this CL.

 [1]: I7399c0a56c04f024d65c16d459818cc2c5cdbc7f
      d96ef57bc4

Bug: 34886274
Bug: 210039666
Bug: 232058525
Bug: 237316307
Test: atest CtsInputMethodTestCases:InputMethodManagerTest#testShowInputMethodPickerFromSystemProtection
Change-Id: Ida227d417496dd91c071c38ca0be003529764de4
This commit is contained in:
Yohei Yukawa
2022-07-15 21:44:29 -07:00
parent 351e677853
commit 80b2911d01
2 changed files with 2 additions and 4 deletions

View File

@@ -123,6 +123,7 @@ interface IInputMethodManager {
boolean isStylusHandwritingAvailableAsUser(int userId);
/** add virtual stylus id for test Stylus handwriting session **/
@EnforcePermission("INJECT_EVENTS")
@JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = "
+ "android.Manifest.permission.INJECT_EVENTS)")
void addVirtualStylusIdForTestSession(in IInputMethodClient client);

View File

@@ -4465,12 +4465,9 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
* a stylus deviceId is not already registered on device.
*/
@BinderThread
@RequiresPermission(Manifest.permission.INJECT_EVENTS)
@EnforcePermission(Manifest.permission.INJECT_EVENTS)
@Override
public void addVirtualStylusIdForTestSession(IInputMethodClient client) {
mContext.enforceCallingPermission(
Manifest.permission.INJECT_EVENTS,
"Using addVirtualStylusIdForTestSession() requires INJECT_EVENTS.");
int uid = Binder.getCallingUid();
synchronized (ImfLock.class) {
if (!canInteractWithImeLocked(uid, client, "addVirtualStylusIdForTestSession")) {