Loading core/java/android/inputmethodservice/InputMethodService.java +5 −13 Original line number Diff line number Diff line Loading @@ -967,7 +967,7 @@ public class InputMethodService extends AbstractInputMethodService { Log.d(TAG, "Input should have started before starting Stylus handwriting."); return; } maybeCreateAndInitInkWindow(); maybeCreateInkWindow(); if (!mOnPreparedStylusHwCalled) { // prepare hasn't been called by Stylus HOVER. onPrepareStylusHandwriting(); Loading Loading @@ -1027,7 +1027,8 @@ public class InputMethodService extends AbstractInputMethodService { */ @Override public void initInkWindow() { maybeCreateAndInitInkWindow(); maybeCreateInkWindow(); mInkWindow.initOnly(); onPrepareStylusHandwriting(); mOnPreparedStylusHwCalled = true; } Loading @@ -1035,13 +1036,11 @@ public class InputMethodService extends AbstractInputMethodService { /** * Create and attach token to Ink window if it wasn't already created. */ private void maybeCreateAndInitInkWindow() { private void maybeCreateInkWindow() { if (mInkWindow == null) { mInkWindow = new InkWindow(mWindow.getContext()); mInkWindow.setToken(mToken); } mInkWindow.initOnly(); setInkViewVisibilityListener(); // TODO(b/243571274): set an idle-timeout after which InkWindow is removed. } Loading Loading @@ -2470,19 +2469,13 @@ public class InputMethodService extends AbstractInputMethodService { * @param motionEvent {@link MotionEvent} from stylus. */ public void onStylusHandwritingMotionEvent(@NonNull MotionEvent motionEvent) { if (mInkWindow != null && mInkWindow.isInkViewVisible()) { if (mInkWindow.isInkViewVisible()) { mInkWindow.getDecorView().dispatchTouchEvent(motionEvent); } else { if (mPendingEvents == null) { mPendingEvents = new RingBuffer(MotionEvent.class, MAX_EVENTS_BUFFER); } mPendingEvents.append(motionEvent); setInkViewVisibilityListener(); } } private void setInkViewVisibilityListener() { if (mInkWindow != null) { mInkWindow.setInkViewVisibilityListener(() -> { if (mPendingEvents != null && !mPendingEvents.isEmpty()) { for (MotionEvent event : mPendingEvents.toArray()) { Loading Loading @@ -2546,7 +2539,6 @@ public class InputMethodService extends AbstractInputMethodService { mHandler.removeCallbacks(mFinishHwRunnable); } mFinishHwRunnable = null; mPendingEvents.clear(); final int requestId = mHandwritingRequestId.getAsInt(); mHandwritingRequestId = OptionalInt.empty(); Loading Loading
core/java/android/inputmethodservice/InputMethodService.java +5 −13 Original line number Diff line number Diff line Loading @@ -967,7 +967,7 @@ public class InputMethodService extends AbstractInputMethodService { Log.d(TAG, "Input should have started before starting Stylus handwriting."); return; } maybeCreateAndInitInkWindow(); maybeCreateInkWindow(); if (!mOnPreparedStylusHwCalled) { // prepare hasn't been called by Stylus HOVER. onPrepareStylusHandwriting(); Loading Loading @@ -1027,7 +1027,8 @@ public class InputMethodService extends AbstractInputMethodService { */ @Override public void initInkWindow() { maybeCreateAndInitInkWindow(); maybeCreateInkWindow(); mInkWindow.initOnly(); onPrepareStylusHandwriting(); mOnPreparedStylusHwCalled = true; } Loading @@ -1035,13 +1036,11 @@ public class InputMethodService extends AbstractInputMethodService { /** * Create and attach token to Ink window if it wasn't already created. */ private void maybeCreateAndInitInkWindow() { private void maybeCreateInkWindow() { if (mInkWindow == null) { mInkWindow = new InkWindow(mWindow.getContext()); mInkWindow.setToken(mToken); } mInkWindow.initOnly(); setInkViewVisibilityListener(); // TODO(b/243571274): set an idle-timeout after which InkWindow is removed. } Loading Loading @@ -2470,19 +2469,13 @@ public class InputMethodService extends AbstractInputMethodService { * @param motionEvent {@link MotionEvent} from stylus. */ public void onStylusHandwritingMotionEvent(@NonNull MotionEvent motionEvent) { if (mInkWindow != null && mInkWindow.isInkViewVisible()) { if (mInkWindow.isInkViewVisible()) { mInkWindow.getDecorView().dispatchTouchEvent(motionEvent); } else { if (mPendingEvents == null) { mPendingEvents = new RingBuffer(MotionEvent.class, MAX_EVENTS_BUFFER); } mPendingEvents.append(motionEvent); setInkViewVisibilityListener(); } } private void setInkViewVisibilityListener() { if (mInkWindow != null) { mInkWindow.setInkViewVisibilityListener(() -> { if (mPendingEvents != null && !mPendingEvents.isEmpty()) { for (MotionEvent event : mPendingEvents.toArray()) { Loading Loading @@ -2546,7 +2539,6 @@ public class InputMethodService extends AbstractInputMethodService { mHandler.removeCallbacks(mFinishHwRunnable); } mFinishHwRunnable = null; mPendingEvents.clear(); final int requestId = mHandwritingRequestId.getAsInt(); mHandwritingRequestId = OptionalInt.empty(); Loading