Example usage for java.lang Character NON_SPACING_MARK

List of usage examples for java.lang Character NON_SPACING_MARK

Introduction

In this page you can find the example usage for java.lang Character NON_SPACING_MARK.

Prototype

byte NON_SPACING_MARK

To view the source code for java.lang Character NON_SPACING_MARK.

Click Source Link

Document

General category "Mn" in the Unicode specification.

Usage

From source file:org.apache.orc.impl.mask.RedactMaskFactory.java

/**
 * Given a UTF code point, find the replacement codepoint
 * @param codepoint a UTF character/* w w  w.j a v a2  s.c  om*/
 * @return the replacement codepoint
 */
int getReplacement(int codepoint) {
    switch (Character.getType(codepoint)) {
    case Character.UPPERCASE_LETTER:
        return UPPPER_REPLACEMENT;
    case Character.LOWERCASE_LETTER:
        return LOWER_REPLACEMENT;
    case Character.TITLECASE_LETTER:
    case Character.MODIFIER_LETTER:
    case Character.OTHER_LETTER:
        return OTHER_LETTER_REPLACEMENT;
    case Character.NON_SPACING_MARK:
    case Character.ENCLOSING_MARK:
    case Character.COMBINING_SPACING_MARK:
        return MARK_REPLACEMENT;
    case Character.DECIMAL_DIGIT_NUMBER:
        return DIGIT_CP_REPLACEMENT;
    case Character.LETTER_NUMBER:
    case Character.OTHER_NUMBER:
        return OTHER_NUMBER_REPLACEMENT;
    case Character.SPACE_SEPARATOR:
    case Character.LINE_SEPARATOR:
    case Character.PARAGRAPH_SEPARATOR:
        return SEPARATOR_REPLACEMENT;
    case Character.MATH_SYMBOL:
    case Character.CURRENCY_SYMBOL:
    case Character.MODIFIER_SYMBOL:
    case Character.OTHER_SYMBOL:
        return SYMBOL_REPLACEMENT;
    case Character.DASH_PUNCTUATION:
    case Character.START_PUNCTUATION:
    case Character.END_PUNCTUATION:
    case Character.CONNECTOR_PUNCTUATION:
    case Character.OTHER_PUNCTUATION:
        return PUNCTUATION_REPLACEMENT;
    default:
        return OTHER_REPLACEMENT;
    }
}

From source file:org.distantshoresmedia.keyboard.LatinIME.java

public void onKey(int primaryCode, int[] keyCodes, int x, int y) {
    long when = SystemClock.uptimeMillis();
    if (primaryCode != Keyboard.KEYCODE_DELETE || when > mLastKeyTime + QUICK_PRESS) {
        mDeleteCount = 0;//from  ww w .j  a  va  2 s .  c om
    }
    mLastKeyTime = when;
    final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
    switch (primaryCode) {
    case Keyboard.KEYCODE_DELETE:
        if (processMultiKey(primaryCode)) {
            break;
        }
        handleBackspace();
        mDeleteCount++;
        TKIMELogger.logOnDelete();
        break;
    case Keyboard.KEYCODE_SHIFT:
        // Shift key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            handleShift();
        break;
    case Keyboard.KEYCODE_MODE_CHANGE:
        // Symbol key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            changeKeyboardMode();
        break;
    case TKKeyboardView.KEYCODE_CTRL_LEFT:
        // Ctrl key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModCtrl(!mModCtrl);
        break;
    case TKKeyboardView.KEYCODE_ALT_LEFT:
        // Alt key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModAlt(!mModAlt);
        break;
    case TKKeyboardView.KEYCODE_META_LEFT:
        // Meta key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModMeta(!mModMeta);
        break;
    case TKKeyboardView.KEYCODE_FN:
        if (!distinctMultiTouch)
            setModFn(!mModFn);
        break;
    case Keyboard.KEYCODE_CANCEL:
        if (!isShowingOptionDialog()) {
            handleClose();
        }
        break;
    case TKKeyboardView.KEYCODE_OPTIONS:
        onOptionKeyPressed();
        break;
    case TKKeyboardView.KEYCODE_OPTIONS_LONGPRESS:
        onOptionKeyLongPressed();
        break;
    case TKKeyboardView.KEYCODE_COMPOSE:
        mComposeMode = !mComposeMode;
        mComposeBuffer.clear();
        break;
    case TKKeyboardView.KEYCODE_NEXT_LANGUAGE:
        toggleLanguage(false, true);
        break;
    case TKKeyboardView.KEYCODE_PREV_LANGUAGE:
        toggleLanguage(false, false);
        break;
    case TKKeyboardView.KEYCODE_VOICE:
        //            if (mVoiceRecognitionTrigger.isInstalled()) {
        //                mVoiceRecognitionTrigger.startVoiceRecognition();
        //            }
        //startListening(false /* was a button press, was not a swipe */);
        break;
    case 9 /* Tab */:
        if (processMultiKey(primaryCode)) {
            break;
        }
        sendTab();
        break;
    case TKKeyboardView.KEYCODE_ESCAPE:
        if (processMultiKey(primaryCode)) {
            break;
        }
        sendEscape();
        break;
    case TKKeyboardView.KEYCODE_DPAD_UP:
    case TKKeyboardView.KEYCODE_DPAD_DOWN:
    case TKKeyboardView.KEYCODE_DPAD_LEFT:
    case TKKeyboardView.KEYCODE_DPAD_RIGHT:
    case TKKeyboardView.KEYCODE_DPAD_CENTER:
    case TKKeyboardView.KEYCODE_HOME:
    case TKKeyboardView.KEYCODE_END:
    case TKKeyboardView.KEYCODE_PAGE_UP:
    case TKKeyboardView.KEYCODE_PAGE_DOWN:
    case TKKeyboardView.KEYCODE_FKEY_F1:
    case TKKeyboardView.KEYCODE_FKEY_F2:
    case TKKeyboardView.KEYCODE_FKEY_F3:
    case TKKeyboardView.KEYCODE_FKEY_F4:
    case TKKeyboardView.KEYCODE_FKEY_F5:
    case TKKeyboardView.KEYCODE_FKEY_F6:
    case TKKeyboardView.KEYCODE_FKEY_F7:
    case TKKeyboardView.KEYCODE_FKEY_F8:
    case TKKeyboardView.KEYCODE_FKEY_F9:
    case TKKeyboardView.KEYCODE_FKEY_F10:
    case TKKeyboardView.KEYCODE_FKEY_F11:
    case TKKeyboardView.KEYCODE_FKEY_F12:
    case TKKeyboardView.KEYCODE_FORWARD_DEL:
    case TKKeyboardView.KEYCODE_INSERT:
    case TKKeyboardView.KEYCODE_SYSRQ:
    case TKKeyboardView.KEYCODE_BREAK:
    case TKKeyboardView.KEYCODE_NUM_LOCK:
    case TKKeyboardView.KEYCODE_SCROLL_LOCK:
        if (processMultiKey(primaryCode)) {
            break;
        }
        // send as plain keys, or as escape sequence if needed
        sendSpecialKey(-primaryCode);
        break;
    default:
        if (!mComposeMode && mDeadKeysActive && Character.getType(primaryCode) == Character.NON_SPACING_MARK) {
            //Log.i(TAG, "possible dead character: " + primaryCode);
            if (!mDeadAccentBuffer.execute(primaryCode)) {
                //Log.i(TAG, "double dead key");
                break; // pressing a dead key twice produces spacing equivalent
            }
            updateShiftKeyState(getCurrentInputEditorInfo());
            break;
        }
        if (processMultiKey(primaryCode)) {
            break;
        }
        if (primaryCode != ASCII_ENTER) {
            mJustAddedAutoSpace = false;
        }
        TKIMEUtil.RingCharBuffer.getInstance().push((char) primaryCode, x, y);
        TKIMELogger.logOnInputChar();
        if (isWordSeparator(primaryCode)) {
            handleSeparator(primaryCode);
        } else {
            handleCharacter(primaryCode, keyCodes);
        }
        // Cancel the just reverted state
        mJustRevertedSeparator = null;
    }
    mKeyboardSwitcher.onKey(primaryCode);
    // Reset after any single keystroke
    mEnteredText = null;
    //mDeadAccentBuffer.clear();  // FIXME
}

From source file:org.pocketworkstation.pckeyboard.LatinIME.java

public void onKey(int primaryCode, int[] keyCodes, int x, int y) {
    long when = SystemClock.uptimeMillis();
    if (primaryCode != Keyboard.KEYCODE_DELETE || when > mLastKeyTime + QUICK_PRESS) {
        mDeleteCount = 0;/*from  ww  w .j a  v a2 s .com*/
    }
    mLastKeyTime = when;
    final boolean distinctMultiTouch = mKeyboardSwitcher.hasDistinctMultitouch();
    switch (primaryCode) {
    case Keyboard.KEYCODE_DELETE:
        if (processMultiKey(primaryCode)) {
            break;
        }
        handleBackspace();
        mDeleteCount++;
        break;
    case Keyboard.KEYCODE_SHIFT:
        // Shift key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            handleShift();
        break;
    case Keyboard.KEYCODE_MODE_CHANGE:
        // Symbol key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            changeKeyboardMode();
        break;
    case LatinKeyboardView.KEYCODE_CTRL_LEFT:
        // Ctrl key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModCtrl(!mModCtrl);
        break;
    case LatinKeyboardView.KEYCODE_ALT_LEFT:
        // Alt key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModAlt(!mModAlt);
        break;
    case LatinKeyboardView.KEYCODE_META_LEFT:
        // Meta key is handled in onPress() when device has distinct
        // multi-touch panel.
        if (!distinctMultiTouch)
            setModMeta(!mModMeta);
        break;
    case LatinKeyboardView.KEYCODE_FN:
        if (!distinctMultiTouch)
            setModFn(!mModFn);
        break;
    case Keyboard.KEYCODE_CANCEL:
        if (!isShowingOptionDialog()) {
            handleClose();
        }
        break;
    case LatinKeyboardView.KEYCODE_OPTIONS:
        onOptionKeyPressed();
        break;
    case LatinKeyboardView.KEYCODE_OPTIONS_LONGPRESS:
        onOptionKeyLongPressed();
        break;
    case LatinKeyboardView.KEYCODE_COMPOSE:
        mComposeMode = !mComposeMode;
        mComposeBuffer.clear();
        break;
    case LatinKeyboardView.KEYCODE_NEXT_LANGUAGE:
        toggleLanguage(false, true);
        break;
    case LatinKeyboardView.KEYCODE_PREV_LANGUAGE:
        toggleLanguage(false, false);
        break;
    case LatinKeyboardView.KEYCODE_VOICE:
        if (mVoiceRecognitionTrigger.isInstalled()) {
            mVoiceRecognitionTrigger.startVoiceRecognition();
        }
        //startListening(false /* was a button press, was not a swipe */);
        break;
    case 9 /* Tab */:
        if (processMultiKey(primaryCode)) {
            break;
        }
        sendTab();
        break;
    case LatinKeyboardView.KEYCODE_ESCAPE:
        if (processMultiKey(primaryCode)) {
            break;
        }
        sendEscape();
        break;
    case LatinKeyboardView.KEYCODE_DPAD_UP:
    case LatinKeyboardView.KEYCODE_DPAD_DOWN:
    case LatinKeyboardView.KEYCODE_DPAD_LEFT:
    case LatinKeyboardView.KEYCODE_DPAD_RIGHT:
    case LatinKeyboardView.KEYCODE_DPAD_CENTER:
    case LatinKeyboardView.KEYCODE_HOME:
    case LatinKeyboardView.KEYCODE_END:
    case LatinKeyboardView.KEYCODE_PAGE_UP:
    case LatinKeyboardView.KEYCODE_PAGE_DOWN:
    case LatinKeyboardView.KEYCODE_FKEY_F1:
    case LatinKeyboardView.KEYCODE_FKEY_F2:
    case LatinKeyboardView.KEYCODE_FKEY_F3:
    case LatinKeyboardView.KEYCODE_FKEY_F4:
    case LatinKeyboardView.KEYCODE_FKEY_F5:
    case LatinKeyboardView.KEYCODE_FKEY_F6:
    case LatinKeyboardView.KEYCODE_FKEY_F7:
    case LatinKeyboardView.KEYCODE_FKEY_F8:
    case LatinKeyboardView.KEYCODE_FKEY_F9:
    case LatinKeyboardView.KEYCODE_FKEY_F10:
    case LatinKeyboardView.KEYCODE_FKEY_F11:
    case LatinKeyboardView.KEYCODE_FKEY_F12:
    case LatinKeyboardView.KEYCODE_FORWARD_DEL:
    case LatinKeyboardView.KEYCODE_INSERT:
    case LatinKeyboardView.KEYCODE_SYSRQ:
    case LatinKeyboardView.KEYCODE_BREAK:
    case LatinKeyboardView.KEYCODE_NUM_LOCK:
    case LatinKeyboardView.KEYCODE_SCROLL_LOCK:
        if (processMultiKey(primaryCode)) {
            break;
        }
        // send as plain keys, or as escape sequence if needed
        sendSpecialKey(-primaryCode);
        break;
    default:
        if (!mComposeMode && mDeadKeysActive && Character.getType(primaryCode) == Character.NON_SPACING_MARK) {
            //Log.i(TAG, "possible dead character: " + primaryCode);
            if (!mDeadAccentBuffer.execute(primaryCode)) {
                //Log.i(TAG, "double dead key");
                break; // pressing a dead key twice produces spacing equivalent
            }
            updateShiftKeyState(getCurrentInputEditorInfo());
            break;
        }
        if (processMultiKey(primaryCode)) {
            break;
        }
        if (primaryCode != ASCII_ENTER) {
            mJustAddedAutoSpace = false;
        }
        RingCharBuffer.getInstance().push((char) primaryCode, x, y);
        if (isWordSeparator(primaryCode)) {
            handleSeparator(primaryCode);
        } else {
            handleCharacter(primaryCode, keyCodes);
        }
        // Cancel the just reverted state
        mJustRevertedSeparator = null;
    }
    mKeyboardSwitcher.onKey(primaryCode);
    // Reset after any single keystroke
    mEnteredText = null;
    //mDeadAccentBuffer.clear();  // FIXME
}