From 738468ba1751e50cc624476473ec8e23187b32f3 Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Thu, 15 Apr 2021 19:02:53 +0800 Subject: [PATCH] Make IInputMethodPrivilegedOperations to async (2/N) -. Remove VoidResultCallback of reportStartInput and let it be truly asynchronous. -. Rename this method to reportStartInputAsync. Bug: 183587528 Test: atest CtsInputMethodTestCases Change-Id: Ic8e7f888f78f7c536a9228db02a8b355555d7220 --- .../android/inputmethodservice/InputMethodService.java | 2 +- .../inputmethod/IInputMethodPrivilegedOperations.aidl | 2 +- .../inputmethod/InputMethodPrivilegedOperations.java | 9 +++------ .../server/inputmethod/InputMethodManagerService.java | 5 ++--- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 4ee5383a56be0..f03da7cd390b6 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -718,7 +718,7 @@ public class InputMethodService extends AbstractInputMethodService { public final void dispatchStartInputWithToken(@Nullable InputConnection inputConnection, @NonNull EditorInfo editorInfo, boolean restarting, @NonNull IBinder startInputToken) { - mPrivOps.reportStartInput(startInputToken); + mPrivOps.reportStartInputAsync(startInputToken); if (restarting) { restartInput(inputConnection, editorInfo); diff --git a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl index 20e520efc7613..436596611f83c 100644 --- a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl +++ b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl @@ -30,7 +30,7 @@ import com.android.internal.inputmethod.IVoidResultCallback; */ oneway interface IInputMethodPrivilegedOperations { void setImeWindowStatusAsync(int vis, int backDisposition); - void reportStartInput(in IBinder startInputToken, in IVoidResultCallback resultCallback); + void reportStartInputAsync(in IBinder startInputToken); void createInputContentUriToken(in Uri contentUri, in String packageName, in IIInputContentUriTokenResultCallback resultCallback); void reportFullscreenMode(boolean fullscreen, in IVoidResultCallback resultCallback); diff --git a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java index 10009140a7c0e..555488d68866b 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java +++ b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java @@ -123,21 +123,18 @@ public final class InputMethodPrivilegedOperations { } /** - * Calls {@link IInputMethodPrivilegedOperations#reportStartInput(IBinder, - * IVoidResultCallback)}. + * Calls {@link IInputMethodPrivilegedOperations#reportStartInputAsync(IBinder)}. * * @param startInputToken {@link IBinder} token to distinguish startInput session */ @AnyThread - public void reportStartInput(IBinder startInputToken) { + public void reportStartInputAsync(IBinder startInputToken) { final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull(); if (ops == null) { return; } try { - final Completable.Void value = Completable.createVoid(); - ops.reportStartInput(startInputToken, ResultCallbacks.of(value)); - Completable.getResult(value); + ops.reportStartInputAsync(startInputToken); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 7994fccbd650c..f6f6644ab530b 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -5992,9 +5992,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @BinderThread @Override - public void reportStartInput(IBinder startInputToken, IVoidResultCallback resultCallback) { - CallbackUtils.onResult(resultCallback, - () -> mImms.reportStartInput(mToken, startInputToken)); + public void reportStartInputAsync(IBinder startInputToken) { + mImms.reportStartInput(mToken, startInputToken); } @BinderThread