question: public boolean onKeyEvent ( KeyEvent event , ActionProcessor actionProcessor , KeyboardActionListener keyboardActionListener ) { long extendedKeyCode = KeyComboPreference . keyEventToExtendedKeyCode ( event ) ; if ( ! mTriggerKeys . contains ( extendedKeyCode ) ) { return false ; } if ( event . getAction ( ) == KeyEvent . ACTION_DOWN ) { if ( mPressedKeys . isEmpty ( ) ) { actionProcessor . process ( mAction ) ; if ( keyboardActionListener != null ) { keyboardActionListener . onKeyboardAction ( mAssignedKeysResId ) ; } } mPressedKeys . add ( extendedKeyCode ) ; } else if ( event . getAction ( ) == KeyEvent . ACTION_UP ) { mPressedKeys . remove ( extendedKeyCode ) ; } return true ; }
target:  Process keys assigned to trigger mAction. Action is sent to processor on the first key pressed down. No other key in the group will trigger until after all keys in that group have been released.