summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-11-22 12:32:52 +0900
committerThe Android Automerger <android-build@android.com>2013-11-22 17:26:59 -0800
commit2eea2d50079275675666a830ae7a4228fa512c1d (patch)
tree0abf9823f96f1d985e98166de477f7d540db9297
parentca5cdc69967441a50b9297edccacc426116bf8ce (diff)
downloadandroid_packages_inputmethods_LatinIME-2eea2d50079275675666a830ae7a4228fa512c1d.tar.gz
android_packages_inputmethods_LatinIME-2eea2d50079275675666a830ae7a4228fa512c1d.tar.bz2
android_packages_inputmethods_LatinIME-2eea2d50079275675666a830ae7a4228fa512c1d.zip
Update Color Scheme summary explicitly
Bug: 11622614 Change-Id: I5464054425e4d688eaa39f96ba9a3a3c613c6f42
-rw-r--r--java/res/xml/prefs.xml1
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java39
-rw-r--r--java/src/com/android/inputmethod/latin/settings/Settings.java23
-rw-r--r--java/src/com/android/inputmethod/latin/settings/SettingsFragment.java21
4 files changed, 61 insertions, 23 deletions
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index d2b447545..bf3b62353 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -161,7 +161,6 @@
<ListPreference
android:key="pref_keyboard_layout_20110916"
android:title="@string/keyboard_color_scheme"
- android:summary="%s"
android:persistent="true"
android:entryValues="@array/keyboard_color_schemes_values"
android:entries="@array/keyboard_color_schemes"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index a6b293f2f..5abc9ab38 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -44,8 +44,6 @@ import com.android.inputmethod.latin.utils.ResourceUtils;
public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private static final String TAG = KeyboardSwitcher.class.getSimpleName();
- public static final String PREF_KEYBOARD_LAYOUT = "pref_keyboard_layout_20110916";
-
static final class KeyboardTheme {
public final int mThemeId;
public final int mStyleId;
@@ -58,13 +56,14 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
}
}
- private static final int INDEX_THEME_ICS = 0;
- private static final int INDEX_THEME_GB = 1;
- private static final int INDEX_THEME_KLP = 2;
- private static final KeyboardTheme[] KEYBOARD_THEMES = {
- new KeyboardTheme(INDEX_THEME_ICS, R.style.KeyboardTheme_ICS),
- new KeyboardTheme(INDEX_THEME_GB, R.style.KeyboardTheme_GB),
- new KeyboardTheme(INDEX_THEME_KLP, R.style.KeyboardTheme_KLP),
+ public static final int THEME_INDEX_ICS = 0;
+ public static final int THEME_INDEX_GB = 1;
+ public static final int THEME_INDEX_KLP = 2;
+ public static final int THEME_INDEX_DEFAULT = THEME_INDEX_KLP;
+ public static final KeyboardTheme[] KEYBOARD_THEMES = {
+ new KeyboardTheme(THEME_INDEX_ICS, R.style.KeyboardTheme_ICS),
+ new KeyboardTheme(THEME_INDEX_GB, R.style.KeyboardTheme_GB),
+ new KeyboardTheme(THEME_INDEX_KLP, R.style.KeyboardTheme_KLP),
};
private SubtypeSwitcher mSubtypeSwitcher;
@@ -86,7 +85,7 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
* what user actually typed. */
private boolean mIsAutoCorrectionActive;
- private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[INDEX_THEME_KLP];
+ private KeyboardTheme mKeyboardTheme = KEYBOARD_THEMES[THEME_INDEX_DEFAULT];
private Context mThemeContext;
private static final KeyboardSwitcher sInstance = new KeyboardSwitcher();
@@ -124,19 +123,15 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
private static KeyboardTheme getKeyboardTheme(final Context context,
final SharedPreferences prefs) {
- final String defaultIndex = context.getString(R.string.config_default_keyboard_theme_index);
- final String themeIndex = prefs.getString(PREF_KEYBOARD_LAYOUT, defaultIndex);
- try {
- final int index = Integer.valueOf(themeIndex);
- if (index >= 0 && index < KEYBOARD_THEMES.length) {
- return KEYBOARD_THEMES[index];
- }
- } catch (NumberFormatException e) {
- // Format error, keyboard theme is default to 0.
+ final Resources res = context.getResources();
+ final int index = Settings.readKeyboardThemeIndex(prefs, res);
+ if (index >= 0 && index < KEYBOARD_THEMES.length) {
+ return KEYBOARD_THEMES[index];
}
- Log.w(TAG, "Illegal keyboard theme in preference: " + themeIndex + ", default to "
- + defaultIndex);
- return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)];
+ final int defaultThemeIndex = Settings.resetAndGetDefaultKeyboardThemeIndex(prefs, res);
+ Log.w(TAG, "Illegal keyboard theme in preference: " + index + ", default to "
+ + defaultThemeIndex);
+ return KEYBOARD_THEMES[defaultThemeIndex];
}
private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
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);