@Override public boolean onKey(View v, int keyCode, android.view.KeyEvent event) { if (event.getAction() == android.view.KeyEvent.ACTION_MULTIPLE) return false; synchronized (this) { Input.KeyEvent keyEvent = keyEventPool.newObject(); keyEvent.keyCode = keyCode; keyEvent.keyChar = (char) event.getUnicodeChar(); if (event.getAction() == android.view.KeyEvent.ACTION_DOWN) { keyEvent.type = Input.KeyEvent.KEY_DOWN; if (keyCode > 0 && keyCode < 127) pressedKeys[keyCode] = true; } if (event.getAction() == android.view.KeyEvent.ACTION_UP) { keyEvent.type = Input.KeyEvent.KEY_UP; if (keyCode > 0 && keyCode < 127) pressedKeys[keyCode] = false; } keyEventsBuffer.add(keyEvent); } return false; }