Key should be distinguished also by moreKeys contents and etc.

Change-Id: Ib2caabee6af78153b5a7be0e4df522288f2a7d48
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index b90d45d..cf3a437 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -335,18 +335,18 @@
                 key.mHintLabel,
                 key.mIconId,
                 key.mBackgroundType,
+                Arrays.hashCode(key.mMoreKeys),
+                key.mOutputText,
+                key.mActionFlags,
+                key.mLabelFlags,
                 // Key can be distinguishable without the following members.
                 // key.mAltCode,
-                // key.mOutputText,
-                // key.mActionFlags,
-                // key.mLabelFlags,
                 // key.mDisabledIconId,
                 // key.mPreviewIconId,
                 // key.mHorizontalGap,
                 // key.mVerticalGap,
                 // key.mVisualInsetLeft,
                 // key.mVisualInsetRight,
-                // Arrays.hashCode(key.mMoreKeys),
                 // key.mMaxMoreKeysColumn,
         });
     }
@@ -361,7 +361,11 @@
                 && TextUtils.equals(o.mLabel, mLabel)
                 && TextUtils.equals(o.mHintLabel, mHintLabel)
                 && o.mIconId == mIconId
-                && o.mBackgroundType == mBackgroundType;
+                && o.mBackgroundType == mBackgroundType
+                && Arrays.equals(o.mMoreKeys, mMoreKeys)
+                && TextUtils.equals(o.mOutputText, mOutputText)
+                && o.mActionFlags == mActionFlags
+                && o.mLabelFlags == mLabelFlags;
     }
 
     @Override