Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2eea2d50 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by The Android Automerger
Browse files

Update Color Scheme summary explicitly

Bug: 11622614
Change-Id: I5464054425e4d688eaa39f96ba9a3a3c613c6f42
parent ca5cdc69
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -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"
+17 −22
Original line number Original line Diff line number Diff line
@@ -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,
+23 −0
Original line number Original line Diff line number Diff line
@@ -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(
+21 −0
Original line number Original line Diff line number Diff line
@@ -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);