diff options
Diffstat (limited to 'java/src')
3 files changed, 9 insertions, 19 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index 3aa0376e5..a9df1ce12 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -55,6 +55,8 @@ public class BinaryDictionary extends Dictionary { public static final Flag FLAG_REQUIRES_GERMAN_UMLAUT_PROCESSING = new Flag(R.bool.config_require_umlaut_processing, 0x1); + public static final Flag FLAG_REQUIRES_FRENCH_LIGATURES_PROCESSING = + new Flag(R.bool.config_require_ligatures_processing, 0x4); // FULL_EDIT_DISTANCE is a flag that forces the dictionary to use full words // when computing edit distance, instead of the default behavior of stopping @@ -77,6 +79,7 @@ public class BinaryDictionary extends Dictionary { // actual value will be read from the configuration/extra value at run time for // the configuration at dictionary creation time. FLAG_REQUIRES_GERMAN_UMLAUT_PROCESSING, + FLAG_REQUIRES_FRENCH_LIGATURES_PROCESSING, }; private int mFlags = 0; diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index ef8ca47c2..cabf68099 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -170,8 +170,7 @@ public class WordComposer { /** * Internal method to retrieve reasonable proximity info for a character. */ - private void addKeyInfo(final int codePoint, final Keyboard keyboard, - final KeyDetector keyDetector) { + private void addKeyInfo(final int codePoint, final Keyboard keyboard) { for (final Key key : keyboard.mKeys) { if (key.mCode == codePoint) { final int x = key.mX + key.mWidth / 2; @@ -189,27 +188,16 @@ public class WordComposer { * Set the currently composing word to the one passed as an argument. * This will register NOT_A_COORDINATE for X and Ys, and use the passed keyboard for proximity. */ - private void setComposingWord(final CharSequence word, final Keyboard keyboard, - final KeyDetector keyDetector) { + public void setComposingWord(final CharSequence word, final Keyboard keyboard) { reset(); final int length = word.length(); for (int i = 0; i < length; i = Character.offsetByCodePoints(word, i, 1)) { int codePoint = Character.codePointAt(word, i); - addKeyInfo(codePoint, keyboard, keyDetector); + addKeyInfo(codePoint, keyboard); } } /** - * Shortcut for the above method, this will create a new KeyDetector for the passed keyboard. - */ - public void setComposingWord(final CharSequence word, final Keyboard keyboard) { - final KeyDetector keyDetector = new KeyDetector(0); - keyDetector.setKeyboard(keyboard, 0, 0); - keyDetector.setProximityCorrectionEnabled(true); - setComposingWord(word, keyboard, keyDetector); - } - - /** * Delete the last keystroke as a result of hitting backspace. */ public void deleteLast() { diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerProximityInfo.java b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerProximityInfo.java index 90c0aac1b..7627700dd 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerProximityInfo.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerProximityInfo.java @@ -39,7 +39,7 @@ public class SpellCheckerProximityInfo { final protected static void buildProximityIndices(final int[] proximity, final TreeMap<Integer, Integer> indices) { for (int i = 0; i < proximity.length; i += ROW_SIZE) { - if (NUL != proximity[i]) indices.put(proximity[i], i); + if (NUL != proximity[i]) indices.put(proximity[i], i / ROW_SIZE); } } final protected static int computeIndex(final int characterCode, @@ -198,9 +198,8 @@ public class SpellCheckerProximityInfo { // inferior to 1 << 16 public static int getXYForCodePointAndScript(final int codePoint, final int script) { final int index = getIndexOfCodeForScript(codePoint, script); - // TODO: precompute index / ROW_SIZE - final int y = index / (PROXIMITY_GRID_WIDTH * ROW_SIZE); - final int x = (index / ROW_SIZE) % PROXIMITY_GRID_WIDTH; + final int y = index / PROXIMITY_GRID_WIDTH; + final int x = index % PROXIMITY_GRID_WIDTH; if (y > PROXIMITY_GRID_HEIGHT) { // Safety check, should be entirely useless throw new RuntimeException("Wrong y coordinate in spell checker proximity"); |