From 31ff2a4335d6cea0a5ebc11268833ceb99a4fa72 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 25 Dec 2013 17:07:35 +0900
Subject: [PATCH] [IL45] Remove lingering messages

Bug: 8636060
And possibly bug: 12085864

Change-Id: I867036bc3d8bd255dc8ceebdd30e28b4b3dc4b2d
---
 .../src/com/android/inputmethod/latin/LatinIME.java | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index fb3a6dfb7e..4679a93b7f 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1338,6 +1338,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         private void updateBatchInput(final InputPointers batchPointers,
                 final int sequenceNumber, final boolean forEnd) {
             synchronized (mLock) {
+                mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
                 if (!mInBatchInput) {
                     // Batch input has ended or canceled while the message was being delivered.
                     return;
@@ -1374,11 +1375,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         // Called on the UI thread by LatinIME.
         public void onUpdateBatchInput(final InputPointers batchPointers,
                 final int sequenceNumber) {
-            if (mHandler.hasMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP)) {
-                return;
+            synchronized (mLock) {
+                if (mHandler.hasMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP)) {
+                    return;
+                }
+                mHandler.obtainMessage(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP,
+                        0 /* arg1 */,sequenceNumber /* arg2 */,
+                        batchPointers /* obj */).sendToTarget();
             }
-            mHandler.obtainMessage(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP, 0 /* arg1 */,
-                    sequenceNumber /* arg2 */, batchPointers /* obj */).sendToTarget();
         }
 
         /**
@@ -1391,6 +1395,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
         // Called on the UI thread by LatinIME.
         public void onCancelBatchInput() {
             synchronized (mLock) {
+                mHandler.removeMessages(MSG_UPDATE_GESTURE_PREVIEW_AND_SUGGESTION_STRIP);
                 mInBatchInput = false;
             }
         }
-- 
GitLab