Prevent IMEs from switching to another IME that isn't enabled
Fixes an issue where the current IME can switch to any IME, even if it hasn't been enabled. Fixes: 227207653 Test: atest android.view.inputmethod.cts.InputMethodServiceTest Change-Id: I12829de9fa58610a7d53e4b154e1550f0f791e75
This commit is contained in:
@@ -4831,6 +4831,13 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub
|
||||
Slog.w(TAG, "Ignoring setInputMethod of uid " + Binder.getCallingUid()
|
||||
+ " token: " + token);
|
||||
return;
|
||||
} else {
|
||||
// Called with current IME's token.
|
||||
if (mMethodMap.get(id) != null
|
||||
&& mSettings.getEnabledInputMethodListWithFilterLocked(
|
||||
(info) -> info.getId().equals(id)).isEmpty()) {
|
||||
throw new IllegalStateException("Requested IME is not enabled: " + id);
|
||||
}
|
||||
}
|
||||
|
||||
final long ident = Binder.clearCallingIdentity();
|
||||
|
||||
Reference in New Issue
Block a user