Merge "Make aggressive threshold really aggressive"

main
Satoshi Kataoka 2013-04-24 09:14:30 +00:00 committed by Android (Google) Code Review
commit b35aa487fd
2 changed files with 13 additions and 5 deletions

View File

@ -111,8 +111,9 @@
<!-- Aggressive --> <!-- Aggressive -->
<item>0.067</item> <item>0.067</item>
<!-- Very Aggressive : Suggestion whose normalized score is greater than this value <!-- Very Aggressive : Suggestion whose normalized score is greater than this value
will be subject to auto-correction. --> will be subject to auto-correction. "floatNegativeInfinity" is a special marker
<item>0</item> string for Float.NEGATIVE_INFINITY -->
<item>floatNegativeInfinity</item>
</string-array> </string-array>
<!-- Threshold of the normalized score of the best suggestion for the spell checker to declare <!-- Threshold of the normalized score of the best suggestion for the spell checker to declare
a word to be "recommended" --> a word to be "recommended" -->

View File

@ -34,6 +34,9 @@ import java.util.Arrays;
*/ */
public final class SettingsValues { public final class SettingsValues {
private static final String TAG = SettingsValues.class.getSimpleName(); private static final String TAG = SettingsValues.class.getSimpleName();
// "floatNegativeInfinity" is a special marker string for Float.NEGATIVE_INFINITE
// currently used for auto-correction
private static final String FLOAT_NEGATIVE_INFINITY_MARKER_STRING = "floatNegativeInfinity";
// From resources: // From resources:
public final int mDelayUpdateOldSuggestions; public final int mDelayUpdateOldSuggestions;
@ -266,8 +269,12 @@ public final class SettingsValues {
try { try {
final int arrayIndex = Integer.valueOf(currentAutoCorrectionSetting); final int arrayIndex = Integer.valueOf(currentAutoCorrectionSetting);
if (arrayIndex >= 0 && arrayIndex < autoCorrectionThresholdValues.length) { if (arrayIndex >= 0 && arrayIndex < autoCorrectionThresholdValues.length) {
autoCorrectionThreshold = Float.parseFloat( final String val = autoCorrectionThresholdValues[arrayIndex];
autoCorrectionThresholdValues[arrayIndex]); if (FLOAT_NEGATIVE_INFINITY_MARKER_STRING.equals(val)) {
autoCorrectionThreshold = Float.NEGATIVE_INFINITY;
} else {
autoCorrectionThreshold = Float.parseFloat(val);
}
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
// Whenever the threshold settings are correct, never come here. // Whenever the threshold settings are correct, never come here.
@ -275,7 +282,7 @@ public final class SettingsValues {
Log.w(TAG, "Cannot load auto correction threshold setting." Log.w(TAG, "Cannot load auto correction threshold setting."
+ " currentAutoCorrectionSetting: " + currentAutoCorrectionSetting + " currentAutoCorrectionSetting: " + currentAutoCorrectionSetting
+ ", autoCorrectionThresholdValues: " + ", autoCorrectionThresholdValues: "
+ Arrays.toString(autoCorrectionThresholdValues)); + Arrays.toString(autoCorrectionThresholdValues), e);
} }
return autoCorrectionThreshold; return autoCorrectionThreshold;
} }