From edd94a449e293c07779ac50e98aca3ad92910d92 Mon Sep 17 00:00:00 2001 From: Dan Zivkovic Date: Thu, 26 Feb 2015 11:10:37 -0800 Subject: Ignore the Emoji key when not connected. When the LatinIME does not have an active InputConnection, it will not try to toggle the Emoji keyboard. Bug 19513415. Change-Id: I31f928cd7db1cddd771c548cd3dc42f8af64d0e2 --- .../inputmethod/latin/EmojiAltPhysicalKeyDetector.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java') diff --git a/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java b/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java index 8116a4983..9b271116d 100644 --- a/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java +++ b/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java @@ -16,6 +16,7 @@ package com.android.inputmethod.latin; +import android.util.Log; import android.view.KeyEvent; import com.android.inputmethod.keyboard.KeyboardSwitcher; @@ -25,10 +26,18 @@ import com.android.inputmethod.latin.settings.Settings; * A class for detecting Emoji-Alt physical key. */ final class EmojiAltPhysicalKeyDetector { + private static final String TAG = "EmojiAltPhysicalKeyDetector"; + + private final RichInputConnection mRichInputConnection; + // True if the Alt key has been used as a modifier. In this case the Alt key up isn't // recognized as an emoji key. private boolean mAltHasBeenUsedAsAModifier; + public EmojiAltPhysicalKeyDetector(final RichInputConnection richInputConnection) { + mRichInputConnection = richInputConnection; + } + /** * Record a down key event. * @param keyEvent a down key event. @@ -62,9 +71,14 @@ final class EmojiAltPhysicalKeyDetector { if (!Settings.getInstance().getCurrent().mEnableEmojiAltPhysicalKey) { return; } - if (!mAltHasBeenUsedAsAModifier) { - onEmojiAltKeyDetected(); + if (mAltHasBeenUsedAsAModifier) { + return; + } + if (!mRichInputConnection.isConnected()) { + Log.w(TAG, "onKeyUp() : No connection to text view"); + return; } + onEmojiAltKeyDetected(); } private static void onEmojiAltKeyDetected() { -- cgit v1.2.3-83-g751a