public void onAddKey(final Key newKey) {
   final Key key = (mKeysCache != null) ? mKeysCache.get(newKey) : newKey;
   final boolean isSpacer = key.isSpacer();
   if (isSpacer && key.getWidth() == 0) {
     // Ignore zero width {@link Spacer}.
     return;
   }
   mKeys.add(key);
   if (isSpacer) {
     return;
   }
   updateHistogram(key);
   if (key.getCode() == KeyboardConstants.CODE_SHIFT) {
     mShiftKeys.add(key);
   }
   if (key.altCodeWhileTyping()) {
     mAltCodeKeysWhileTyping.add(key);
   }
 }