Android Open Source - translationKeyboard Dead Accent Sequence






From Project

Back to project page translationKeyboard.

License

The source code is released under:

GNU General Public License

If you think the Android project translationKeyboard listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2011 Darren Salt/*from w w  w. j  av a 2 s . c om*/
 *
 * Licensed under the Apache License, Version 2.0 (the "Licence"); you may
 * not use this file except in compliance with the Licence. You may obtain
 * a copy of the Licence at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * Licence for the specific language governing permissions and limitations
 * under the Licence.
 */

package org.distantshoresmedia.translationkeyboard;

import java.text.Normalizer;

public class DeadAccentSequence extends ComposeBase {
    private static final String TAG = "HK/DeadAccent";

    public DeadAccentSequence(ComposeSequencing user) {
        init(user);
    }
    
    private static void putAccent(String nonSpacing, String spacing, String ascii) {
        if (ascii == null) ascii = spacing;
        put("" + nonSpacing + " ", ascii);
        put(nonSpacing + nonSpacing, spacing);
        put(Keyboard.DEAD_KEY_PLACEHOLDER + nonSpacing, spacing);
    }
    
    public static String getSpacing(char nonSpacing) {
        String spacing = get("" + Keyboard.DEAD_KEY_PLACEHOLDER + nonSpacing);
        if (spacing == null) spacing = DeadAccentSequence.normalize(" " + nonSpacing);
        if (spacing == null) return "" + nonSpacing;
        return spacing;
    }
    
    static {
        // space + combining diacritical
        // cf. http://unicode.org/charts/PDF/U0300.pdf
        putAccent("\u0300", "\u02cb", "`");  // grave
        putAccent("\u0301", "\u02ca", "");  // acute
        putAccent("\u0302", "\u02c6", "^");  // circumflex
        putAccent("\u0303", "\u02dc", "~");  // small tilde
        putAccent("\u0304", "\u02c9", "");  // macron
        putAccent("\u0305", "\u00af", "");  // overline
        putAccent("\u0306", "\u02d8", null);  // breve
        putAccent("\u0307", "\u02d9", null);  // dot above
        putAccent("\u0308", "\u00a8", "");  // diaeresis
        putAccent("\u0309", "\u02c0", null);  // hook above
        putAccent("\u030a", "\u02da", "");  // ring above
        putAccent("\u030b", "\u02dd", "\"");  // double acute 
        putAccent("\u030c", "\u02c7", null);  // caron
        putAccent("\u030d", "\u02c8", null);  // vertical line above
        putAccent("\u030e", "\"", "\"");  // double vertical line above
        putAccent("\u0313", "\u02bc", null);  // comma above
        putAccent("\u0314", "\u02bd", null);  // reversed comma above

        put("\u0308\u0301\u03b9", "\u0390");  // Greek Dialytika+Tonos, iota
        put("\u0301\u0308\u03b9", "\u0390");  // Greek Dialytika+Tonos, iota
        put("\u0301\u03ca", "\u0390");        // Greek Dialytika+Tonos, iota
        put("\u0308\u0301\u03c5", "\u03b0");  // Greek Dialytika+Tonos, upsilon
        put("\u0301\u0308\u03c5", "\u03b0");  // Greek Dialytika+Tonos, upsilon
        put("\u0301\u03cb", "\u03b0");        // Greek Dialytika+Tonos, upsilon

/*
// include?
        put("? ", "~");
        put("??", "~");
        put("?? ", "'");
        put("????", "");
        put("? ", "`");
        put("??", "`");
        put("? ", "^");
        put("??", "^");
        put("? ", "");
        put("??", "");
        put("? ", "");
        put("??", "");
        put("? ", "?");
        put("??", "?");
        put("? ", "?");
        put("??", "?");
        put("??", "");
        put("? ", "\"");
        put("? ", "??");
        put("??", "??");
        put("? ", "?");
        put("??", "?");
        put("? ", "");
        put("??", "");
        put("? ", "?");
        put("??", "?");
        put("?2", "");
        put("?3", "");
        put("?1", "");
// include end?
        put("?A", "");
        put("??A", "??");
        put("?A", "");
        put("?A", "");
        put("?A", "");
        put("?A", "");
        put("?C", "");
        put("?E", "");
        put("??E", "");
        put("?E", "");
        put("?E", "");
        put("?I", "");
        put("??I", "??");
        put("?I", "");
        put("?I", "??");
        put("?N", "");
        put("?O", "");
        put("??O", "");
        put("?O", "");
        put("?O", "");
        put("?O", "");
        put("?U", "");
        put("??U", "");
        put("?U", "");
        put("?U", "");
        put("??Y", "??");
        put("?a", "");
        put("??a", "");
        put("?a", "");
        put("?a", "");
        put("?a", "");
        put("?a", "");
        put("?c", "");
        put("?e", "");
        put("??e", "");
        put("?e", "");
        put("?e", "");
        put("?i", "");
        put("??i", "");
        put("?i", "");
        put("?i", "");
        put("?n", "");
        put("?o", "");
        put("??o", "");
        put("?o", "");
        put("?o", "");
        put("?o", "");
        put("?u", "");
        put("??u", "");
        put("?u", "");
        put("?u", "");
        put("??y", "");
        put("?y", "");
        put("?A", "?");
        put("?a", "??");
        put("?A", "?");
        put("?a", "?");
        put("?A", "?");
        put("?a", "?");
        put("??C", "?");
        put("??c", "?");
        put("?C", "?");
        put("?c", "?");
        put("?C", "?");
        put("?c", "?");
        put("?C", "?");
        put("?c", "??");
        put("?D", "?");
        put("?d", "??");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?G", "?");
        put("?g", "??");
        put("?G", "?");
        put("?g", "?");
        put("?G", "?");
        put("?g", "?");
        put("?G", "?");
        put("?g", "?");
        put("?H", "?");
        put("?h", "?");
        put("?I", "?");
        put("?i", "?");
        put("?I", "?");
        put("?i", "?");
        put("?I", "?");
        put("?i", "?");
        put("?I", "?");
        put("?i", "?");
        put("?I", "?");
        put("?i", "?");
        put("?J", "?");
        put("?j", "?");
        put("?K", "?");
        put("?k", "?");
        put("??L", "?");
        put("??l", "?");
        put("?L", "?");
        put("?l", "?");
        put("?L", "?");
        put("?l", "?");
        put("??N", "?");
        put("??n", "?");
        put("?N", "?");
        put("?n", "?");
        put("?N", "?");
        put("?n", "?");
        put("?O", "?");
        put("?o", "??");
        put("?O", "?");
        put("?o", "??");
        put("?O", "??");
        put("?o", "?");
        put("??R", "?");
        put("??r", "?");
        put("?R", "?");
        put("?r", "?");
        put("?R", "?");
        put("?r", "?");
        put("??S", "?");
        put("??s", "?");
        put("?S", "?");
        put("?s", "??");
        put("?S", "?");
        put("?s", "?");
        put("?S", "");
        put("?s", "");
        put("?T", "?");
        put("?t", "?");
        put("?T", "?");
        put("?t", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?W", "?");
        put("?w", "?");
        put("?Y", "?");
        put("?y", "?");
        put("?Y", "");
        put("??Z", "?");
        put("??z", "?");
        put("?Z", "?");
        put("?z", "?");
        put("?Z", "");
        put("?z", "");
        put("?O", "?");
        put("?o", "?");
        put("?U", "?");
        put("?u", "?");
        put("?A", "??");
        put("?a", "?");
        put("?I", "??");
        put("?i", "??");
        put("?O", "?");
        put("?o", "?");
        put("?U", "?");
        put("?u", "?");
        put("?", "?");
        put("??U", "?");
        put("?", "?");
        put("??u", "?");
        put("??", "?");
        put("???U", "?");
        put("??", "?");
        put("???u", "?");
        put("?", "?");
        put("??U", "?");
        put("?", "?");
        put("??u", "?");
        put("?", "?");
        put("??U", "?");
        put("?", "?");
        put("??u", "?");
        put("?", "?");
        put("??A", "?");
        put("?", "?");
        put("??a", "?");
        put("??", "?");
        put("??A", "?");
        put("??", "?");
        put("??a", "?");
        put("?", "?");
        put("?", "?");
        put("?G", "?");
        put("?g", "?");
        put("?K", "?");
        put("?k", "?");
        put("?O", "?");
        put("?o", "?");
        put("??", "?");
        put("??O", "?");
        put("??", "?");
        put("??o", "?");
        put("??", "?");
        put("??", "?");
        put("?j", "?");
        put("??G", "?");
        put("??g", "?");
        put("?N", "?");
        put("?n", "?");
        put("??", "?");
        put("???A", "?");
        put("??", "?");
        put("???a", "?");
        put("??", "?");
        put("??", "?");
        put("??", "?");
        put("??", "?");
        put("??A", "?");
        put("??a", "??");
        put("?A", "?");
        put("?a", "?");
        put("??E", "?");
        put("??e", "?");
        put("?E", "?");
        put("?e", "?");
        put("??I", "?");
        put("??i", "?");
        put("?I", "?");
        put("?i", "?");
        put("??O", "?");
        put("??o", "??");
        put("?O", "?");
        put("?o", "??");
        put("??R", "??");
        put("??r", "?");
        put("?R", "?");
        put("?r", "?");
        put("??U", "?");
        put("??u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?H", "?");
        put("?h", "?");
        put("?A", "?");
        put("?a", "?");
        put("?E", "?");
        put("?e", "?");
        put("?", "?");
        put("??O", "?");
        put("?", "?");
        put("??o", "?");
        put("?", "?");
        put("? ?O", "?");
        put("?", "?");
        put("? ?o", "?");
        put("?O", "?");
        put("?o", "?");
        put("??", "?");
        put("??O", "?");
        put("??", "?");
        put("??o", "?");
        put("?Y", "?");
        put("?y", "?");
        put("?A", "?");
        put("?a", "??");
        put("?B", "?");
        put("?b", "?");
        put("?B", "?");
        put("?b", "?");
        put("?B", "?");
        put("?b", "?");
        put("??", "?");
        put("???C", "?");
        put("??", "?");
        put("???c", "?");
        put("?D", "?");
        put("?d", "?");
        put("?D", "?");
        put("?d", "??");
        put("?D", "?");
        put("?d", "??");
        put("?D", "??");
        put("?d", "?");
        put("?D", "?");
        put("?d", "?");
        put("??", "?");
        put("? ?E", "?");
        put("??", "?");
        put("? ?e", "?");
        put("???", "?");
        put("?? ?E", "?");
        put("???", "?");
        put("?? ?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("??", "?");
        put("??E", "?");
        put("??", "??");
        put("??e", "??");
        put("?F", "?");
        put("?f", "?");
        put("?G", "?");
        put("?g", "?");
        put("?H", "?");
        put("?h", "?");
        put("?H", "?");
        put("?h", "?");
        put("?H", "?");
        put("?h", "?");
        put("?H", "?");
        put("?h", "?");
        put("?H", "?");
        put("?h", "?");
        put("?I", "?");
        put("?i", "?");
        put("????", "?");
        put("???I", "?");
        put("??", "?");
        put("???i", "?");
        put("??K", "?");
        put("??k", "?");
        put("?K", "?");
        put("?k", "?");
        put("?K", "?");
        put("?k", "?");
        put("?L", "?");
        put("?l", "?");
        put("??", "?");
        put("??L", "?");
        put("??", "?");
        put("??l", "?");
        put("?L", "?");
        put("?l", "?");
        put("?L", "?");
        put("?l", "?");
        put("??M", "?");
        put("??m", "?");
        put("?M", "?");
        put("?m", "??");
        put("?M", "?");
        put("?m", "?");
        put("?N", "?");
        put("?n", "?");
        put("?N", "?");
        put("?n", "?");
        put("?N", "?");
        put("?n", "?");
        put("?N", "?");
        put("?n", "?");
        put("??", "?");
        put("?? ?O", "?");
        put("??", "??");
        put("?? ?o", "??");
        put("?", "?");
        put("? ?O", "?");
        put("?", "??");
        put("? ?o", "??");
        put("??", "??");
        put("? ?O", "??");
        put("???", "?");
        put("? ?o", "?");
        put("???", "?");
        put("?? ?O", "?");
        put("????", "?");
        put("?? ?o", "?");
        put("??P", "?");
        put("??p", "?");
        put("?P", "?");
        put("?p", "?");
        put("?R", "?");
        put("?r", "?");
        put("?R", "?");
        put("?r", "?");
        put("??", "?");
        put("??R", "?");
        put("??", "??");
        put("??r", "??");
        put("?R", "?");
        put("?r", "?");
        put("?S", "?");
        put("?s", "?");
        put("?S", "?");
        put("?s", "?");
        put("??", "?");
        put("? ??S", "?");
        put("??", "?");
        put("? ??s", "?");
        put("?", "?");
        put("??S", "?");
        put("?", "?");
        put("??s", "?");
        put("??", "?");
        put("??S", "?");
        put("??", "?");
        put("??s", "?");
        put("?T", "?");
        put("?t", "?");
        put("?T", "?");
        put("?t", "?");
        put("?T", "?");
        put("?t", "?");
        put("?T", "?");
        put("?t", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("???", "?");
        put("?? ?U", "?");
        put("???", "?");
        put("?? ?u", "?");
        put("??", "?");
        put("? ?U", "?");
        put("??", "?");
        put("? ?u", "?");
        put("?V", "?");
        put("?v", "?");
        put("?V", "?");
        put("?v", "?");
        put("?W", "?");
        put("?w", "??");
        put("??W", "?");
        put("??w", "?");
        put("?W", "?");
        put("?w", "?");
        put("?W", "?");
        put("?w", "?");
        put("?W", "?");
        put("?w", "?");
        put("?X", "?");
        put("?x", "?");
        put("?X", "?");
        put("?x", "??");
        put("?Y", "?");
        put("?y", "??");
        put("?Z", "??");
        put("?z", "?");
        put("?Z", "?");
        put("?z", "?");
        put("?Z", "?");
        put("?z", "?");
        put("?h", "?");
        put("?t", "?");
        put("?w", "?");
        put("?y", "?");
        put("??", "?");
        put("?A", "?");
        put("?a", "?");
        put("?A", "?");
        put("?a", "?");
        put("??", "?");
        put("?? ?A", "?");
        put("??", "?");
        put("?? ?a", "?");
        put("?", "?");
        put("? ?A", "?");
        put("?", "?");
        put("? ?a", "?");
        put("?", "?");
        put("? ?A", "?");
        put("?", "?");
        put("? ?a", "?");
        put("?", "?");
        put("? ?A", "?");
        put("?", "?");
        put("? ?a", "?");
        put("??", "?");
        put("??A", "?");
        put("?", "?");
        put("??", "?");
        put("??a", "?");
        put("?", "?");
        put("???", "?");
        put("???A", "?");
        put("???", "?");
        put("???a", "?");
        put("??", "?");
        put("??A", "?");
        put("??", "?");
        put("??a", "?");
        put("??", "?");
        put("??A", "?");
        put("??", "?");
        put("??a", "?");
        put("??", "?");
        put("??A", "?");
        put("??", "?");
        put("??a", "?");
        put("??", "?");
        put("??A", "?");
        put("??", "?");
        put("??", "?");
        put("??a", "?");
        put("??", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("?E", "?");
        put("?e", "?");
        put("??", "?");
        put("?? ?E", "?");
        put("??", "?");
        put("?? ?e", "?");
        put("?", "?");
        put("? ?E", "?");
        put("?", "??");
        put("? ?e", "??");
        put("?", "?");
        put("? ?E", "?");
        put("?", "?");
        put("? ?e", "?");
        put("?", "?");
        put("? ?E", "?");
        put("?", "?");
        put("? ?e", "?");
        put("??", "?");
        put("??E", "?");
        put("?", "?");
        put("??", "?");
        put("??e", "?");
        put("?", "?");
        put("?I", "?");
        put("?i", "?");
        put("?I", "?");
        put("?i", "?");
        put("?O", "?");
        put("?o", "??");
        put("?O", "?");
        put("?o", "??");
        put("??", "??");
        put("?? ?O", "??");
        put("??", "?");
        put("?? ?o", "?");
        put("?", "?");
        put("? ?O", "?");
        put("?", "?");
        put("? ?o", "?");
        put("?", "?");
        put("? ?O", "?");
        put("?", "?");
        put("? ?o", "?");
        put("?", "?");
        put("? ?O", "?");
        put("?", "?");
        put("? ?o", "?");
        put("??", "?");
        put("??O", "?");
        put("?", "?");
        put("???", "?");
        put("??o", "?");
        put("?", "?");
        put("???", "?");
        put("???O", "?");
        put("???", "?");
        put("???o", "?");
        put("??", "?");
        put("??O", "?");
        put("??", "??");
        put("??o", "??");
        put("??", "?");
        put("??O", "?");
        put("??", "?");
        put("??o", "?");
        put("??", "?");
        put("??O", "?");
        put("??", "?");
        put("??o", "?");
        put("??", "?");
        put("??O", "?");
        put("??", "?");
        put("??o", "?");
        put("?U", "?");
        put("?u", "?");
        put("?U", "?");
        put("?u", "?");
        put("???", "?");
        put("???U", "?");
        put("???", "?");
        put("???u", "?");
        put("??", "?");
        put("??U", "?");
        put("??", "?");
        put("??u", "?");
        put("??", "?");
        put("??U", "?");
        put("??", "?");
        put("??u", "?");
        put("??", "?");
        put("??U", "?");
        put("??", "?");
        put("??u", "?");
        put("??", "?");
        put("??U", "?");
        put("??", "?");
        put("??u", "?");
        put("?Y", "?");
        put("?y", "?");
        put("?Y", "?");
        put("?y", "?");
        put("?Y", "?");
        put("?y", "?");
        put("?Y", "?");
        put("?y", "?");
// include?
        put("?0", "???");
        put("?4", "???");
        put("?5", "???");
        put("?6", "???");
        put("?7", "???");
        put("?8", "???");
        put("?9", "???");
        put("?+", "???");
        put("??", "???");
        put("?=", "???");
        put("?(", "???");
        put("?)", "???");
        put("?+", "?");
        put("?+", "?");
        put("?-", "?");
        put("?=", "?");
        put("??=", "?");
        put("??=", "?");
// include end?
        put("?|", "?");
        put("??", "?");
        put("???", "?");
        put("?j", "?");
        put("?L", "?");
        put("?l", "?");
        put("??", "?");
        put("???", "?");
        put("???", "?");
        put("???", "?");
        put("??V", "?");
        put("??v", "?");
        put("??", "?");
        put("??", "?");
        put("??", "?");
        put("? ", "?");
        put("???", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?a", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
// include?
        put("?(", "??");
        put("?)", "?");
        put("?+", "?");
        put("?-", "?");
        put("?0", "?");
        put("?1", "??");
        put("?2", "?");
        put("?3", "?");
        put("?4", "?");
        put("?5", "?");
        put("?6", "?");
        put("?7", "?");
        put("?8", "?");
        put("?9", "?");
        put("?=", "?");
// include end?
        put("??", "?");
        put("??", "?");
        put("??", "?");
        put("?V", "?");
        put("?v", "?");
        put("?C", "?");
        put("?c", "?");
        put("?", "?");
        put("??", "?");
        put("??", "??");
        put("?-", "???");
        put("???", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("??", "?");
        put("??", "?");
        put("?", "?");
        put("?", "??");
        put("??", "?");
        put("??", "?");
        put("?", "??");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("???", "?");
        put("?", "?");
        put("?S", "?");
        put("?s", "?");
        put("?T", "?");
        put("?t", "?");
        put("??", ",");
        put("? ", ",");
        put("??", "?");
        put("???", "?");
        put("???", "?");
        put("?", "?");
        put("??", "?");
        put("???", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?V", "?");
        put("?v", "?");
        put("?B", "??");
        put("?b", "?");
        put("?C", "?");
        put("?c", "?");
        put("?D", "?");
        put("?d", "?");
        put("??", "?");
        put("?F", "?");
        put("?f", "");
        put("?G", "?");
        put("?g", "?");
        put("?h", "?");
        put("??", "?");
        put("?K", "?");
        put("?k", "?");
        put("?M", "?");
        put("?m", "?");
        put("?N", "??");
        put("?n", "?");
        put("?P", "?");
        put("?p", "?");
        put("?q", "?");
        put("??", "??");
        put("?s", "?");
        put("??", "?");
        put("?T", "?");
        put("?t", "?");
        put("??", "?");
        put("?V", "?");
        put("?v", "?");
        put("?W", "?");
        put("?w", "?");
        put("?Z", "?");
        put("?z", "?");
        put("??", "?");
        put("? ", "?");
        put("?", "?");
        put("?O", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("?", "?");
        put("???", "?");
        put("?", "??");
        put("???", "?");
        put("?", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("??", "?");
        put("??", "?");
        put("?", "?");
        put("??", "?");
        put("?", "?");
        put("??", "?");
        put("??", "?");
        put("??", "?");
        put("? ", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("?", "??");
        put("?", "?");
        put("?", "?");
        put("?V", "?");
        put("?v", "?");
        put("??", "?");
        put("???", "?");
        put("???", "?");
        put("?", "?");
        put("?", "?");
        put("?", "?");
        put("??", "?");
        put("?", "??");
        put("?", "??");
        put("???", "?");
        put("?", "?");
        put("?", "?");
        put("?=", "?");
        put("?<", "?");
        put("?>", "?");
        put("???S", "?");
        put("???s", "?");
        put("??S", "?");
        put("??s", "?");
        put("??S", "?");
        put("??s", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("? ??A", "?");
        put("? ??a", "?");
        put("? ??C", "?");
        put("? ??c", "?");
        put("? ??A", "?");
        put("? ??a", "?");
        put("? ??E", "?");
        put("? ??e", "?");
        put("? ??O", "??");
        put("? ??o", "?");
        put("? ??I", "?");
        put("? ??i", "?");
        put("? ??U", "?");
        put("? ??u", "?");
        put("? ??O", "?");
        put("? ??o", "?");
        put("? ??U", "?");
        put("? ??u", "?");
        put("? ??E", "?");
        put("? ??e", "?");
        put("? ??O", "?");
        put("? ??o", "?");
        put("? ??A", "?");
        put("? ??a", "?");
        put("? ??O", "?");
        put("? ??o", "??");
        put("? ??U", "?");
        put("? ??u", "?");
        put("??A", "?");
        put("??a", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("? ?E", "?");
        put("? ?e", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("??O", "?");
        put("??o", "?");
        put("??U", "?");
        put("??u", "?");
        put("? ?L", "?");
        put("? ?l", "?");
        put("? ?R", "?");
        put("? ?r", "??");
        put("??E", "?");
        put("??e", "??");
        put("? ?A", "?");
        put("? ?a", "?");
        put("??A", "?");
        put("??a", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("??U", "?");
        put("??u", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("? ?E", "?");
        put("? ?e", "??");
        put("? ?O", "?");
        put("? ?o", "?");
        put("??A", "?");
        put("??a", "?");
        put("??E", "?");
        put("??e", "?");
        put("??O", "?");
        put("??o", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("? ?E", "?");
        put("? ?e", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("? ?U", "?");
        put("? ?u", "?");
        put("? ?A", "?");
        put("? ?a", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("??O", "?");
        put("??o", "??");
        put("? ?O", "?");
        put("? ?o", "??");
        put("? ?U", "?");
        put("? ?u", "?");
        put("? ?E", "?");
        put("? ?e", "?");
        put("? ?O", "??");
        put("? ?o", "?");
        put("??O", "?");
        put("??o", "?");
        put("??U", "?");
        put("??u", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("? ?U", "?");
        put("? ?u", "?");
        put("? ?O", "?");
        put("? ?o", "?");
        put("? ?O", "?");
        put("? ?o", "?");
*/
   }
  
    public static String normalize(String input) {
      String lookup = mMap.get(input);
      if (lookup != null) return lookup;
      return Normalizer.normalize(input, Normalizer.Form.NFC);
    }
    
    public boolean execute(int code) {
      String composed = executeToString(code);
      if (composed != null) {
              //Log.i(TAG, "composed=" + composed + " len=" + composed.length());
        if (composed.equals("")) {
          // Unrecognised - try to use the built-in Java text normalisation
          int c = composeBuffer.codePointAt(composeBuffer.length() - 1);
          if (Character.getType(c) != Character.NON_SPACING_MARK) {
            // Put the combining character(s) at the end, else this won't work
            composeBuffer.reverse();
            composed = Normalizer.normalize(composeBuffer.toString(), Normalizer.Form.NFC);
            if (composed.equals("")) {
              return true; // incomplete :-)
            }
          } else {
            return true; // there may be multiple combining accents
          }
        }

        clear();
        composeUser.onText(composed);
        return false;
      }
      return true;
    }
}




Java Source Code List

org.distantshoresmedia.translationkeyboard.AutoDictionary.java
org.distantshoresmedia.translationkeyboard.AutoSummaryEditTextPreference.java
org.distantshoresmedia.translationkeyboard.AutoSummaryListPreference.java
org.distantshoresmedia.translationkeyboard.BinaryDictionary.java
org.distantshoresmedia.translationkeyboard.CandidateView.java
org.distantshoresmedia.translationkeyboard.ComposeBase.java
org.distantshoresmedia.translationkeyboard.ComposeSequence.java
org.distantshoresmedia.translationkeyboard.ContactsDictionary.java
org.distantshoresmedia.translationkeyboard.DeadAccentSequence.java
org.distantshoresmedia.translationkeyboard.Dictionary.java
org.distantshoresmedia.translationkeyboard.EditingUtil.java
org.distantshoresmedia.translationkeyboard.ExpandableDictionary.java
org.distantshoresmedia.translationkeyboard.GlobalKeyboardSettings.java
org.distantshoresmedia.translationkeyboard.InputLanguageSelection.java
org.distantshoresmedia.translationkeyboard.KeyDetector.java
org.distantshoresmedia.translationkeyboard.KeyboardSwitcher.java
org.distantshoresmedia.translationkeyboard.Keyboard.java
org.distantshoresmedia.translationkeyboard.LanguageSwitcher.java
org.distantshoresmedia.translationkeyboard.LatinIMEBackupAgent.java
org.distantshoresmedia.translationkeyboard.LatinIMEDebugSettings.java
org.distantshoresmedia.translationkeyboard.LatinIMESettings.java
org.distantshoresmedia.translationkeyboard.LatinIMEUtil.java
org.distantshoresmedia.translationkeyboard.LatinIME.java
org.distantshoresmedia.translationkeyboard.LatinImeLogger.java
org.distantshoresmedia.translationkeyboard.LatinKeyboardBaseView.java
org.distantshoresmedia.translationkeyboard.LatinKeyboardView.java
org.distantshoresmedia.translationkeyboard.LatinKeyboard.java
org.distantshoresmedia.translationkeyboard.Main.java
org.distantshoresmedia.translationkeyboard.MiniKeyboardKeyDetector.java
org.distantshoresmedia.translationkeyboard.ModifierKeyState.java
org.distantshoresmedia.translationkeyboard.NotificationReceiver.java
org.distantshoresmedia.translationkeyboard.PluginManager.java
org.distantshoresmedia.translationkeyboard.PointerTracker.java
org.distantshoresmedia.translationkeyboard.PrefScreenActions.java
org.distantshoresmedia.translationkeyboard.PrefScreenFeedback.java
org.distantshoresmedia.translationkeyboard.PrefScreenView.java
org.distantshoresmedia.translationkeyboard.ProximityKeyDetector.java
org.distantshoresmedia.translationkeyboard.SeekBarPreferenceString.java
org.distantshoresmedia.translationkeyboard.SeekBarPreference.java
org.distantshoresmedia.translationkeyboard.SharedPreferencesCompat.java
org.distantshoresmedia.translationkeyboard.Suggest.java
org.distantshoresmedia.translationkeyboard.SwipeTracker.java
org.distantshoresmedia.translationkeyboard.TextEntryState.java
org.distantshoresmedia.translationkeyboard.Tutorial.java
org.distantshoresmedia.translationkeyboard.UserBigramDictionary.java
org.distantshoresmedia.translationkeyboard.UserDictionary.java
org.distantshoresmedia.translationkeyboard.VibratePreference.java
org.distantshoresmedia.translationkeyboard.WordComposer.java