Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 516c884b authored by Xiaojun Bi's avatar Xiaojun Bi Committed by Android (Google) Code Review
Browse files

Merge "Prepare to implement distracter filter"

parents e581d8f8 281dd993
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -510,7 +510,6 @@ public class DictionaryFacilitatorForSuggest {
        return maxFreq;
    }


    public void clearUserHistoryDictionary() {
        final ExpandableBinaryDictionary userHistoryDict =
                mDictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY);
+14 −2
Original line number Diff line number Diff line
@@ -84,6 +84,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.DistracterFilter;
import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
import com.android.inputmethod.latin.utils.IntentUtils;
import com.android.inputmethod.latin.utils.JniUtils;
@@ -540,6 +541,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        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() {
        final DictionaryFacilitatorForSuggest dictionaryFacilitator =
                mInputLogic.mSuggest.mDictionaryFacilitator;
@@ -564,7 +573,9 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
            PersonalizationHelper.removeAllPersonalizationDictionaries(this);
            PersonalizationDictionarySessionRegistrar.resetAll(this);
        } 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.endBatchEdit();
        }
        final DistracterFilter distracterFilter = createDistracterFilter();
        PersonalizationDictionarySessionRegistrar.onConfigurationChanged(this, conf,
                mInputLogic.mSuggest.mDictionaryFacilitator);
                mInputLogic.mSuggest.mDictionaryFacilitator, distracterFilter);
        super.onConfigurationChanged(conf);
    }

+5 −2
Original line number Diff line number Diff line
@@ -20,14 +20,17 @@ import android.content.Context;
import android.content.res.Configuration;

import com.android.inputmethod.latin.DictionaryFacilitatorForSuggest;
import com.android.inputmethod.latin.utils.DistracterFilter;

public class PersonalizationDictionarySessionRegistrar {
    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,
            final DictionaryFacilitatorForSuggest dictionaryFacilitator) {
            final DictionaryFacilitatorForSuggest dictionaryFacilitator,
            final DistracterFilter distracterFilter) {
    }

    public static void onUpdateData(final Context context, final String type) {
+48 −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 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;
    }
}