Let getEnabledInputMethodSubtypeList() take userId
This CL lets
IInputMethodManager#getEnabledInputMethodSubtypeList()
take the useId as an input parameter for consistency with other query
methods.
There should be no developer observable behavior change because now
InputMethodManager#getEnabledInputMethodSubtypeList()
specifies its own user ID.
Bug: 34886274
Test: make -j CtsInputMethod1 \
CtsInputMethod2 \
CtsInputMethodServiceDeviceTests \
CtsInputMethodServiceEventProvider \
CtsInputMethodServiceHostTestCases \
EditTextApp &&
atest CtsInputMethodServiceHostTestCases
Change-Id: Ie213ef7e04d6337e303ea331d0a00c7d7f9a6d1a
This commit is contained in:
@@ -90,10 +90,10 @@ final class IInputMethodManagerInvoker {
|
||||
@AnyThread
|
||||
@NonNull
|
||||
List<InputMethodSubtype> getEnabledInputMethodSubtypeList(@Nullable String imiId,
|
||||
boolean allowsImplicitlySelectedSubtypes) {
|
||||
boolean allowsImplicitlySelectedSubtypes, @UserIdInt int userId) {
|
||||
try {
|
||||
return mTarget.getEnabledInputMethodSubtypeList(imiId,
|
||||
allowsImplicitlySelectedSubtypes);
|
||||
allowsImplicitlySelectedSubtypes, userId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
@@ -1514,7 +1514,8 @@ public final class InputMethodManager {
|
||||
boolean allowsImplicitlySelectedSubtypes) {
|
||||
return mServiceInvoker.getEnabledInputMethodSubtypeList(
|
||||
imi == null ? null : imi.getId(),
|
||||
allowsImplicitlySelectedSubtypes);
|
||||
allowsImplicitlySelectedSubtypes,
|
||||
UserHandle.myUserId());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3320,7 +3321,8 @@ public final class InputMethodManager {
|
||||
return false;
|
||||
}
|
||||
final List<InputMethodSubtype> enabledSubtypes =
|
||||
mServiceInvoker.getEnabledInputMethodSubtypeList(imeId, true);
|
||||
mServiceInvoker.getEnabledInputMethodSubtypeList(imeId, true,
|
||||
UserHandle.myUserId());
|
||||
final int numSubtypes = enabledSubtypes.size();
|
||||
for (int i = 0; i < numSubtypes; ++i) {
|
||||
final InputMethodSubtype enabledSubtype = enabledSubtypes.get(i);
|
||||
|
||||
@@ -45,8 +45,11 @@ interface IInputMethodManager {
|
||||
+ "android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true)")
|
||||
List<InputMethodInfo> getEnabledInputMethodList(int userId);
|
||||
|
||||
@JavaPassthrough(annotation="@android.annotation.RequiresPermission(value = "
|
||||
+ "android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true)")
|
||||
List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in @nullable String imiId,
|
||||
boolean allowsImplicitlySelectedSubtypes);
|
||||
boolean allowsImplicitlySelectedSubtypes, int userId);
|
||||
|
||||
@nullable InputMethodSubtype getLastInputMethodSubtype();
|
||||
|
||||
boolean showSoftInput(in IInputMethodClient client, @nullable IBinder windowToken, int flags,
|
||||
|
||||
@@ -2202,16 +2202,20 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
|
||||
* @param imiId if null, returns enabled subtypes for the current {@link InputMethodInfo}.
|
||||
* @param allowsImplicitlySelectedSubtypes {@code true} to return the implicitly selected
|
||||
* subtypes.
|
||||
* @param userId the user ID to be queried about.
|
||||
*/
|
||||
@Override
|
||||
public List<InputMethodSubtype> getEnabledInputMethodSubtypeList(String imiId,
|
||||
boolean allowsImplicitlySelectedSubtypes) {
|
||||
final int callingUserId = UserHandle.getCallingUserId();
|
||||
boolean allowsImplicitlySelectedSubtypes, @UserIdInt int userId) {
|
||||
if (UserHandle.getCallingUserId() != userId) {
|
||||
mContext.enforceCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL, null);
|
||||
}
|
||||
|
||||
synchronized (ImfLock.class) {
|
||||
final long ident = Binder.clearCallingIdentity();
|
||||
try {
|
||||
return getEnabledInputMethodSubtypeListLocked(imiId,
|
||||
allowsImplicitlySelectedSubtypes, callingUserId);
|
||||
allowsImplicitlySelectedSubtypes, userId);
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(ident);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user