Loading java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.inputmethod.latin.personalization.PersonalizationDictionary; import com.android.inputmethod.latin.personalization.UserHistoryDictionary; import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import com.android.inputmethod.latin.utils.DistracterFilter; import com.android.inputmethod.latin.utils.DistracterFilterCheckingIsInDictionary; import com.android.inputmethod.latin.utils.ExecutorUtils; import com.android.inputmethod.latin.utils.LanguageModelParam; import com.android.inputmethod.latin.utils.SuggestionResults; Loading Loading @@ -571,14 +572,15 @@ public class DictionaryFacilitator { final PersonalizationDataChunk personalizationDataChunk, final SpacingAndPunctuations spacingAndPunctuations, final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) { final ExpandableBinaryDictionary personalizationDict = mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION); final ArrayList<LanguageModelParam> languageModelParams = LanguageModelParam.createLanguageModelParamsFrom( personalizationDataChunk.mTokens, personalizationDataChunk.mTimestampInSeconds, this /* dictionaryFacilitator */, spacingAndPunctuations, mDistracterFilter); final ExpandableBinaryDictionary personalizationDict = mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION); new DistracterFilterCheckingIsInDictionary( mDistracterFilter, personalizationDict)); if (personalizationDict == null || languageModelParams == null || languageModelParams.isEmpty()) { if (callback != null) { Loading java/src/com/android/inputmethod/latin/LatinIME.java +2 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ import com.android.inputmethod.latin.utils.ApplicationUtils; import com.android.inputmethod.latin.utils.CapsModeUtils; import com.android.inputmethod.latin.utils.CoordinateUtils; import com.android.inputmethod.latin.utils.DialogUtils; import com.android.inputmethod.latin.utils.DistracterFilterUsingSuggestion; import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatches; import com.android.inputmethod.latin.utils.ImportantNoticeUtils; import com.android.inputmethod.latin.utils.IntentUtils; import com.android.inputmethod.latin.utils.JniUtils; Loading Loading @@ -121,7 +121,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private final Settings mSettings; private final DictionaryFacilitator mDictionaryFacilitator = new DictionaryFacilitator(new DistracterFilterUsingSuggestion(this /* context */)); new DictionaryFacilitator(new DistracterFilterCheckingExactMatches(this /* context */)); private final InputLogic mInputLogic = new InputLogic(this /* LatinIME */, this /* SuggestionStripViewAccessor */, mDictionaryFacilitator); // We expect to have only one decoder in almost all cases, hence the default capacity of 1. Loading java/src/com/android/inputmethod/latin/utils/DistracterFilterUsingSuggestion.java→java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatches.java +3 −4 Original line number Diff line number Diff line Loading @@ -31,9 +31,8 @@ import com.android.inputmethod.latin.PrevWordsInfo; * This class is used to prevent distracters being added to personalization * or user history dictionaries */ // TODO: Rename. public class DistracterFilterUsingSuggestion implements DistracterFilter { private static final String TAG = DistracterFilterUsingSuggestion.class.getSimpleName(); public class DistracterFilterCheckingExactMatches implements DistracterFilter { private static final String TAG = DistracterFilterCheckingExactMatches.class.getSimpleName(); private static final boolean DEBUG = false; private static final long TIMEOUT_TO_WAIT_LOADING_DICTIONARIES_IN_SECONDS = 120; Loading @@ -47,7 +46,7 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter { * * @param context the context. */ public DistracterFilterUsingSuggestion(final Context context) { public DistracterFilterCheckingExactMatches(final Context context) { mContext = context; mDictionaryFacilitator = new DictionaryFacilitator(); } Loading java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java 0 → 100644 +59 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.latin.utils; import java.util.List; import java.util.Locale; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.latin.Dictionary; import com.android.inputmethod.latin.PrevWordsInfo; public class DistracterFilterCheckingIsInDictionary implements DistracterFilter { private final DistracterFilter mDistracterFilter; private final Dictionary mDictionary; public DistracterFilterCheckingIsInDictionary(final DistracterFilter distracterFilter, final Dictionary dictionary) { mDistracterFilter = distracterFilter; mDictionary = dictionary; } @Override public boolean isDistracterToWordsInDictionaries(PrevWordsInfo prevWordsInfo, String testedWord, Locale locale) { if (mDictionary.isInDictionary(testedWord)) { // This filter treats entries that are already in the dictionary as non-distracters // because they have passed the filtering in the past. return false; } else { return mDistracterFilter.isDistracterToWordsInDictionaries( prevWordsInfo, testedWord, locale); } } @Override public void updateEnabledSubtypes(List<InputMethodSubtype> enabledSubtypes) { // Do nothing. } @Override public void close() { // Do nothing. } } tests/src/com/android/inputmethod/latin/DistracterFilterTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -20,19 +20,19 @@ import java.util.Locale; import android.test.suitebuilder.annotation.LargeTest; import com.android.inputmethod.latin.utils.DistracterFilterUsingSuggestion; import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatches; /** * Unit test for DistracterFilter */ @LargeTest public class DistracterFilterTest extends InputTestsBase { private DistracterFilterUsingSuggestion mDistracterFilter; private DistracterFilterCheckingExactMatches mDistracterFilter; @Override protected void setUp() throws Exception { super.setUp(); mDistracterFilter = new DistracterFilterUsingSuggestion(getContext()); mDistracterFilter = new DistracterFilterCheckingExactMatches(getContext()); mDistracterFilter.updateEnabledSubtypes(mLatinIME.getEnabledSubtypesForTest()); } Loading Loading
java/src/com/android/inputmethod/latin/DictionaryFacilitator.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.inputmethod.latin.personalization.PersonalizationDictionary; import com.android.inputmethod.latin.personalization.UserHistoryDictionary; import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import com.android.inputmethod.latin.utils.DistracterFilter; import com.android.inputmethod.latin.utils.DistracterFilterCheckingIsInDictionary; import com.android.inputmethod.latin.utils.ExecutorUtils; import com.android.inputmethod.latin.utils.LanguageModelParam; import com.android.inputmethod.latin.utils.SuggestionResults; Loading Loading @@ -571,14 +572,15 @@ public class DictionaryFacilitator { final PersonalizationDataChunk personalizationDataChunk, final SpacingAndPunctuations spacingAndPunctuations, final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) { final ExpandableBinaryDictionary personalizationDict = mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION); final ArrayList<LanguageModelParam> languageModelParams = LanguageModelParam.createLanguageModelParamsFrom( personalizationDataChunk.mTokens, personalizationDataChunk.mTimestampInSeconds, this /* dictionaryFacilitator */, spacingAndPunctuations, mDistracterFilter); final ExpandableBinaryDictionary personalizationDict = mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION); new DistracterFilterCheckingIsInDictionary( mDistracterFilter, personalizationDict)); if (personalizationDict == null || languageModelParams == null || languageModelParams.isEmpty()) { if (callback != null) { Loading
java/src/com/android/inputmethod/latin/LatinIME.java +2 −2 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ import com.android.inputmethod.latin.utils.ApplicationUtils; import com.android.inputmethod.latin.utils.CapsModeUtils; import com.android.inputmethod.latin.utils.CoordinateUtils; import com.android.inputmethod.latin.utils.DialogUtils; import com.android.inputmethod.latin.utils.DistracterFilterUsingSuggestion; import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatches; import com.android.inputmethod.latin.utils.ImportantNoticeUtils; import com.android.inputmethod.latin.utils.IntentUtils; import com.android.inputmethod.latin.utils.JniUtils; Loading Loading @@ -121,7 +121,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen private final Settings mSettings; private final DictionaryFacilitator mDictionaryFacilitator = new DictionaryFacilitator(new DistracterFilterUsingSuggestion(this /* context */)); new DictionaryFacilitator(new DistracterFilterCheckingExactMatches(this /* context */)); private final InputLogic mInputLogic = new InputLogic(this /* LatinIME */, this /* SuggestionStripViewAccessor */, mDictionaryFacilitator); // We expect to have only one decoder in almost all cases, hence the default capacity of 1. Loading
java/src/com/android/inputmethod/latin/utils/DistracterFilterUsingSuggestion.java→java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatches.java +3 −4 Original line number Diff line number Diff line Loading @@ -31,9 +31,8 @@ import com.android.inputmethod.latin.PrevWordsInfo; * This class is used to prevent distracters being added to personalization * or user history dictionaries */ // TODO: Rename. public class DistracterFilterUsingSuggestion implements DistracterFilter { private static final String TAG = DistracterFilterUsingSuggestion.class.getSimpleName(); public class DistracterFilterCheckingExactMatches implements DistracterFilter { private static final String TAG = DistracterFilterCheckingExactMatches.class.getSimpleName(); private static final boolean DEBUG = false; private static final long TIMEOUT_TO_WAIT_LOADING_DICTIONARIES_IN_SECONDS = 120; Loading @@ -47,7 +46,7 @@ public class DistracterFilterUsingSuggestion implements DistracterFilter { * * @param context the context. */ public DistracterFilterUsingSuggestion(final Context context) { public DistracterFilterCheckingExactMatches(final Context context) { mContext = context; mDictionaryFacilitator = new DictionaryFacilitator(); } Loading
java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java 0 → 100644 +59 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.inputmethod.latin.utils; import java.util.List; import java.util.Locale; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.latin.Dictionary; import com.android.inputmethod.latin.PrevWordsInfo; public class DistracterFilterCheckingIsInDictionary implements DistracterFilter { private final DistracterFilter mDistracterFilter; private final Dictionary mDictionary; public DistracterFilterCheckingIsInDictionary(final DistracterFilter distracterFilter, final Dictionary dictionary) { mDistracterFilter = distracterFilter; mDictionary = dictionary; } @Override public boolean isDistracterToWordsInDictionaries(PrevWordsInfo prevWordsInfo, String testedWord, Locale locale) { if (mDictionary.isInDictionary(testedWord)) { // This filter treats entries that are already in the dictionary as non-distracters // because they have passed the filtering in the past. return false; } else { return mDistracterFilter.isDistracterToWordsInDictionaries( prevWordsInfo, testedWord, locale); } } @Override public void updateEnabledSubtypes(List<InputMethodSubtype> enabledSubtypes) { // Do nothing. } @Override public void close() { // Do nothing. } }
tests/src/com/android/inputmethod/latin/DistracterFilterTest.java +3 −3 Original line number Diff line number Diff line Loading @@ -20,19 +20,19 @@ import java.util.Locale; import android.test.suitebuilder.annotation.LargeTest; import com.android.inputmethod.latin.utils.DistracterFilterUsingSuggestion; import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatches; /** * Unit test for DistracterFilter */ @LargeTest public class DistracterFilterTest extends InputTestsBase { private DistracterFilterUsingSuggestion mDistracterFilter; private DistracterFilterCheckingExactMatches mDistracterFilter; @Override protected void setUp() throws Exception { super.setUp(); mDistracterFilter = new DistracterFilterUsingSuggestion(getContext()); mDistracterFilter = new DistracterFilterCheckingExactMatches(getContext()); mDistracterFilter.updateEnabledSubtypes(mLatinIME.getEnabledSubtypesForTest()); } Loading