Search in sources :

Example 1 with SettingsValues

use of com.android.inputmethod.latin.settings.SettingsValues in project android_packages_inputmethods_LatinIME by CyanogenMod.

the class KeyboardSwitcher method setKeyboard.

private void setKeyboard(@Nonnull final int keyboardId, @Nonnull final KeyboardSwitchState toggleState) {
    // Make {@link MainKeyboardView} visible and hide {@link EmojiPalettesView}.
    final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent();
    setMainKeyboardFrame(currentSettingsValues, toggleState);
    // TODO: pass this object to setKeyboard instead of getting the current values.
    final MainKeyboardView keyboardView = mKeyboardView;
    final Keyboard oldKeyboard = keyboardView.getKeyboard();
    final Keyboard newKeyboard = mKeyboardLayoutSet.getKeyboard(keyboardId);
    keyboardView.setKeyboard(newKeyboard);
    mCurrentInputView.setKeyboardTopPadding(newKeyboard.mTopPadding);
    keyboardView.setKeyPreviewPopupEnabled(currentSettingsValues.mKeyPreviewPopupOn, currentSettingsValues.mKeyPreviewPopupDismissDelay);
    keyboardView.setKeyPreviewAnimationParams(currentSettingsValues.mHasCustomKeyPreviewAnimationParams, currentSettingsValues.mKeyPreviewShowUpStartXScale, currentSettingsValues.mKeyPreviewShowUpStartYScale, currentSettingsValues.mKeyPreviewShowUpDuration, currentSettingsValues.mKeyPreviewDismissEndXScale, currentSettingsValues.mKeyPreviewDismissEndYScale, currentSettingsValues.mKeyPreviewDismissDuration);
    keyboardView.updateShortcutKey(mRichImm.isShortcutImeReady());
    final boolean subtypeChanged = (oldKeyboard == null) || !newKeyboard.mId.mSubtype.equals(oldKeyboard.mId.mSubtype);
    final int languageOnSpacebarFormatType = LanguageOnSpacebarUtils.getLanguageOnSpacebarFormatType(newKeyboard.mId.mSubtype);
    final boolean hasMultipleEnabledIMEsOrSubtypes = mRichImm.hasMultipleEnabledIMEsOrSubtypes(true);
    keyboardView.startDisplayLanguageOnSpacebar(subtypeChanged, languageOnSpacebarFormatType, hasMultipleEnabledIMEsOrSubtypes);
}
Also used : SettingsValues(com.android.inputmethod.latin.settings.SettingsValues)

Example 2 with SettingsValues

use of com.android.inputmethod.latin.settings.SettingsValues in project android_packages_inputmethods_LatinIME by CyanogenMod.

the class LatinIME method resetDictionaryFacilitator.

/**
 * Reset the facilitator by loading dictionaries for the given locale and
 * the current settings values.
 *
 * @param locale the locale
 */
// TODO: make sure the current settings always have the right locales, and read from them.
private void resetDictionaryFacilitator(final Locale locale) {
    final SettingsValues settingsValues = mSettings.getCurrent();
    mDictionaryFacilitator.resetDictionaries(this, /* context */
    locale, settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts, false, /* forceReloadMainDictionary */
    settingsValues.mAccount, "", /* dictNamePrefix */
    this);
    if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
        mInputLogic.mSuggest.setAutoCorrectionThreshold(settingsValues.mAutoCorrectionThreshold);
    }
    mInputLogic.mSuggest.setPlausibilityThreshold(settingsValues.mPlausibilityThreshold);
}
Also used : SettingsValues(com.android.inputmethod.latin.settings.SettingsValues)

Example 3 with SettingsValues

use of com.android.inputmethod.latin.settings.SettingsValues in project android_packages_inputmethods_LatinIME by CyanogenMod.

the class LatinIME method setNeutralSuggestionStrip.

// This will show either an empty suggestion strip (if prediction is enabled) or
// punctuation suggestions (if it's disabled).
@Override
public void setNeutralSuggestionStrip() {
    final SettingsValues currentSettings = mSettings.getCurrent();
    final SuggestedWords neutralSuggestions = currentSettings.mBigramPredictionEnabled ? SuggestedWords.getEmptyInstance() : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
    setSuggestedWords(neutralSuggestions);
}
Also used : SettingsValues(com.android.inputmethod.latin.settings.SettingsValues)

Example 4 with SettingsValues

use of com.android.inputmethod.latin.settings.SettingsValues in project android_packages_inputmethods_LatinIME by CyanogenMod.

the class LatinIME method onComputeInsets.

@Override
public void onComputeInsets(final InputMethodService.Insets outInsets) {
    super.onComputeInsets(outInsets);
    // This method may be called before {@link #setInputView(View)}.
    if (mInputView == null) {
        return;
    }
    final SettingsValues settingsValues = mSettings.getCurrent();
    final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView();
    if (visibleKeyboardView == null || !hasSuggestionStripView()) {
        return;
    }
    final int inputHeight = mInputView.getHeight();
    if (isImeSuppressedByHardwareKeyboard() && !visibleKeyboardView.isShown()) {
        // If there is a hardware keyboard and a visible software keyboard view has been hidden,
        // no visual element will be shown on the screen.
        outInsets.contentTopInsets = inputHeight;
        outInsets.visibleTopInsets = inputHeight;
        mInsetsUpdater.setInsets(outInsets);
        return;
    }
    final int suggestionsHeight = (!mKeyboardSwitcher.isShowingEmojiPalettes() && mSuggestionStripView.getVisibility() == View.VISIBLE) ? mSuggestionStripView.getHeight() : 0;
    final int visibleTopY = inputHeight - visibleKeyboardView.getHeight() - suggestionsHeight;
    mSuggestionStripView.setMoreSuggestionsHeight(visibleTopY);
    // Need to set expanded touchable region only if a keyboard view is being shown.
    if (visibleKeyboardView.isShown()) {
        final int touchLeft = 0;
        final int touchTop = mKeyboardSwitcher.isShowingMoreKeysPanel() ? 0 : visibleTopY;
        final int touchRight = visibleKeyboardView.getWidth();
        final int touchBottom = inputHeight + // Extend touchable region below the keyboard.
        EXTENDED_TOUCHABLE_REGION_HEIGHT;
        outInsets.touchableInsets = InputMethodService.Insets.TOUCHABLE_INSETS_REGION;
        outInsets.touchableRegion.set(touchLeft, touchTop, touchRight, touchBottom);
    }
    outInsets.contentTopInsets = visibleTopY;
    outInsets.visibleTopInsets = visibleTopY;
    mInsetsUpdater.setInsets(outInsets);
}
Also used : SettingsValues(com.android.inputmethod.latin.settings.SettingsValues) SuggestionStripView(com.android.inputmethod.latin.suggestions.SuggestionStripView) View(android.view.View) MainKeyboardView(com.android.inputmethod.keyboard.MainKeyboardView)

Example 5 with SettingsValues

use of com.android.inputmethod.latin.settings.SettingsValues in project android_packages_inputmethods_LatinIME by CyanogenMod.

the class LatinIME method replaceDictionariesForTest.

// DO NOT USE THIS for any other purpose than testing. This can break the keyboard badly.
@UsedForTesting
void replaceDictionariesForTest(final Locale locale) {
    final SettingsValues settingsValues = mSettings.getCurrent();
    mDictionaryFacilitator.resetDictionaries(this, locale, settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts, false, /* forceReloadMainDictionary */
    settingsValues.mAccount, "", /* dictionaryNamePrefix */
    this);
}
Also used : SettingsValues(com.android.inputmethod.latin.settings.SettingsValues) UsedForTesting(com.android.inputmethod.annotations.UsedForTesting)

Aggregations

SettingsValues (com.android.inputmethod.latin.settings.SettingsValues)19 EditorInfo (android.view.inputmethod.EditorInfo)3 UsedForTesting (com.android.inputmethod.annotations.UsedForTesting)2 MainKeyboardView (com.android.inputmethod.keyboard.MainKeyboardView)2 SpannableString (android.text.SpannableString)1 PrintWriterPrinter (android.util.PrintWriterPrinter)1 Printer (android.util.Printer)1 View (android.view.View)1 AccessibilityUtils (com.android.inputmethod.accessibility.AccessibilityUtils)1 Keyboard (com.android.inputmethod.keyboard.Keyboard)1 KeyboardSwitcher (com.android.inputmethod.keyboard.KeyboardSwitcher)1 SuggestionStripView (com.android.inputmethod.latin.suggestions.SuggestionStripView)1 Locale (java.util.Locale)1