diff options
author | 2014-03-18 00:29:41 -0700 | |
---|---|---|
committer | 2014-03-18 00:29:41 -0700 | |
commit | 79ff39fccd6f186ff3acf0b1568de78b24ca846c (patch) | |
tree | ba57235595eef56bb8b0b2de08f786f6ee0cbd9f /java/src/com/android/inputmethod/latin | |
parent | aa4cfe9a035484dad25f5cc4ca8dd356c93ab8da (diff) | |
parent | 1325ddbae318d75b62f59beb09b989291838be48 (diff) | |
download | latinime-79ff39fccd6f186ff3acf0b1568de78b24ca846c.tar.gz latinime-79ff39fccd6f186ff3acf0b1568de78b24ca846c.tar.xz latinime-79ff39fccd6f186ff3acf0b1568de78b24ca846c.zip |
am 1325ddba: Merge "Guard possible NumberFormatException"
* commit '1325ddbae318d75b62f59beb09b989291838be48':
Guard possible NumberFormatException
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r-- | java/src/com/android/inputmethod/latin/settings/Settings.java | 32 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/settings/SettingsValues.java | 2 |
2 files changed, 23 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java index b51c765f0..964bf2246 100644 --- a/java/src/com/android/inputmethod/latin/settings/Settings.java +++ b/java/src/com/android/inputmethod/latin/settings/Settings.java @@ -23,6 +23,7 @@ import android.content.res.Resources; import android.preference.PreferenceManager; import android.util.Log; +import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.AudioAndHapticFeedbackManager; import com.android.inputmethod.latin.InputAttributes; import com.android.inputmethod.latin.R; @@ -270,25 +271,36 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang } public static int readKeyboardThemeIndex(final SharedPreferences prefs, final Resources res) { - final String defaultThemeIndex = res.getString( - R.string.config_default_keyboard_theme_index); - final String themeIndex = prefs.getString(PREF_KEYBOARD_LAYOUT, defaultThemeIndex); + final int defaultThemeIndex = readDefaultKeyboardThemeIndex(res); + final String themeIndexString = prefs.getString(PREF_KEYBOARD_LAYOUT, null); try { - return Integer.valueOf(themeIndex); + return Integer.parseInt(themeIndexString); } catch (final NumberFormatException e) { // Format error, returns default keyboard theme index. - Log.e(TAG, "Illegal keyboard theme in preference: " + themeIndex + ", default to " + Log.e(TAG, "Illegal keyboard theme in preference: " + themeIndexString + ", default to " + defaultThemeIndex, e); - return Integer.valueOf(defaultThemeIndex); + } + return defaultThemeIndex; + } + + private static int readDefaultKeyboardThemeIndex(final Resources res) { + final String defaultThemeIndexString = res.getString( + R.string.config_default_keyboard_theme_index); + try { + return Integer.parseInt(defaultThemeIndexString); + } catch (final NumberFormatException e) { + final int defaultThemeIndex = KeyboardSwitcher.DEFAULT_THEME_INDEX; + Log.e(TAG, "Corrupted default keyoard theme in resource: " + defaultThemeIndexString + + ", default to " + defaultThemeIndex, e); + return defaultThemeIndex; } } public static int resetAndGetDefaultKeyboardThemeIndex(final SharedPreferences prefs, final Resources res) { - final String defaultThemeIndex = res.getString( - R.string.config_default_keyboard_theme_index); - prefs.edit().putString(PREF_KEYBOARD_LAYOUT, defaultThemeIndex).apply(); - return Integer.valueOf(defaultThemeIndex); + final int defaultThemeIndex = readDefaultKeyboardThemeIndex(res); + prefs.edit().putString(PREF_KEYBOARD_LAYOUT, Integer.toString(defaultThemeIndex)).apply(); + return defaultThemeIndex; } public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java index 50fbbb19f..5a652a557 100644 --- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java +++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java @@ -285,7 +285,7 @@ public final class SettingsValues { // When autoCorrectionThreshold is greater than 1.0, it's like auto correction is off. final float autoCorrectionThreshold; try { - final int arrayIndex = Integer.valueOf(currentAutoCorrectionSetting); + final int arrayIndex = Integer.parseInt(currentAutoCorrectionSetting); if (arrayIndex >= 0 && arrayIndex < autoCorrectionThresholdValues.length) { final String val = autoCorrectionThresholdValues[arrayIndex]; if (FLOAT_MAX_VALUE_MARKER_STRING.equals(val)) { |