Java Code Examples for android.view.KeyEvent#getNumber()

The following examples show how to use android.view.KeyEvent#getNumber() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DtmfDialogFragment.java    From CSipSimple with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void onTrigger(int keyCode, int dialTone) {
    if(dialPadTextView != null) {
        // Update text view
        KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
        char nbr = event.getNumber();
        StringBuilder sb = new StringBuilder(dialPadTextView.getText());
        sb.append(nbr);
        dialPadTextView.setText(sb.toString());
    }
    if(getSherlockActivity() instanceof OnDtmfListener) {
        Integer callId = getArguments().getInt(EXTRA_CALL_ID);
        if(callId != null) {
            ((OnDtmfListener) getSherlockActivity()).OnDtmf(callId, keyCode, dialTone);
        }else {
            Log.w(THIS_FILE, "Impossible to find the call associated to this view");
        }
    }
    
}
 
Example 2
Source File: DialerKeyListener.java    From android_9.0.0_r45 with Apache License 2.0 4 votes vote down vote up
/**
 * Overrides the superclass's lookup method to prefer the number field
 * from the KeyEvent.
 */
protected int lookup(KeyEvent event, Spannable content) {
    int meta = getMetaState(content, event);
    int number = event.getNumber();

    /*
     * Prefer number if no meta key is active, or if it produces something
     * valid and the meta lookup does not.
     */
    if ((meta & (MetaKeyKeyListener.META_ALT_ON | MetaKeyKeyListener.META_SHIFT_ON)) == 0) {
        if (number != 0) {
            return number;
        }
    }

    int match = super.lookup(event, content);

    if (match != 0) {
        return match;
    } else {
        /*
         * If a meta key is active but the lookup with the meta key
         * did not produce anything, try some other meta keys, because
         * the user might have pressed SHIFT when they meant ALT,
         * or vice versa.
         */

        if (meta != 0) {
            KeyData kd = new KeyData();
            char[] accepted = getAcceptedChars();

            if (event.getKeyData(kd)) {
                for (int i = 1; i < kd.meta.length; i++) {
                    if (ok(accepted, kd.meta[i])) {
                        return kd.meta[i];
                    }
                }
            }
        }

        /*
         * Otherwise, use the number associated with the key, since
         * whatever they wanted to do with the meta key does not
         * seem to be valid here.
         */

        return number;
    }
}