diff options
author | 2014-04-29 11:34:28 -0700 | |
---|---|---|
committer | 2014-04-29 11:34:28 -0700 | |
commit | 2debf168920bb852b1583446fc336743f98b3c04 (patch) | |
tree | 7324a335fb65fcc585695d7d061b04aeba64be10 /java/src/com/android/inputmethod/latin/settings | |
parent | 5c36065b74852857b3cc520d7be5df9413937cd9 (diff) | |
parent | 5df8b42709662b0e599019e4fd17c4e153ff6b47 (diff) | |
download | latinime-2debf168920bb852b1583446fc336743f98b3c04.tar.gz latinime-2debf168920bb852b1583446fc336743f98b3c04.tar.xz latinime-2debf168920bb852b1583446fc336743f98b3c04.zip |
Merge commit '5df8b42709662b0e599019e4fd17c4e153ff6b47' into HEAD
Diffstat (limited to 'java/src/com/android/inputmethod/latin/settings')
3 files changed, 45 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java index 1b592b565..da1fb73fe 100644 --- a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java +++ b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java @@ -113,9 +113,7 @@ public final class DebugSettings extends PreferenceFragment mServiceNeedsRestart = true; } } else if (key.equals(PREF_FORCE_NON_DISTINCT_MULTITOUCH) - || key.equals(KeyboardSwitcher.PREF_KEYBOARD_LAYOUT)) { - mServiceNeedsRestart = true; - } else if (key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) { + || key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) { mServiceNeedsRestart = true; } } diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java index dc005bbdf..df2c6907f 100644 --- a/java/src/com/android/inputmethod/latin/settings/Settings.java +++ b/java/src/com/android/inputmethod/latin/settings/Settings.java @@ -65,6 +65,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_show_language_switch_key"; public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = "pref_include_other_imes_in_language_switch_list"; + public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20110916"; public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles"; public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = "pref_key_preview_popup_dismiss_delay"; @@ -262,6 +263,28 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); } + 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); + try { + return Integer.valueOf(themeIndex); + } catch (final NumberFormatException e) { + // Format error, returns default keyboard theme index. + Log.e(TAG, "Illegal keyboard theme in preference: " + themeIndex + ", default to " + + defaultThemeIndex, e); + return Integer.valueOf(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); + } + public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, final Resources res) { final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java index cb7dda655..5c60a7350 100644 --- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java @@ -255,6 +255,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment } updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); + updateColorSchemeSummary(prefs, getResources()); updateCustomInputStylesSummary(); } @@ -288,6 +289,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment ensureConsistencyOfAutoCorrectionSettings(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); + updateColorSchemeSummary(prefs, res); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); } @@ -305,6 +307,25 @@ public final class SettingsFragment extends InputMethodSettingsFragment mShowCorrectionSuggestionsPreference.getValue())]); } + private void updateColorSchemeSummary(final SharedPreferences prefs, final Resources res) { + // Because the "%s" summary trick of {@link ListPreference} doesn't work properly before + // KitKat, we need to update the summary by code. + final Preference preference = findPreference(Settings.PREF_KEYBOARD_LAYOUT); + if (!(preference instanceof ListPreference)) { + Log.w(TAG, "Can't find Keyboard Color Scheme preference"); + return; + } + final ListPreference colorSchemePreference = (ListPreference)preference; + final int themeIndex = Settings.readKeyboardThemeIndex(prefs, res); + int entryIndex = colorSchemePreference.findIndexOfValue(Integer.toString(themeIndex)); + if (entryIndex < 0) { + final int defaultThemeIndex = Settings.resetAndGetDefaultKeyboardThemeIndex(prefs, res); + entryIndex = colorSchemePreference.findIndexOfValue( + Integer.toString(defaultThemeIndex)); + } + colorSchemePreference.setSummary(colorSchemePreference.getEntries()[entryIndex]); + } + private void updateCustomInputStylesSummary() { final PreferenceScreen customInputStyles = (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES); |