am 516c884b: Merge "Prepare to implement distracter filter"

* commit '516c884b115f2cce1fca9a1599782ccfc433ca1f':
  Prepare to implement distracter filter
main
Xiaojun Bi 2014-04-25 17:20:42 +00:00 committed by Android Git Automerger
commit 1efec72e0b
4 changed files with 67 additions and 5 deletions

View File

@ -510,7 +510,6 @@ public class DictionaryFacilitatorForSuggest {
return maxFreq; return maxFreq;
} }
public void clearUserHistoryDictionary() { public void clearUserHistoryDictionary() {
final ExpandableBinaryDictionary userHistoryDict = final ExpandableBinaryDictionary userHistoryDict =
mDictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY); mDictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY);

View File

@ -84,6 +84,7 @@ import com.android.inputmethod.latin.utils.ApplicationUtils;
import com.android.inputmethod.latin.utils.CapsModeUtils; import com.android.inputmethod.latin.utils.CapsModeUtils;
import com.android.inputmethod.latin.utils.CoordinateUtils; import com.android.inputmethod.latin.utils.CoordinateUtils;
import com.android.inputmethod.latin.utils.DialogUtils; import com.android.inputmethod.latin.utils.DialogUtils;
import com.android.inputmethod.latin.utils.DistracterFilter;
import com.android.inputmethod.latin.utils.ImportantNoticeUtils; import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
import com.android.inputmethod.latin.utils.IntentUtils; import com.android.inputmethod.latin.utils.IntentUtils;
import com.android.inputmethod.latin.utils.JniUtils; import com.android.inputmethod.latin.utils.JniUtils;
@ -540,6 +541,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
refreshPersonalizationDictionarySession(); refreshPersonalizationDictionarySession();
} }
private DistracterFilter createDistracterFilter() {
final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
final Keyboard keyboard = mainKeyboardView.getKeyboard();
final DistracterFilter distracterFilter = new DistracterFilter(mInputLogic.mSuggest,
keyboard);
return distracterFilter;
}
private void refreshPersonalizationDictionarySession() { private void refreshPersonalizationDictionarySession() {
final DictionaryFacilitatorForSuggest dictionaryFacilitator = final DictionaryFacilitatorForSuggest dictionaryFacilitator =
mInputLogic.mSuggest.mDictionaryFacilitator; mInputLogic.mSuggest.mDictionaryFacilitator;
@ -564,7 +573,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
PersonalizationHelper.removeAllPersonalizationDictionaries(this); PersonalizationHelper.removeAllPersonalizationDictionaries(this);
PersonalizationDictionarySessionRegistrar.resetAll(this); PersonalizationDictionarySessionRegistrar.resetAll(this);
} else { } else {
PersonalizationDictionarySessionRegistrar.init(this, dictionaryFacilitator); final DistracterFilter distracterFilter = createDistracterFilter();
PersonalizationDictionarySessionRegistrar.init(
this, dictionaryFacilitator, distracterFilter);
} }
} }
@ -662,8 +673,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mInputLogic.mConnection.finishComposingText(); mInputLogic.mConnection.finishComposingText();
mInputLogic.mConnection.endBatchEdit(); mInputLogic.mConnection.endBatchEdit();
} }
final DistracterFilter distracterFilter = createDistracterFilter();
PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf, PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf,
mInputLogic.mSuggest.mDictionaryFacilitator); mInputLogic.mSuggest.mDictionaryFacilitator, distracterFilter);
super.onConfigurationChanged(conf); super.onConfigurationChanged(conf);
} }

View File

@ -20,14 +20,17 @@ import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest; import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest;
import com.android.inputmethod.latin.utils.DistracterFilter;
public class PersonalizationDictionarySessionRegistrar { public class PersonalizationDictionarySessionRegistrar {
public static void init(final Context context, public static void init(final Context context,
final DictionaryFacilitatorForSuggest dictionaryFacilitator) { final DictionaryFacilitatorForSuggest dictionaryFacilitator,
final DistracterFilter distracterFilter) {
} }
public static void onConfigurationChanged(final Context context, final Configuration conf, public static void onConfigurationChanged(final Context context, final Configuration conf,
final DictionaryFacilitatorForSuggest dictionaryFacilitator) { final DictionaryFacilitatorForSuggest dictionaryFacilitator,
final DistracterFilter distracterFilter) {
} }
public static void onUpdateData(final Context context, final String type) { public static void onUpdateData(final Context context, final String type) {

View File

@ -0,0 +1,48 @@
/*
* 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 com.android.inputmethod.keyboard.Keyboard;
import com.android.inputmethod.latin.Suggest;
/**
* This class is used to prevent distracters/misspellings being added to personalization
* or user history dictionaries
*/
public class DistracterFilter {
private final Suggest mSuggest;
private final Keyboard mKeyboard;
/**
* Create a DistracterFilter instance.
*
* @param suggest an instance of Suggest which will be used to obtain a list of suggestions
* for a potential distracter/misspelling
* @param keyboard the keyboard that is currently being used. This information is needed
* when calling mSuggest.getSuggestedWords(...) to obtain a list of suggestions.
*/
public DistracterFilter(final Suggest suggest, final Keyboard keyboard) {
mSuggest = suggest;
mKeyboard = keyboard;
}
public boolean isDistractorToWordsInDictionaries(final String prevWord,
final String targetWord) {
// TODO: to be implemented
return false;
}
}