Loading java/res/xml/prefs.xml +0 −1 Original line number Original line Diff line number Diff line Loading @@ -161,7 +161,6 @@ <ListPreference <ListPreference android:key="pref_keyboard_layout_20110916" android:key="pref_keyboard_layout_20110916" android:title="@string/keyboard_color_scheme" android:title="@string/keyboard_color_scheme" android:summary="%s" android:persistent="true" android:persistent="true" android:entryValues="@array/keyboard_color_schemes_values" android:entryValues="@array/keyboard_color_schemes_values" android:entries="@array/keyboard_color_schemes" android:entries="@array/keyboard_color_schemes" Loading java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +17 −22 Original line number Original line Diff line number Diff line Loading @@ -44,8 +44,6 @@ import com.android.inputmethod.latin.utils.ResourceUtils; public final class KeyboardSwitcher implements KeyboardState.SwitchActions { public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static final String TAG = KeyboardSwitcher.class.getSimpleName(); private static final String TAG = KeyboardSwitcher.class.getSimpleName(); public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20110916"; static final class KeyboardTheme { static final class KeyboardTheme { public final int mThemeId; public final int mThemeId; public final int mStyleId; public final int mStyleId; Loading @@ -58,13 +56,14 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { } } } } private static final int INDEX_THEME_ICS = 0; public static final int THEME_INDEX_ICS = 0; private static final int INDEX_THEME_GB = 1; public static final int THEME_INDEX_GB = 1; private static final int INDEX_THEME_KLP = 2; public static final int THEME_INDEX_KLP = 2; private static final KeyboardTheme[] KEYBOARD_THEMES = { public static final int THEME_INDEX_DEFAULT = THEME_INDEX_KLP; new KeyboardTheme(INDEX_THEME_ICS, R.style.KeyboardTheme_ICS), public static final KeyboardTheme[] KEYBOARD_THEMES = { new KeyboardTheme(INDEX_THEME_GB, R.style.KeyboardTheme_GB), new KeyboardTheme(THEME_INDEX_ICS, R.style.KeyboardTheme_ICS), new KeyboardTheme(INDEX_THEME_KLP, R.style.KeyboardTheme_KLP), new KeyboardTheme(THEME_INDEX_GB, R.style.KeyboardTheme_GB), new KeyboardTheme(THEME_INDEX_KLP, R.style.KeyboardTheme_KLP), }; }; private SubtypeSwitcher mSubtypeSwitcher; private SubtypeSwitcher mSubtypeSwitcher; Loading @@ -86,7 +85,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { * what user actually typed. */ * what user actually typed. */ private boolean mIsAutoCorrectionActive; private boolean mIsAutoCorrectionActive; private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[INDEX_THEME_KLP]; private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[THEME_INDEX_DEFAULT]; private Context mThemeContext; private Context mThemeContext; private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); Loading Loading @@ -124,19 +123,15 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static KeyboardTheme getKeyboardTheme(final Context context, private static KeyboardTheme getKeyboardTheme(final Context context, final SharedPreferences prefs) { final SharedPreferences prefs) { final String defaultIndex = context.getString(R.string.config_default_keyboard_theme_index); final Resources res = context.getResources(); final String themeIndex = prefs.getString(PREF_KEYBOARD_LAYOUT, defaultIndex); final int index = Settings.readKeyboardThemeIndex(prefs, res); try { final int index = Integer.valueOf(themeIndex); if (index >= 0 && index < KEYBOARD_THEMES.length) { if (index >= 0 && index < KEYBOARD_THEMES.length) { return KEYBOARD_THEMES[index]; return KEYBOARD_THEMES[index]; } } } catch (NumberFormatException e) { final int defaultThemeIndex = Settings.resetAndGetDefaultKeyboardThemeIndex(prefs, res); // Format error, keyboard theme is default to 0. Log.w(TAG, "Illegal keyboard theme in preference: " + index + ", default to " } + defaultThemeIndex); Log.w(TAG, "Illegal keyboard theme in preference: " + themeIndex + ", default to " return KEYBOARD_THEMES[defaultThemeIndex]; + defaultIndex); return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)]; } } private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context, private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context, Loading java/src/com/android/inputmethod/latin/settings/Settings.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -65,6 +65,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_show_language_switch_key"; "pref_show_language_switch_key"; public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = "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_CUSTOM_INPUT_STYLES = "custom_input_styles"; public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = "pref_key_preview_popup_dismiss_delay"; "pref_key_preview_popup_dismiss_delay"; Loading Loading @@ -262,6 +263,28 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); 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, public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, final Resources res) { final Resources res) { final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( Loading java/src/com/android/inputmethod/latin/settings/SettingsFragment.java +21 −0 Original line number Original line Diff line number Diff line Loading @@ -255,6 +255,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment } } updateShowCorrectionSuggestionsSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); updateKeyPreviewPopupDelaySummary(); updateColorSchemeSummary(prefs, getResources()); updateCustomInputStylesSummary(); updateCustomInputStylesSummary(); } } Loading Loading @@ -288,6 +289,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment ensureConsistencyOfAutoCorrectionSettings(); ensureConsistencyOfAutoCorrectionSettings(); updateShowCorrectionSuggestionsSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); updateKeyPreviewPopupDelaySummary(); updateColorSchemeSummary(prefs, res); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); } } Loading @@ -305,6 +307,25 @@ public final class SettingsFragment extends InputMethodSettingsFragment mShowCorrectionSuggestionsPreference.getValue())]); 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() { private void updateCustomInputStylesSummary() { final PreferenceScreen customInputStyles = final PreferenceScreen customInputStyles = (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES); (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES); Loading Loading
java/res/xml/prefs.xml +0 −1 Original line number Original line Diff line number Diff line Loading @@ -161,7 +161,6 @@ <ListPreference <ListPreference android:key="pref_keyboard_layout_20110916" android:key="pref_keyboard_layout_20110916" android:title="@string/keyboard_color_scheme" android:title="@string/keyboard_color_scheme" android:summary="%s" android:persistent="true" android:persistent="true" android:entryValues="@array/keyboard_color_schemes_values" android:entryValues="@array/keyboard_color_schemes_values" android:entries="@array/keyboard_color_schemes" android:entries="@array/keyboard_color_schemes" Loading
java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +17 −22 Original line number Original line Diff line number Diff line Loading @@ -44,8 +44,6 @@ import com.android.inputmethod.latin.utils.ResourceUtils; public final class KeyboardSwitcher implements KeyboardState.SwitchActions { public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static final String TAG = KeyboardSwitcher.class.getSimpleName(); private static final String TAG = KeyboardSwitcher.class.getSimpleName(); public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20110916"; static final class KeyboardTheme { static final class KeyboardTheme { public final int mThemeId; public final int mThemeId; public final int mStyleId; public final int mStyleId; Loading @@ -58,13 +56,14 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { } } } } private static final int INDEX_THEME_ICS = 0; public static final int THEME_INDEX_ICS = 0; private static final int INDEX_THEME_GB = 1; public static final int THEME_INDEX_GB = 1; private static final int INDEX_THEME_KLP = 2; public static final int THEME_INDEX_KLP = 2; private static final KeyboardTheme[] KEYBOARD_THEMES = { public static final int THEME_INDEX_DEFAULT = THEME_INDEX_KLP; new KeyboardTheme(INDEX_THEME_ICS, R.style.KeyboardTheme_ICS), public static final KeyboardTheme[] KEYBOARD_THEMES = { new KeyboardTheme(INDEX_THEME_GB, R.style.KeyboardTheme_GB), new KeyboardTheme(THEME_INDEX_ICS, R.style.KeyboardTheme_ICS), new KeyboardTheme(INDEX_THEME_KLP, R.style.KeyboardTheme_KLP), new KeyboardTheme(THEME_INDEX_GB, R.style.KeyboardTheme_GB), new KeyboardTheme(THEME_INDEX_KLP, R.style.KeyboardTheme_KLP), }; }; private SubtypeSwitcher mSubtypeSwitcher; private SubtypeSwitcher mSubtypeSwitcher; Loading @@ -86,7 +85,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { * what user actually typed. */ * what user actually typed. */ private boolean mIsAutoCorrectionActive; private boolean mIsAutoCorrectionActive; private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[INDEX_THEME_KLP]; private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[THEME_INDEX_DEFAULT]; private Context mThemeContext; private Context mThemeContext; private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); private static final KeyboardSwitcher sInstance = new KeyboardSwitcher(); Loading Loading @@ -124,19 +123,15 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions { private static KeyboardTheme getKeyboardTheme(final Context context, private static KeyboardTheme getKeyboardTheme(final Context context, final SharedPreferences prefs) { final SharedPreferences prefs) { final String defaultIndex = context.getString(R.string.config_default_keyboard_theme_index); final Resources res = context.getResources(); final String themeIndex = prefs.getString(PREF_KEYBOARD_LAYOUT, defaultIndex); final int index = Settings.readKeyboardThemeIndex(prefs, res); try { final int index = Integer.valueOf(themeIndex); if (index >= 0 && index < KEYBOARD_THEMES.length) { if (index >= 0 && index < KEYBOARD_THEMES.length) { return KEYBOARD_THEMES[index]; return KEYBOARD_THEMES[index]; } } } catch (NumberFormatException e) { final int defaultThemeIndex = Settings.resetAndGetDefaultKeyboardThemeIndex(prefs, res); // Format error, keyboard theme is default to 0. Log.w(TAG, "Illegal keyboard theme in preference: " + index + ", default to " } + defaultThemeIndex); Log.w(TAG, "Illegal keyboard theme in preference: " + themeIndex + ", default to " return KEYBOARD_THEMES[defaultThemeIndex]; + defaultIndex); return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)]; } } private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context, private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context, Loading
java/src/com/android/inputmethod/latin/settings/Settings.java +23 −0 Original line number Original line Diff line number Diff line Loading @@ -65,6 +65,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang "pref_show_language_switch_key"; "pref_show_language_switch_key"; public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST = "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_CUSTOM_INPUT_STYLES = "custom_input_styles"; public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY = "pref_key_preview_popup_dismiss_delay"; "pref_key_preview_popup_dismiss_delay"; Loading Loading @@ -262,6 +263,28 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return prefs.getBoolean(PREF_SHOW_LANGUAGE_SWITCH_KEY, true); 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, public static String readPrefAdditionalSubtypes(final SharedPreferences prefs, final Resources res) { final Resources res) { final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( final String predefinedPrefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes( Loading
java/src/com/android/inputmethod/latin/settings/SettingsFragment.java +21 −0 Original line number Original line Diff line number Diff line Loading @@ -255,6 +255,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment } } updateShowCorrectionSuggestionsSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); updateKeyPreviewPopupDelaySummary(); updateColorSchemeSummary(prefs, getResources()); updateCustomInputStylesSummary(); updateCustomInputStylesSummary(); } } Loading Loading @@ -288,6 +289,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment ensureConsistencyOfAutoCorrectionSettings(); ensureConsistencyOfAutoCorrectionSettings(); updateShowCorrectionSuggestionsSummary(); updateShowCorrectionSuggestionsSummary(); updateKeyPreviewPopupDelaySummary(); updateKeyPreviewPopupDelaySummary(); updateColorSchemeSummary(prefs, res); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); refreshEnablingsOfKeypressSoundAndVibrationSettings(prefs, getResources()); } } Loading @@ -305,6 +307,25 @@ public final class SettingsFragment extends InputMethodSettingsFragment mShowCorrectionSuggestionsPreference.getValue())]); 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() { private void updateCustomInputStylesSummary() { final PreferenceScreen customInputStyles = final PreferenceScreen customInputStyles = (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES); (PreferenceScreen)findPreference(Settings.PREF_CUSTOM_INPUT_STYLES); Loading