Make shortcut-only user dict entry non-words.

Bug: 7369456
Change-Id: Iecd6f6d617f31bd2aa6749516711aeb1f0549622
main
Jean Chalard 2013-04-12 16:17:09 +09:00
parent d0623ad7f3
commit 6a2a4b8e4d
3 changed files with 8 additions and 6 deletions

View File

@ -173,7 +173,8 @@ public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
// capitalization of i. // capitalization of i.
final int wordLen = StringUtils.codePointCount(word); final int wordLen = StringUtils.codePointCount(word);
if (wordLen < MAX_WORD_LENGTH && wordLen > 1) { if (wordLen < MAX_WORD_LENGTH && wordLen > 1) {
super.addWord(word, null /* shortcut */, FREQUENCY_FOR_CONTACTS); super.addWord(word, null /* shortcut */, FREQUENCY_FOR_CONTACTS,
false /* isNotAWord */);
if (!TextUtils.isEmpty(prevWord)) { if (!TextUtils.isEmpty(prevWord)) {
if (mUseFirstLastBigrams) { if (mUseFirstLastBigrams) {
super.setBigram(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM); super.setBigram(prevWord, word, FREQUENCY_FOR_CONTACTS_BIGRAM);

View File

@ -176,14 +176,15 @@ abstract public class ExpandableBinaryDictionary extends Dictionary {
*/ */
// TODO: Create "cache dictionary" to cache fresh words for frequently updated dictionaries, // TODO: Create "cache dictionary" to cache fresh words for frequently updated dictionaries,
// considering performance regression. // considering performance regression.
protected void addWord(final String word, final String shortcutTarget, final int frequency) { protected void addWord(final String word, final String shortcutTarget, final int frequency,
final boolean isNotAWord) {
if (shortcutTarget == null) { if (shortcutTarget == null) {
mFusionDictionary.add(word, frequency, null, false /* isNotAWord */); mFusionDictionary.add(word, frequency, null, isNotAWord);
} else { } else {
// TODO: Do this in the subclass, with this class taking an arraylist. // TODO: Do this in the subclass, with this class taking an arraylist.
final ArrayList<WeightedString> shortcutTargets = CollectionUtils.newArrayList(); final ArrayList<WeightedString> shortcutTargets = CollectionUtils.newArrayList();
shortcutTargets.add(new WeightedString(shortcutTarget, frequency)); shortcutTargets.add(new WeightedString(shortcutTarget, frequency));
mFusionDictionary.add(word, frequency, shortcutTargets, false /* isNotAWord */); mFusionDictionary.add(word, frequency, shortcutTargets, isNotAWord);
} }
} }

View File

@ -258,10 +258,10 @@ public class UserBinaryDictionary extends ExpandableBinaryDictionary {
final int adjustedFrequency = scaleFrequencyFromDefaultToLatinIme(frequency); final int adjustedFrequency = scaleFrequencyFromDefaultToLatinIme(frequency);
// Safeguard against adding really long words. // Safeguard against adding really long words.
if (word.length() < MAX_WORD_LENGTH) { if (word.length() < MAX_WORD_LENGTH) {
super.addWord(word, null, adjustedFrequency); super.addWord(word, null, adjustedFrequency, false /* isNotAWord */);
} }
if (null != shortcut && shortcut.length() < MAX_WORD_LENGTH) { if (null != shortcut && shortcut.length() < MAX_WORD_LENGTH) {
super.addWord(shortcut, word, adjustedFrequency); super.addWord(shortcut, word, adjustedFrequency, true /* isNotAWord */);
} }
cursor.moveToNext(); cursor.moveToNext();
} }