Introduce @hide EditorInfo#targetInputMethodUser
This is a preparation to propagate the expected IME user ID from direct-reply notification to InputMethodManagerService (IMMS). When per-profile IME mode [1] is enabled, IMMS basically assumes that the IME user ID should be determined by calling process's user ID. This works for most of apps, but does not work for direct-reply hosted in the System UI process, which always runs as user 0. With this CL, client apps can explicitly specify the target IME user ID by using @hide field in EditorInfo. For instance, to tell IMMS to connect to user 10's IME, do this: @Override public InputConnection onCreateInputConnection(EditorInfo info) { InputConnection ic = super.onCreateInputConnection(info); info.targetInputMethodUser = UserHandle.of(10); // user 10 return ic; } The calling process will receive SecurityException if it does not belong to user 10 and does not have INTERACT_ACROSS_USERS_FULL. This CL is just a preparation. There should be no user-visible behavior change yet. [1]: Ied99664d3dc61b97c919b220c601f90b29761b96 a878b950 Bug: 120744418 Test: atest CtsInputMethodTestCases CtsInputMethodServiceHostTestCases Change-Id: Ia7ea944438d69669ccdf9111b34ba400e786a602
Loading
Please register or sign in to comment