diff options
Diffstat (limited to 'core/java')
6 files changed, 34 insertions, 4 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 02302a20fe38..f9ed0e3db499 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -81,6 +81,7 @@ class IInputMethodWrapper extends IInputMethod.Stub private static final int DO_CAN_START_STYLUS_HANDWRITING = 100; private static final int DO_START_STYLUS_HANDWRITING = 110; private static final int DO_INIT_INK_WINDOW = 120; + private static final int DO_FINISH_STYLUS_HANDWRITING = 130; final WeakReference<InputMethodServiceInternal> mTarget; final Context mContext; @@ -263,6 +264,10 @@ class IInputMethodWrapper extends IInputMethod.Stub inputMethod.initInkWindow(); return; } + case DO_FINISH_STYLUS_HANDWRITING: { + inputMethod.finishStylusHandwriting(); + return; + } } Log.w(TAG, "Unhandled message code: " + msg.what); @@ -427,4 +432,10 @@ class IInputMethodWrapper extends IInputMethod.Stub public void initInkWindow() { mCaller.executeOrSendMessage(mCaller.obtainMessage(DO_INIT_INK_WINDOW)); } + + @BinderThread + @Override + public void finishStylusHandwriting() { + mCaller.executeOrSendMessage(mCaller.obtainMessage(DO_FINISH_STYLUS_HANDWRITING)); + } } diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index b46bb3257c86..4fdd53425328 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -994,6 +994,15 @@ public class InputMethodService extends AbstractInputMethodService { /** * {@inheritDoc} + * @hide + */ + @Override + public void finishStylusHandwriting() { + InputMethodService.this.finishStylusHandwriting(); + } + + /** + * {@inheritDoc} */ @MainThread @Override @@ -2461,7 +2470,7 @@ public class InputMethodService extends AbstractInputMethodService { mHandwritingEventReceiver = null; mInkWindow.hide(false /* remove */); - mPrivOps.finishStylusHandwriting(requestId); + mPrivOps.resetStylusHandwriting(requestId); mOnPreparedStylusHwCalled = false; onFinishStylusHandwriting(); } diff --git a/core/java/android/view/inputmethod/InputMethod.java b/core/java/android/view/inputmethod/InputMethod.java index fd336a27bb67..6209b46997e8 100644 --- a/core/java/android/view/inputmethod/InputMethod.java +++ b/core/java/android/view/inputmethod/InputMethod.java @@ -414,4 +414,12 @@ public interface InputMethod { // intentionally empty } + /** + * Finish stylus handwriting session. + * @hide + */ + default void finishStylusHandwriting() { + // intentionally empty + } + } diff --git a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl index b18c98b58516..2ee47b64b1a5 100644 --- a/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl +++ b/core/java/com/android/internal/inputmethod/IInputMethodPrivilegedOperations.aidl @@ -43,5 +43,5 @@ oneway interface IInputMethodPrivilegedOperations { void notifyUserActionAsync(); void applyImeVisibilityAsync(IBinder showOrHideInputToken, boolean setVisible); void onStylusHandwritingReady(int requestId, int pid); - void finishStylusHandwriting(int requestId); + void resetStylusHandwriting(int requestId); } diff --git a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java index e8a2d810d563..15d7acfb6e0a 100644 --- a/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java +++ b/core/java/com/android/internal/inputmethod/InputMethodPrivilegedOperations.java @@ -416,13 +416,13 @@ public final class InputMethodPrivilegedOperations { * @param requestId */ @AnyThread - public void finishStylusHandwriting(int requestId) { + public void resetStylusHandwriting(int requestId) { final IInputMethodPrivilegedOperations ops = mOps.getAndWarnIfNull(); if (ops == null) { return; } try { - ops.finishStylusHandwriting(requestId); + ops.resetStylusHandwriting(requestId); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } diff --git a/core/java/com/android/internal/view/IInputMethod.aidl b/core/java/com/android/internal/view/IInputMethod.aidl index 273c5f170812..40d89db6165c 100644 --- a/core/java/com/android/internal/view/IInputMethod.aidl +++ b/core/java/com/android/internal/view/IInputMethod.aidl @@ -67,4 +67,6 @@ oneway interface IInputMethod { in List<MotionEvent> events); void initInkWindow(); + + void finishStylusHandwriting(); } |
