Revert "Handle non-initalized InkWindow"
This reverts commit c87e17af06ece46a395a852849d139ade9b830c4.
Reason for revert: Breaks stylus handwriting
Change-Id: Ifb11d327eac4b8858aaccfa7e171327f8eb18cdd
diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java
index 9ed55ff..7436601 100644
--- a/core/java/android/inputmethodservice/InputMethodService.java
+++ b/core/java/android/inputmethodservice/InputMethodService.java
@@ -967,7 +967,7 @@
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();
@@ -1027,7 +1027,8 @@
*/
@Override
public void initInkWindow() {
- maybeCreateAndInitInkWindow();
+ maybeCreateInkWindow();
+ mInkWindow.initOnly();
onPrepareStylusHandwriting();
mOnPreparedStylusHwCalled = true;
}
@@ -1035,13 +1036,11 @@
/**
* 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.
}
@@ -2470,19 +2469,13 @@
* @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()) {
@@ -2546,7 +2539,6 @@
mHandler.removeCallbacks(mFinishHwRunnable);
}
mFinishHwRunnable = null;
- mPendingEvents.clear();
final int requestId = mHandwritingRequestId.getAsInt();
mHandwritingRequestId = OptionalInt.empty();