diff options
| author | 2021-04-16 14:37:12 +0800 | |
|---|---|---|
| committer | 2021-04-20 17:46:27 +0800 | |
| commit | c84b3e15df74382ffd00cfd8eff24b1c7948e614 (patch) | |
| tree | 5d44023efa0e8e51b2d00736c1b64b0e247204c8 | |
| parent | 60f71b5b01f435011bb464624826ec339d493ee1 (diff) | |
Make IInputMethodPrivilegedOperations to async (3/N)
-. Remove VoidResultCallback of reportFullscreenMode
and let it be truly asynchronous.
-. Rename this method to reportFullscreenModeAsync.
Bug: 183587528
Test: atest CtsInputMethodTestCases
Test: Manually verified as follows.
1. Build flame-userdebug and flash it.
2. Make sure that the screen rotation is enabled.
3. make -j SoftKeyboard
4. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk
5. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard
6. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard
7. make -j EditTextVariations
8. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/arm64/EditTextVariations.apk
9. adb shell am start -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations
10. Make sure that the device is in the landscape mode,
and the SoftKeyboard sample IME is not yet shown.
11. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "false"
12. Tap the first edit field then make sure that SoftKeyboard
sample IME becomes visible in the fullscreen mode.
13. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "true"
14. Tap the down button on the navbar to hide the SoftKeyboard
sample IME.
15. adb shell dumpsys input_method | grep mFullscreenMode
Then make sure the mFullscreenMode is "false"
Change-Id: I92e8b0d420be3dd16cc4f3ba29e0bde5f12ab2ce
4 files changed, 7 insertions, 11 deletions
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 4ee5383a56be..ad5c21295e15 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -1628,7 +1628,7 @@ public class InputMethodService extends AbstractInputMethodService { } private void reportFullscreenMode() { - mPrivOps.reportFullscreenMode(mIsFullscreen); + mPrivOps.reportFullscreenModeAsync(mIsFullscreen); } /** diff --git a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl index 20e520efc761..e6ace331f23a 100644 --- a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl +++ b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl @@ -33,7 +33,7 @@ oneway interface IInputMethodPrivilegedOperations { void reportStartInput(in IBinder startInputToken, in IVoidResultCallback resultCallback); void createInputContentUriToken(in Uri contentUri, in String packageName, in IIInputContentUriTokenResultCallback resultCallback); - void reportFullscreenMode(boolean fullscreen, in IVoidResultCallback resultCallback); + void reportFullscreenModeAsync(boolean fullscreen); void setInputMethod(String id, in IVoidResultCallback resultCallback); void setInputMethodAndSubtype(String id, in InputMethodSubtype subtype, in IVoidResultCallback resultCallback); diff --git a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java index 10009140a7c0..c2760a5cca44 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java +++ b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java @@ -172,21 +172,18 @@ public final class InputMethodPrivilegedOperations { } /** - * Calls {@link IInputMethodPrivilegedOperations#reportFullscreenMode(boolean, - * IVoidResultCallback)}. + * Calls {@link IInputMethodPrivilegedOperations#reportFullscreenModeAsync(boolean)}. * * @param fullscreen {@code true} if the IME enters full screen mode */ @AnyThread - public void reportFullscreenMode(boolean fullscreen) { + public void reportFullscreenModeAsync(boolean fullscreen) { final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull(); if (ops == null) { return; } try { - final Completable.Void value = Completable.createVoid(); - ops.reportFullscreenMode(fullscreen, ResultCallbacks.of(value)); - Completable.getResult(value); + ops.reportFullscreenModeAsync(fullscreen); } 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 7994fccbd650..2b9c08667028 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -6007,9 +6007,8 @@ public class InputMethodManagerService extends IInputMethodManager.Stub @BinderThread @Override - public void reportFullscreenMode(boolean fullscreen, IVoidResultCallback resultCallback) { - CallbackUtils.onResult(resultCallback, - () -> mImms.reportFullscreenMode(mToken, fullscreen)); + public void reportFullscreenModeAsync(boolean fullscreen) { + mImms.reportFullscreenMode(mToken, fullscreen); } @BinderThread |