From e702c9d3815baefc921ecdc240b46b9c6b539941 Mon Sep 17 00:00:00 2001 From: Wilson Wu Date: Wed, 28 Apr 2021 14:40:08 +0800 Subject: [PATCH] Make IInputMethodPrivilegedOperations to async (5/N) -. Remove VoidResultCallback of notifyUserAction. and let it be truly asynchronous. -. Rename this method to notifyUserActionAsync. Bug: 183587528 Test: atest CtsInputMethodTestCases Change-Id: I384fd689b6bd1d418ff5208444fbba2c1eac6f85 --- .../android/inputmethodservice/InputMethodService.java | 2 +- .../inputmethod/IInputMethodPrivilegedOperations.aidl | 2 +- .../inputmethod/InputMethodPrivilegedOperations.java | 8 +++----- .../server/inputmethod/InputMethodManagerService.java | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 4b8e37c560616..ed544dedd39da 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -3313,7 +3313,7 @@ public class InputMethodService extends AbstractInputMethodService { if (mNotifyUserActionSent) { return; } - mPrivOps.notifyUserAction(); + mPrivOps.notifyUserActionAsync(); mNotifyUserActionSent = true; } } diff --git a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl index 436596611f83c..c45e75ddbb06a 100644 --- a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl +++ b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl @@ -43,7 +43,7 @@ oneway interface IInputMethodPrivilegedOperations { void switchToPreviousInputMethod(in IBooleanResultCallback resultCallback); void switchToNextInputMethod(boolean onlyCurrentIme, in IBooleanResultCallback resultCallback); void shouldOfferSwitchingToNextInputMethod(in IBooleanResultCallback resultCallback); - void notifyUserAction(in IVoidResultCallback resultCallback); + void notifyUserActionAsync(); void applyImeVisibility(IBinder showOrHideInputToken, boolean setVisible, in IVoidResultCallback resultCallback); } diff --git a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java index 555488d68866b..ec2bb858f0a2d 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java +++ b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java @@ -365,18 +365,16 @@ public final class InputMethodPrivilegedOperations { } /** - * Calls {@link IInputMethodPrivilegedOperations#notifyUserAction(IVoidResultCallback)} + * Calls {@link IInputMethodPrivilegedOperations#notifyUserActionAsync()} */ @AnyThread - public void notifyUserAction() { + public void notifyUserActionAsync() { final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull(); if (ops == null) { return; } try { - final Completable.Void value = Completable.createVoid(); - ops.notifyUserAction(ResultCallbacks.of(value)); - Completable.getResult(value); + ops.notifyUserActionAsync(); } 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 94a5099b45dad..2fd430352f1cb 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -6069,8 +6069,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @BinderThread @Override - public void notifyUserAction(IVoidResultCallback resultCallback) { - CallbackUtils.onResult(resultCallback, () -> mImms.notifyUserAction(mToken)); + public void notifyUserActionAsync() { + mImms.notifyUserAction(mToken); } @BinderThread