private boolean checkDistracterUsingGetSuggestions(final String testedWord) { if (mKeyboard == null) { return false; } final SettingsValuesForSuggestion settingsValuesForSuggestion = new SettingsValuesForSuggestion( false /* blockPotentiallyOffensive */, false /* spaceAwareGestureEnabled */, null /* additionalFeaturesSettingValues */); final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(testedWord); final String consideredWord = trailingSingleQuotesCount > 0 ? testedWord.substring(0, testedWord.length() - trailingSingleQuotesCount) : testedWord; final WordComposer composer = new WordComposer(); final int[] codePoints = StringUtils.toCodePointArray(testedWord); synchronized (mLock) { final int[] coordinates = mKeyboard.getCoordinates(codePoints); composer.setComposingWord(codePoints, coordinates); final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults( composer, PrevWordsInfo.EMPTY_PREV_WORDS_INFO, mKeyboard.getProximityInfo(), settingsValuesForSuggestion, 0 /* sessionId */); if (suggestionResults.isEmpty()) { return false; } final SuggestedWordInfo firstSuggestion = suggestionResults.first(); final boolean isDistractor = suggestionExceedsDistracterThreshold( firstSuggestion, consideredWord, DISTRACTER_WORD_SCORE_THRESHOLD); if (DEBUG) { Log.d(TAG, "isDistracter: " + isDistractor); } return isDistractor; } }