diff options
Diffstat (limited to 'android/view/textservice/SpellCheckerSession.java')
-rw-r--r-- | android/view/textservice/SpellCheckerSession.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/android/view/textservice/SpellCheckerSession.java b/android/view/textservice/SpellCheckerSession.java index 779eefb1..886f5c82 100644 --- a/android/view/textservice/SpellCheckerSession.java +++ b/android/view/textservice/SpellCheckerSession.java @@ -445,9 +445,15 @@ public class SpellCheckerSession { private void processOrEnqueueTask(SpellCheckerParams scp) { ISpellCheckerSession session; synchronized (this) { + if (scp.mWhat == TASK_CLOSE && (mState == STATE_CLOSED_AFTER_CONNECTION + || mState == STATE_CLOSED_BEFORE_CONNECTION)) { + // It is OK to call SpellCheckerSession#close() multiple times. + // Don't output confusing/misleading warning messages. + return; + } if (mState != STATE_WAIT_CONNECTION && mState != STATE_CONNECTED) { Log.e(TAG, "ignoring processOrEnqueueTask due to unexpected mState=" - + taskToString(scp.mWhat) + + stateToString(mState) + " scp.mWhat=" + taskToString(scp.mWhat)); return; } |