Merge "Update Color Scheme summary explicitly"
commit
7c542558bf
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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,
|
||||||
|
|
|
@ -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";
|
||||||
|
@ -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(
|
||||||
|
|
|
@ -255,6 +255,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment
|
||||||
}
|
}
|
||||||
updateShowCorrectionSuggestionsSummary();
|
updateShowCorrectionSuggestionsSummary();
|
||||||
updateKeyPreviewPopupDelaySummary();
|
updateKeyPreviewPopupDelaySummary();
|
||||||
|
updateColorSchemeSummary(prefs, getResources());
|
||||||
updateCustomInputStylesSummary();
|
updateCustomInputStylesSummary();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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…
Reference in New Issue