diff options
Diffstat (limited to 'core/java/android/inputmethodservice/InputMethodService.java')
| -rw-r--r-- | core/java/android/inputmethodservice/InputMethodService.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index aa3c3611fc7d..e02a01e5887e 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -135,6 +135,7 @@ import com.android.internal.inputmethod.ImeTracing; import com.android.internal.inputmethod.InputMethodPrivilegedOperations; import com.android.internal.inputmethod.InputMethodPrivilegedOperationsRegistry; import com.android.internal.view.IInlineSuggestionsRequestCallback; +import com.android.internal.view.IInputContext; import com.android.internal.view.InlineSuggestionsRequestInfo; import java.io.FileDescriptor; @@ -1063,8 +1064,30 @@ public class InputMethodService extends AbstractInputMethodService { public final void removeImeSurface() { InputMethodService.this.scheduleImeSurfaceRemoval(); } + + /** + * {@inheritDoc} + * @hide + */ + @Override + public final void invalidateInputInternal(@NonNull EditorInfo editorInfo, + @NonNull IInputContext inputContext, int sessionId) { + if (mStartedInputConnection instanceof RemoteInputConnection) { + final RemoteInputConnection ric = (RemoteInputConnection) mStartedInputConnection; + if (!ric.isSameConnection(inputContext)) { + // This is not an error, and can be safely ignored. + if (DEBUG) { + Log.d(TAG, "ignoring invalidateInput() due to context mismatch."); + } + return; + } + editorInfo.makeCompatible(getApplicationInfo().targetSdkVersion); + getInputMethodInternal().restartInput(new RemoteInputConnection(ric, sessionId), + editorInfo); + } + } } - + /** * Information about where interesting parts of the input method UI appear. */ |
