am 26a29865: am ab661e3e: Make "Show correction suggestions" as a binary option

* commit '26a2986581410536a98e1c311214dc90d9934546':
  Make "Show correction suggestions" as a binary option
This commit is contained in:
Tadashi G. Takaoka 2014-07-28 12:14:18 +00:00 committed by Android Git Automerger
commit 4dba300e50
9 changed files with 52 additions and 94 deletions

View file

@ -18,26 +18,6 @@
*/ */
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Always show the suggestion strip -->
<string name="prefs_suggestion_visibility_show_value">0</string>
<!-- Show the suggestion strip only on portrait mode -->
<string name="prefs_suggestion_visibility_show_only_portrait_value">1</string>
<!-- Always hide the suggestion strip -->
<string name="prefs_suggestion_visibility_hide_value">2</string>
<!-- Default value of the visibility of the suggestion strip -->
<string name="prefs_suggestion_visibility_default_value">0</string>
<!-- Option to show/hide the suggestion strip -->
<string-array name="prefs_suggestion_visibility_values">
<item>@string/prefs_suggestion_visibility_show_value</item>
<item>@string/prefs_suggestion_visibility_show_only_portrait_value</item>
<item>@string/prefs_suggestion_visibility_hide_value</item>
</string-array>
<string-array name="prefs_suggestion_visibilities">
<item>@string/prefs_suggestion_visibility_show_name</item>
<item>@string/prefs_suggestion_visibility_show_only_portrait_name</item>
<item>@string/prefs_suggestion_visibility_hide_name</item>
</string-array>
<!-- For backward compatibility. <!-- For backward compatibility.
See {@link SettingsValues#needsToShowVoiceInputKey(SharedPreferences,Resources)} --> See {@link SettingsValues#needsToShowVoiceInputKey(SharedPreferences,Resources)} -->
<string name="voice_mode_main">0</string> <string name="voice_mode_main">0</string>

View file

@ -108,9 +108,6 @@
<string name="prefs_show_suggestions">Show correction suggestions</string> <string name="prefs_show_suggestions">Show correction suggestions</string>
<!-- Description for show suggestions --> <!-- Description for show suggestions -->
<string name="prefs_show_suggestions_summary">Display suggested words while typing</string> <string name="prefs_show_suggestions_summary">Display suggested words while typing</string>
<string name="prefs_suggestion_visibility_show_name">Always show</string>
<string name="prefs_suggestion_visibility_show_only_portrait_name">Show in portrait mode</string>
<string name="prefs_suggestion_visibility_hide_name">Always hide</string>
<!-- Option to block potentially offensive words to be shown [CHAR_LIMIT=30] --> <!-- Option to block potentially offensive words to be shown [CHAR_LIMIT=30] -->
<string name="prefs_block_potentially_offensive_title">Block offensive words</string> <string name="prefs_block_potentially_offensive_title">Block offensive words</string>

View file

@ -144,13 +144,11 @@
android:entries="@array/auto_correction_threshold_modes" android:entries="@array/auto_correction_threshold_modes"
android:defaultValue="@string/auto_correction_threshold_mode_index_modest" android:defaultValue="@string/auto_correction_threshold_mode_index_modest"
android:persistent="true" /> android:persistent="true" />
<ListPreference <CheckBoxPreference
android:key="show_suggestions_setting" android:key="show_suggestions"
android:summary="@string/prefs_show_suggestions_summary" android:summary="@string/prefs_show_suggestions_summary"
android:title="@string/prefs_show_suggestions" android:title="@string/prefs_show_suggestions"
android:entryValues="@array/prefs_suggestion_visibility_values" android:defaultValue="true"
android:entries="@array/prefs_suggestion_visibilities"
android:defaultValue="@string/prefs_suggestion_visibility_default_value"
android:persistent="true" /> android:persistent="true" />
<CheckBoxPreference <CheckBoxPreference
android:key="pref_key_use_personalized_dicts" android:key="pref_key_use_personalized_dicts"

View file

@ -280,7 +280,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
return; return;
} }
if (!latinIme.mSettings.getCurrent() if (!latinIme.mSettings.getCurrent()
.isCurrentOrientationAllowingSuggestionsPerUserSettings()) { .isSuggestionsEnabledPerUserSettings()) {
return; return;
} }
removeMessages(MSG_RESUME_SUGGESTIONS); removeMessages(MSG_RESUME_SUGGESTIONS);
@ -650,7 +650,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mDictionaryFacilitator.resetDictionaries(this /* context */, locale, mDictionaryFacilitator.resetDictionaries(this /* context */, locale,
settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts, settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
false /* forceReloadMainDictionary */, this); false /* forceReloadMainDictionary */, this);
if (settingsValues.mAutoCorrectionEnabled) { if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
mInputLogic.mSuggest.setAutoCorrectionThreshold( mInputLogic.mSuggest.setAutoCorrectionThreshold(
settingsValues.mAutoCorrectionThreshold); settingsValues.mAutoCorrectionThreshold);
} }
@ -862,7 +862,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
mainKeyboardView.closing(); mainKeyboardView.closing();
currentSettingsValues = mSettings.getCurrent(); currentSettingsValues = mSettings.getCurrent();
if (currentSettingsValues.mAutoCorrectionEnabled) { if (currentSettingsValues.mAutoCorrectionEnabledPerUserSettings) {
suggest.setAutoCorrectionThreshold( suggest.setAutoCorrectionThreshold(
currentSettingsValues.mAutoCorrectionThreshold); currentSettingsValues.mAutoCorrectionThreshold);
} }
@ -977,7 +977,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
*/ */
@Override @Override
public void onExtractedTextClicked() { public void onExtractedTextClicked() {
if (mSettings.getCurrent().isSuggestionsRequested()) { if (mSettings.getCurrent().needsToLookupSuggestions()) {
return; return;
} }
@ -995,7 +995,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
*/ */
@Override @Override
public void onExtractedCursorMovement(final int dx, final int dy) { public void onExtractedCursorMovement(final int dx, final int dy) {
if (mSettings.getCurrent().isSuggestionsRequested()) { if (mSettings.getCurrent().needsToLookupSuggestions()) {
return; return;
} }
@ -1379,7 +1379,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
ImportantNoticeUtils.shouldShowImportantNotice(this); ImportantNoticeUtils.shouldShowImportantNotice(this);
final boolean shouldShowSuggestionCandidates = final boolean shouldShowSuggestionCandidates =
currentSettingsValues.mInputAttributes.mShouldShowSuggestions currentSettingsValues.mInputAttributes.mShouldShowSuggestions
&& currentSettingsValues.isCurrentOrientationAllowingSuggestionsPerUserSettings(); && currentSettingsValues.isSuggestionsEnabledPerUserSettings();
final boolean shouldShowSuggestionsStripUnlessPassword = shouldShowImportantNotice final boolean shouldShowSuggestionsStripUnlessPassword = shouldShowImportantNotice
|| currentSettingsValues.mShowsVoiceInputKey || currentSettingsValues.mShowsVoiceInputKey
|| shouldShowSuggestionCandidates || shouldShowSuggestionCandidates
@ -1403,7 +1403,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
} }
} }
if (currentSettingsValues.isCurrentOrientationAllowingSuggestionsPerUserSettings() if (currentSettingsValues.isSuggestionsEnabledPerUserSettings()
// We should clear suggestions if there is no suggestion to show. // We should clear suggestions if there is no suggestion to show.
|| noSuggestionsToShow || noSuggestionsToShow
|| currentSettingsValues.isApplicationSpecifiedCompletionsOn()) { || currentSettingsValues.isApplicationSpecifiedCompletionsOn()) {

View file

@ -745,7 +745,7 @@ public final class InputLogic {
// a letter or a word connector. // a letter or a word connector.
&& settingsValues.isWordCodePoint(codePoint) && settingsValues.isWordCodePoint(codePoint)
// We never go into composing state if suggestions are not requested. // We never go into composing state if suggestions are not requested.
&& settingsValues.isSuggestionsRequested() && && settingsValues.needsToLookupSuggestions() &&
// In languages with spaces, we only start composing a word when we are not already // In languages with spaces, we only start composing a word when we are not already
// touching a word. In languages without spaces, the above conditions are sufficient. // touching a word. In languages without spaces, the above conditions are sufficient.
(!mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations) (!mConnection.isCursorTouchingWord(settingsValues.mSpacingAndPunctuations)
@ -810,7 +810,7 @@ public final class InputLogic {
} }
// isComposingWord() may have changed since we stored wasComposing // isComposingWord() may have changed since we stored wasComposing
if (mWordComposer.isComposingWord()) { if (mWordComposer.isComposingWord()) {
if (settingsValues.mAutoCorrectionEnabled) { if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
final String separator = shouldAvoidSendingCode ? LastComposedWord.NOT_A_SEPARATOR final String separator = shouldAvoidSendingCode ? LastComposedWord.NOT_A_SEPARATOR
: StringUtils.newSingleCodePointString(codePoint); : StringUtils.newSingleCodePointString(codePoint);
commitCurrentAutoCorrection(settingsValues, separator, handler); commitCurrentAutoCorrection(settingsValues, separator, handler);
@ -1029,7 +1029,7 @@ public final class InputLogic {
} }
} }
if (inputTransaction.mSettingsValues if (inputTransaction.mSettingsValues
.isCurrentOrientationAllowingSuggestionsPerUserSettings() .isSuggestionsEnabledPerUserSettings()
&& inputTransaction.mSettingsValues.mSpacingAndPunctuations && inputTransaction.mSettingsValues.mSpacingAndPunctuations
.mCurrentLanguageHasSpaces .mCurrentLanguageHasSpaces
&& !mConnection.isCursorFollowedByWordCharacter( && !mConnection.isCursorFollowedByWordCharacter(
@ -1224,7 +1224,7 @@ public final class InputLogic {
// If correction is not enabled, we don't add words to the user history dictionary. // If correction is not enabled, we don't add words to the user history dictionary.
// That's to avoid unintended additions in some sensitive fields, or fields that // That's to avoid unintended additions in some sensitive fields, or fields that
// expect to receive non-words. // expect to receive non-words.
if (!settingsValues.mAutoCorrectionEnabled) return; if (!settingsValues.mAutoCorrectionEnabledPerUserSettings) return;
if (TextUtils.isEmpty(suggestion)) return; if (TextUtils.isEmpty(suggestion)) return;
final boolean wasAutoCapitalized = final boolean wasAutoCapitalized =
@ -1237,7 +1237,7 @@ public final class InputLogic {
public void performUpdateSuggestionStripSync(final SettingsValues settingsValues) { public void performUpdateSuggestionStripSync(final SettingsValues settingsValues) {
// Check if we have a suggestion engine attached. // Check if we have a suggestion engine attached.
if (!settingsValues.isSuggestionsRequested()) { if (!settingsValues.needsToLookupSuggestions()) {
if (mWordComposer.isComposingWord()) { if (mWordComposer.isComposingWord()) {
Log.w(TAG, "Called updateSuggestionsOrPredictions but suggestions were not " Log.w(TAG, "Called updateSuggestionsOrPredictions but suggestions were not "
+ "requested!"); + "requested!");
@ -1299,7 +1299,7 @@ public final class InputLogic {
// how to segment them yet. // how to segment them yet.
|| !settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces || !settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
// If no suggestions are requested, don't try restarting suggestions. // If no suggestions are requested, don't try restarting suggestions.
|| !settingsValues.isSuggestionsRequested() || !settingsValues.needsToLookupSuggestions()
// If we are currently in a batch input, we must not resume suggestions, or the result // If we are currently in a batch input, we must not resume suggestions, or the result
// of the batch input will replace the new composition. This may happen in the corner case // of the batch input will replace the new composition. This may happen in the corner case
// that the app moves the cursor on its own accord during a batch input. // that the app moves the cursor on its own accord during a batch input.
@ -2003,7 +2003,7 @@ public final class InputLogic {
new SettingsValuesForSuggestion(settingsValues.mBlockPotentiallyOffensive, new SettingsValuesForSuggestion(settingsValues.mBlockPotentiallyOffensive,
settingsValues.mPhraseGestureEnabled, settingsValues.mPhraseGestureEnabled,
settingsValues.mAdditionalFeaturesSettingValues), settingsValues.mAdditionalFeaturesSettingValues),
settingsValues.mAutoCorrectionEnabled, settingsValues.mAutoCorrectionEnabledPerUserSettings,
sessionId, sequenceNumber, callback); sessionId, sequenceNumber, callback);
} }
} }

View file

@ -57,7 +57,9 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"; public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary";
public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key"; public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key";
public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold"; public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
public static final String PREF_SHOW_SUGGESTIONS_SETTING = "show_suggestions_setting"; // PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE is obsolete. Use PREF_SHOW_SUGGESTIONS instead.
public static final String PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE = "show_suggestions_setting";
public static final String PREF_SHOW_SUGGESTIONS = "show_suggestions";
public static final String PREF_KEY_USE_CONTACTS_DICT = "pref_key_use_contacts_dict"; public static final String PREF_KEY_USE_CONTACTS_DICT = "pref_key_use_contacts_dict";
public static final String PREF_KEY_USE_PERSONALIZED_DICTS = "pref_key_use_personalized_dicts"; public static final String PREF_KEY_USE_PERSONALIZED_DICTS = "pref_key_use_personalized_dicts";
public static final String PREF_KEY_USE_DOUBLE_SPACE_PERIOD = public static final String PREF_KEY_USE_DOUBLE_SPACE_PERIOD =

View file

@ -247,7 +247,6 @@ public final class SettingsFragment extends InputMethodSettingsFragment
if (showSetupWizardIcon != null) { if (showSetupWizardIcon != null) {
showSetupWizardIcon.setChecked(Settings.readShowSetupWizardIcon(prefs, getActivity())); showSetupWizardIcon.setChecked(Settings.readShowSetupWizardIcon(prefs, getActivity()));
} }
updateListPreferenceSummaryToCurrentValue(Settings.PREF_SHOW_SUGGESTIONS_SETTING);
updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY); updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
final ListPreference keyboardThemePref = (ListPreference)findPreference( final ListPreference keyboardThemePref = (ListPreference)findPreference(
Settings.PREF_KEYBOARD_THEME); Settings.PREF_KEYBOARD_THEME);
@ -298,7 +297,6 @@ public final class SettingsFragment extends InputMethodSettingsFragment
LauncherIconVisibilityManager.updateSetupWizardIconVisibility(getActivity()); LauncherIconVisibilityManager.updateSetupWizardIconVisibility(getActivity());
} }
ensureConsistencyOfAutoCorrectionSettings(); ensureConsistencyOfAutoCorrectionSettings();
updateListPreferenceSummaryToCurrentValue(Settings.PREF_SHOW_SUGGESTIONS_SETTING);
updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY); updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEYBOARD_THEME); updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEYBOARD_THEME);
refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources());

View file

@ -85,9 +85,8 @@ public final class SettingsValues {
public final int mKeyPreviewPopupDismissDelay; public final int mKeyPreviewPopupDismissDelay;
private final boolean mAutoCorrectEnabled; private final boolean mAutoCorrectEnabled;
public final float mAutoCorrectionThreshold; public final float mAutoCorrectionThreshold;
// TODO: Rename this to mAutoCorrectionEnabledPerUserSettings. public final boolean mAutoCorrectionEnabledPerUserSettings;
public final boolean mAutoCorrectionEnabled; private final boolean mSuggestionsEnabledPerUserSettings;
public final int mSuggestionVisibility;
public final int mDisplayOrientation; public final int mDisplayOrientation;
private final AsyncResultHolder<AppWorkaroundsUtils> mAppWorkarounds; private final AsyncResultHolder<AppWorkaroundsUtils> mAppWorkarounds;
@ -155,11 +154,9 @@ public final class SettingsValues {
mGestureFloatingPreviewTextEnabled = prefs.getBoolean( mGestureFloatingPreviewTextEnabled = prefs.getBoolean(
Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true); Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res); mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
mAutoCorrectionEnabled = mAutoCorrectEnabled && !mInputAttributes.mInputTypeNoAutoCorrect; mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
final String showSuggestionsSetting = prefs.getString( && !mInputAttributes.mInputTypeNoAutoCorrect;
Settings.PREF_SHOW_SUGGESTIONS_SETTING, mSuggestionsEnabledPerUserSettings = readSuggestionsEnabled(prefs);
res.getString(R.string.prefs_suggestion_visibility_default_value));
mSuggestionVisibility = createSuggestionVisibility(res, showSuggestionsSetting);
AdditionalFeaturesSettingUtils.readAdditionalFeaturesPreferencesIntoArray( AdditionalFeaturesSettingUtils.readAdditionalFeaturesPreferencesIntoArray(
prefs, mAdditionalFeaturesSettingValues); prefs, mAdditionalFeaturesSettingValues);
mIsInternal = Settings.isInternal(prefs); mIsInternal = Settings.isInternal(prefs);
@ -193,17 +190,13 @@ public final class SettingsValues {
return mInputAttributes.mApplicationSpecifiedCompletionOn; return mInputAttributes.mApplicationSpecifiedCompletionOn;
} }
// TODO: Rename this to needsToLookupSuggestions(). public boolean needsToLookupSuggestions() {
public boolean isSuggestionsRequested() {
return mInputAttributes.mShouldShowSuggestions return mInputAttributes.mShouldShowSuggestions
&& (mAutoCorrectionEnabled && (mAutoCorrectionEnabledPerUserSettings || isSuggestionsEnabledPerUserSettings());
|| isCurrentOrientationAllowingSuggestionsPerUserSettings());
} }
public boolean isCurrentOrientationAllowingSuggestionsPerUserSettings() { public boolean isSuggestionsEnabledPerUserSettings() {
return (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_VALUE) return mSuggestionsEnabledPerUserSettings;
|| (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_ONLY_PORTRAIT_VALUE
&& mDisplayOrientation == Configuration.ORIENTATION_PORTRAIT);
} }
public boolean isWordSeparator(final int code) { public boolean isWordSeparator(final int code) {
@ -263,26 +256,18 @@ public final class SettingsValues {
return null == appWorkaroundUtils ? false : appWorkaroundUtils.isBrokenByRecorrection(); return null == appWorkaroundUtils ? false : appWorkaroundUtils.isBrokenByRecorrection();
} }
private static final int SUGGESTION_VISIBILITY_SHOW_VALUE = private static final String SUGGESTIONS_VISIBILITY_HIDE_VALUE_OBSOLETE = "2";
R.string.prefs_suggestion_visibility_show_value;
private static final int SUGGESTION_VISIBILITY_SHOW_ONLY_PORTRAIT_VALUE =
R.string.prefs_suggestion_visibility_show_only_portrait_value;
private static final int SUGGESTION_VISIBILITY_HIDE_VALUE =
R.string.prefs_suggestion_visibility_hide_value;
private static final int[] SUGGESTION_VISIBILITY_VALUE_ARRAY = new int[] {
SUGGESTION_VISIBILITY_SHOW_VALUE,
SUGGESTION_VISIBILITY_SHOW_ONLY_PORTRAIT_VALUE,
SUGGESTION_VISIBILITY_HIDE_VALUE
};
private static int createSuggestionVisibility(final Resources res, private static boolean readSuggestionsEnabled(final SharedPreferences prefs) {
final String suggestionVisiblityStr) { if (prefs.contains(Settings.PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE)) {
for (int visibility : SUGGESTION_VISIBILITY_VALUE_ARRAY) { final boolean alwaysHide = SUGGESTIONS_VISIBILITY_HIDE_VALUE_OBSOLETE.equals(
if (suggestionVisiblityStr.equals(res.getString(visibility))) { prefs.getString(Settings.PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE, null));
return visibility; prefs.edit()
} .remove(Settings.PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE)
.putBoolean(Settings.PREF_SHOW_SUGGESTIONS, !alwaysHide)
.apply();
} }
throw new RuntimeException("Bug: visibility string is not configured correctly"); return prefs.getBoolean(Settings.PREF_SHOW_SUGGESTIONS, true);
} }
private static boolean readBigramPredictionEnabled(final SharedPreferences prefs, private static boolean readBigramPredictionEnabled(final SharedPreferences prefs,
@ -396,10 +381,10 @@ public final class SettingsValues {
sb.append("" + mAutoCorrectEnabled); sb.append("" + mAutoCorrectEnabled);
sb.append("\n mAutoCorrectionThreshold = "); sb.append("\n mAutoCorrectionThreshold = ");
sb.append("" + mAutoCorrectionThreshold); sb.append("" + mAutoCorrectionThreshold);
sb.append("\n mAutoCorrectionEnabled = "); sb.append("\n mAutoCorrectionEnabledPerUserSettings = ");
sb.append("" + mAutoCorrectionEnabled); sb.append("" + mAutoCorrectionEnabledPerUserSettings);
sb.append("\n mSuggestionVisibility = "); sb.append("\n mSuggestionsEnabledPerUserSettings = ");
sb.append("" + mSuggestionVisibility); sb.append("" + mSuggestionsEnabledPerUserSettings);
sb.append("\n mDisplayOrientation = "); sb.append("\n mDisplayOrientation = ");
sb.append("" + mDisplayOrientation); sb.append("" + mDisplayOrientation);
sb.append("\n mAppWorkarounds = "); sb.append("\n mAppWorkarounds = ");

View file

@ -16,12 +16,12 @@
package com.android.inputmethod.latin; package com.android.inputmethod.latin;
import com.android.inputmethod.latin.settings.Settings;
import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.LargeTest;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.inputmethod.BaseInputConnection; import android.view.inputmethod.BaseInputConnection;
import com.android.inputmethod.latin.settings.Settings;
@LargeTest @LargeTest
public class InputLogicTests extends InputTestsBase { public class InputLogicTests extends InputTestsBase {
@ -242,16 +242,14 @@ public class InputLogicTests extends InputTestsBase {
public void testDoubleSpacePeriod() { public void testDoubleSpacePeriod() {
// Reset settings to default, else these tests will go flaky. // Reset settings to default, else these tests will go flaky.
setStringPreference(Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0", "0"); setBooleanPreference(Settings.PREF_SHOW_SUGGESTIONS, true, true);
setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1", "1"); setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1", "1");
setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true); setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
testDoubleSpacePeriodWithSettings(true /* expectsPeriod */); testDoubleSpacePeriodWithSettings(true /* expectsPeriod */);
// "Suggestion visibility" to "always hide" // "Suggestion visibility" to off
testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "2"); testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, false);
// "Suggestion visibility" to "portrait only" // "Suggestion visibility" to on
testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "1"); testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, true);
// "Suggestion visibility" to "always show"
testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0");
// "Double-space period" to "off" // "Double-space period" to "off"
testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false); testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
@ -264,10 +262,10 @@ public class InputLogicTests extends InputTestsBase {
testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "3"); testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "3");
// "Suggestion visibility" to "always hide" and "Auto-correction" to "off" // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0", testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, false,
Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0"); Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0");
// "Suggestion visibility" to "always hide" and "Auto-correction" to "off" // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
testDoubleSpacePeriodWithSettings(false, Settings.PREF_SHOW_SUGGESTIONS_SETTING, "0", testDoubleSpacePeriodWithSettings(false, Settings.PREF_SHOW_SUGGESTIONS, false,
Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0", Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0",
Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false); Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
} }