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

Commit f2e9812c authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Use @EnforcePermission for IIMM#showInputMethodPickerFromSystem()

This CL manually migrates

  IInputMethodManager#showInputMethodPickerFromSystem(boolean, int)

from manual permission check with

  Context#checkCallingPermission(WRITE_SECURE_SETTINGS)

to code-generation check with

  @EnforcePermission("WRITE_SECURE_SETTINGS").

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

Bug: 34886274
Bug: 232058525
Bug: 237316307
Test: manually verified that SecurityException is thrown
Change-Id: I9d1be1aa65276fcc50c2868fed6b0447d54ff7ee
parent 843d7085
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ interface IInputMethodManager {
    void showInputMethodPickerFromClient(in IInputMethodClient client,
            int auxiliarySubtypeMode);

    @EnforcePermission("WRITE_SECURE_SETTINGS")
    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = "
            + "android.Manifest.permission.WRITE_SECURE_SETTINGS)")
    void showInputMethodPickerFromSystem(in IInputMethodClient client,
+1 −6
Original line number Diff line number Diff line
@@ -3993,15 +3993,10 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
        }
    }

    @EnforcePermission(Manifest.permission.WRITE_SECURE_SETTINGS)
    @Override
    public void showInputMethodPickerFromSystem(IInputMethodClient client, int auxiliarySubtypeMode,
            int displayId) {
        if (mContext.checkCallingPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS)
                != PackageManager.PERMISSION_GRANTED) {
            throw new SecurityException(
                    "showInputMethodPickerFromSystem requires WRITE_SECURE_SETTINGS "
                            + "permission");
        }
        // Always call subtype picker, because subtype picker is a superset of input method
        // picker.
        mHandler.obtainMessage(MSG_SHOW_IM_SUBTYPE_PICKER, auxiliarySubtypeMode, displayId)