From f098fbbef324df034cc04de04d9b5fe6657238c7 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Mon, 8 Aug 2011 13:37:11 +0900 Subject: Add proximity info for the spell checker. Bug: 5119987 Change-Id: I35700fd8b0ffa6bced428cc6d46b3f64eb251281 --- .../latin/spellcheck/AndroidSpellCheckerService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java') diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 7c92bc82a..44e999572 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -19,7 +19,6 @@ package com.android.inputmethod.latin.spellcheck; import android.content.res.Resources; import android.service.textservice.SpellCheckerService; import android.service.textservice.SpellCheckerService.Session; -import android.util.Log; import android.view.textservice.SuggestionsInfo; import android.view.textservice.TextInfo; @@ -33,6 +32,7 @@ import com.android.inputmethod.latin.DictionaryFactory; import com.android.inputmethod.latin.Utils; import com.android.inputmethod.latin.WordComposer; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.LinkedList; @@ -48,7 +48,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService { private static final boolean DBG = true; private final static String[] emptyArray = new String[0]; - private final ProximityInfo mProximityInfo = ProximityInfo.getDummyProximityInfo(); + private final ProximityInfo mProximityInfo = ProximityInfo.getSpellCheckerProximityInfo(); private final Map mDictionaries = Collections.synchronizedMap(new TreeMap()); @@ -141,8 +141,16 @@ public class AndroidSpellCheckerService extends SpellCheckerService { final WordComposer composer = new WordComposer(); final int length = text.length(); for (int i = 0; i < length; ++i) { - int character = text.codePointAt(i); - composer.add(character, new int[] { character }, + final int character = text.codePointAt(i); + final int proximityIndex = SpellCheckerProximityInfo.getIndexOf(character); + final int[] proximities; + if (-1 == proximityIndex) { + proximities = new int[] { character }; + } else { + proximities = Arrays.copyOfRange(SpellCheckerProximityInfo.PROXIMITY, + proximityIndex, proximityIndex + SpellCheckerProximityInfo.ROW_SIZE); + } + composer.add(character, proximities, WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE); } dictionary.getWords(composer, suggestionsGatherer, mProximityInfo); -- cgit v1.2.3-83-g751a