Loading core/java/android/inputmethodservice/InputMethodService.java +5 −1 Original line number Diff line number Diff line Loading @@ -472,8 +472,12 @@ public class InputMethodService extends AbstractInputMethodService { */ @MainThread @Override public final void initializeInternal(IBinder token, int displayId, public final void initializeInternal(@NonNull IBinder token, int displayId, IInputMethodPrivilegedOperations privilegedOperations) { if (InputMethodPrivilegedOperationsRegistry.isRegistered(token)) { Log.w(TAG, "The token has already registered, ignore this initialization."); return; } mPrivOps.set(privilegedOperations); InputMethodPrivilegedOperationsRegistry.put(token, mPrivOps); updateInputMethodDisplay(displayId); Loading core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry.java +17 −0 Original line number Diff line number Diff line Loading @@ -132,4 +132,21 @@ public final class InputMethodPrivilegedOperationsRegistry { } } } /** * Check the given IME token registration status. * * @param token IME token * @return {@code true} when the IME token has already registered * {@link InputMethodPrivilegedOperations}, {@code false} otherwise. */ @AnyThread public static boolean isRegistered(IBinder token) { synchronized (sLock) { if (sRegistry == null) { return false; } return sRegistry.containsKey(token); } } } Loading
core/java/android/inputmethodservice/InputMethodService.java +5 −1 Original line number Diff line number Diff line Loading @@ -472,8 +472,12 @@ public class InputMethodService extends AbstractInputMethodService { */ @MainThread @Override public final void initializeInternal(IBinder token, int displayId, public final void initializeInternal(@NonNull IBinder token, int displayId, IInputMethodPrivilegedOperations privilegedOperations) { if (InputMethodPrivilegedOperationsRegistry.isRegistered(token)) { Log.w(TAG, "The token has already registered, ignore this initialization."); return; } mPrivOps.set(privilegedOperations); InputMethodPrivilegedOperationsRegistry.put(token, mPrivOps); updateInputMethodDisplay(displayId); Loading
core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperationsRegistry.java +17 −0 Original line number Diff line number Diff line Loading @@ -132,4 +132,21 @@ public final class InputMethodPrivilegedOperationsRegistry { } } } /** * Check the given IME token registration status. * * @param token IME token * @return {@code true} when the IME token has already registered * {@link InputMethodPrivilegedOperations}, {@code false} otherwise. */ @AnyThread public static boolean isRegistered(IBinder token) { synchronized (sLock) { if (sRegistry == null) { return false; } return sRegistry.containsKey(token); } } }