am 116e58c4: Remove autocorrection aggressiveness settings.

* commit '116e58c437526ea2503564317e2731b8126acaa4':
  Remove autocorrection aggressiveness settings.
main
Chieu Nguyen 2015-03-13 21:09:32 +00:00 committed by Android Git Automerger
commit 3b08ef1d5b
5 changed files with 43 additions and 28 deletions

View File

@ -41,13 +41,11 @@
android:summary="@string/prefs_block_potentially_offensive_summary" android:summary="@string/prefs_block_potentially_offensive_summary"
android:defaultValue="@bool/config_block_potentially_offensive" android:defaultValue="@bool/config_block_potentially_offensive"
android:persistent="true" /> android:persistent="true" />
<ListPreference <CheckBoxPreference
android:key="auto_correction_threshold" android:key="pref_key_auto_correction"
android:title="@string/auto_correction" android:title="@string/auto_correction"
android:summary="@string/auto_correction_summary" android:summary="@string/auto_correction_summary"
android:entryValues="@array/auto_correction_threshold_mode_indexes" android:defaultValue="true"
android:entries="@array/auto_correction_threshold_modes"
android:defaultValue="@string/auto_correction_threshold_mode_index_modest"
android:persistent="true" /> android:persistent="true" />
<CheckBoxPreference <CheckBoxPreference
android:key="show_suggestions" android:key="show_suggestions"

View File

@ -57,7 +57,10 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key"; public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key";
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"; // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead.
public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE =
"auto_correction_threshold";
public static final String PREF_AUTO_CORRECTION = "pref_key_auto_correction";
// PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE is obsolete. Use PREF_SHOW_SUGGESTIONS instead. // 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_SETTING_OBSOLETE = "show_suggestions_setting";
public static final String PREF_SHOW_SUGGESTIONS = "show_suggestions"; public static final String PREF_SHOW_SUGGESTIONS = "show_suggestions";
@ -139,6 +142,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
mRes = context.getResources(); mRes = context.getResources();
mPrefs = PreferenceManager.getDefaultSharedPreferences(context); mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
mPrefs.registerOnSharedPreferenceChangeListener(this); mPrefs.registerOnSharedPreferenceChangeListener(this);
upgradeAutocorrectionSettings(mPrefs, mRes);
} }
public void onDestroy() { public void onDestroy() {
@ -207,11 +211,9 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
res.getBoolean(R.bool.config_default_vibration_enabled)); res.getBoolean(R.bool.config_default_vibration_enabled));
} }
public static boolean readAutoCorrectEnabled(final String currentAutoCorrectionSetting, public static boolean readAutoCorrectEnabled(final SharedPreferences prefs,
final Resources res) { final Resources res) {
final String autoCorrectionOff = res.getString( return prefs.getBoolean(PREF_AUTO_CORRECTION, true);
R.string.auto_correction_threshold_mode_index_off);
return !currentAutoCorrectionSetting.equals(autoCorrectionOff);
} }
public static float readPlausibilityThreshold(final Resources res) { public static float readPlausibilityThreshold(final Resources res) {
@ -421,4 +423,21 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
final SharedPreferences prefs, final int defValue) { final SharedPreferences prefs, final int defValue) {
return prefs.getInt(PREF_LAST_SHOWN_EMOJI_CATEGORY_ID, defValue); return prefs.getInt(PREF_LAST_SHOWN_EMOJI_CATEGORY_ID, defValue);
} }
private void upgradeAutocorrectionSettings(final SharedPreferences prefs, final Resources res) {
final String thresholdSetting =
prefs.getString(PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE, null);
if (thresholdSetting != null) {
SharedPreferences.Editor editor = prefs.edit();
editor.remove(PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE);
final String autoCorrectionOff =
res.getString(R.string.auto_correction_threshold_mode_index_off);
if (thresholdSetting.equals(autoCorrectionOff)) {
editor.putBoolean(PREF_AUTO_CORRECTION, false);
} else {
editor.putBoolean(PREF_AUTO_CORRECTION, true);
}
editor.commit();
}
}
} }

View File

@ -135,9 +135,6 @@ public class SettingsValues {
mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res) mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res)
&& mInputAttributes.mShouldShowVoiceInputKey && mInputAttributes.mShouldShowVoiceInputKey
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
final String autoCorrectionThresholdRawValue = prefs.getString(
Settings.PREF_AUTO_CORRECTION_THRESHOLD,
res.getString(R.string.auto_correction_threshold_mode_index_modest));
mIncludesOtherImesInLanguageSwitchList = Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS mIncludesOtherImesInLanguageSwitchList = Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS
? prefs.getBoolean(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, false) ? prefs.getBoolean(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, false)
: true /* forcibly */; : true /* forcibly */;
@ -148,7 +145,10 @@ public class SettingsValues {
mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true) mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true)
&& inputAttributes.mIsGeneralTextInput; && inputAttributes.mIsGeneralTextInput;
mBlockPotentiallyOffensive = Settings.readBlockPotentiallyOffensive(prefs, res); mBlockPotentiallyOffensive = Settings.readBlockPotentiallyOffensive(prefs, res);
mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(autoCorrectionThresholdRawValue, res); mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(prefs, res);
final String autoCorrectionThresholdRawValue = mAutoCorrectEnabled
? res.getString(R.string.auto_correction_threshold_mode_index_modest)
: res.getString(R.string.auto_correction_threshold_mode_index_off);
mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout); mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout);
mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration()); mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration());
mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true); mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true);

View File

@ -265,7 +265,7 @@ 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.
setBooleanPreference(Settings.PREF_SHOW_SUGGESTIONS, true, true); setBooleanPreference(Settings.PREF_SHOW_SUGGESTIONS, true, true);
setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1", "1"); setBooleanPreference(Settings.PREF_AUTO_CORRECTION, true, true);
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 off // "Suggestion visibility" to off
@ -277,18 +277,16 @@ public class InputLogicTests extends InputTestsBase {
testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false); testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
// "Auto-correction" to "off" // "Auto-correction" to "off"
testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0"); testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION, false);
// "Auto-correction" to "modest" // "Auto-correction" to "on"
testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1"); testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION, true);
// "Auto-correction" to "very aggressive"
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, false, testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, false,
Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0"); Settings.PREF_AUTO_CORRECTION, false);
// "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, false, testDoubleSpacePeriodWithSettings(false, Settings.PREF_SHOW_SUGGESTIONS, false,
Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0", Settings.PREF_AUTO_CORRECTION, false,
Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false); Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
} }

View File

@ -58,7 +58,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
// Default value for auto-correction threshold. This is the string representation of the // Default value for auto-correction threshold. This is the string representation of the
// index in the resources array of auto-correction threshold settings. // index in the resources array of auto-correction threshold settings.
private static final String DEFAULT_AUTO_CORRECTION_THRESHOLD = "1"; private static final boolean DEFAULT_AUTO_CORRECTION = true;
// The message that sets the underline is posted with a 500 ms delay // The message that sets the underline is posted with a 500 ms delay
protected static final int DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS = 500; protected static final int DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS = 500;
@ -77,7 +77,7 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
protected MyEditText mEditText; protected MyEditText mEditText;
protected View mInputView; protected View mInputView;
protected InputConnection mInputConnection; protected InputConnection mInputConnection;
private String mPreviousAutoCorrectSetting; private boolean mPreviousAutoCorrectSetting;
// A helper class to ease span tests // A helper class to ease span tests
public static class SpanGetter { public static class SpanGetter {
@ -200,8 +200,8 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
setupService(); setupService();
mLatinIME = getService(); mLatinIME = getService();
setDebugMode(true); setDebugMode(true);
mPreviousAutoCorrectSetting = setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting = setBooleanPreference(Settings.PREF_AUTO_CORRECTION,
DEFAULT_AUTO_CORRECTION_THRESHOLD, DEFAULT_AUTO_CORRECTION_THRESHOLD); DEFAULT_AUTO_CORRECTION, DEFAULT_AUTO_CORRECTION);
mLatinIME.onCreate(); mLatinIME.onCreate();
EditorInfo ei = new EditorInfo(); EditorInfo ei = new EditorInfo();
final InputConnection ic = mEditText.onCreateInputConnection(ei); final InputConnection ic = mEditText.onCreateInputConnection(ei);
@ -230,8 +230,8 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> {
mLatinIME.onFinishInput(); mLatinIME.onFinishInput();
runMessages(); runMessages();
mLatinIME.mHandler.removeAllMessages(); mLatinIME.mHandler.removeAllMessages();
setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting, setBooleanPreference(Settings.PREF_AUTO_CORRECTION, mPreviousAutoCorrectSetting,
DEFAULT_AUTO_CORRECTION_THRESHOLD); DEFAULT_AUTO_CORRECTION);
setDebugMode(false); setDebugMode(false);
mLatinIME.recycle(); mLatinIME.recycle();
super.tearDown(); super.tearDown();