Search in sources :

Example 1 with EditTextPreference

use of com.takisoft.preferencex.EditTextPreference in project RespawnIRC-Android by FranckRJ.

the class SettingsFragment method updatePrefSummary.

private void updatePrefSummary(Preference pref) {
    if (pref instanceof EditTextPreference) {
        EditTextPreference editTextPref = (EditTextPreference) pref;
        MinMaxInfos prefMinMax = listOfMinMaxInfos.get(editTextPref.getKey());
        if (prefMinMax != null) {
            editTextPref.setSummary("Entre " + String.valueOf(prefMinMax.min) + " et " + String.valueOf(prefMinMax.max) + " : " + editTextPref.getText());
        }
    }
}
Also used : EditTextPreference(com.takisoft.preferencex.EditTextPreference)

Example 2 with EditTextPreference

use of com.takisoft.preferencex.EditTextPreference in project RespawnIRC-Android by FranckRJ.

the class SettingsFragment method onSharedPreferenceChanged.

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    Preference pref = findPreference(key);
    if (pref instanceof EditTextPreference) {
        EditTextPreference editTextPref = (EditTextPreference) pref;
        MinMaxInfos prefMinMax = listOfMinMaxInfos.get(editTextPref.getKey());
        if (prefMinMax != null) {
            int prefValue = 0;
            if (!editTextPref.getText().isEmpty()) {
                try {
                    prefValue = Integer.parseInt(editTextPref.getText());
                } catch (Exception e) {
                    prefValue = 999999999;
                }
            }
            if (prefValue < prefMinMax.min) {
                prefValue = prefMinMax.min;
            } else if (prefValue > prefMinMax.max) {
                prefValue = prefMinMax.max;
            }
            editTextPref.setText(String.valueOf(prefValue));
        }
    } else if (key.equals(getString(R.string.settingsThemeUsed))) {
        ThemeManager.updateThemeUsed();
        if (getActivity() != null) {
            getActivity().recreate();
        }
    } else if (key.equals(getString(R.string.settingsInvertToolbarTextColor))) {
        ThemeManager.updateToolbarTextColor();
        if (getActivity() != null) {
            getActivity().recreate();
        }
    } else if (key.equals(getString(R.string.settingsPrimaryColorOfLightTheme)) || key.equals(getString(R.string.settingsTopicNameAndAccentColorOfLightTheme))) {
        if (getActivity() != null) {
            ThemeManager.updateColorsUsed(getResources());
            getActivity().recreate();
        }
    } else if (key.startsWith("settings.customColor.")) {
        if (getActivity() != null) {
            ThemeManager.updateColorsUsed(getResources());
        }
    }
    updatePrefSummary(pref);
}
Also used : Preference(androidx.preference.Preference) CheckBoxPreference(androidx.preference.CheckBoxPreference) ListPreference(androidx.preference.ListPreference) EditTextPreference(com.takisoft.preferencex.EditTextPreference) EditTextPreference(com.takisoft.preferencex.EditTextPreference)

Example 3 with EditTextPreference

use of com.takisoft.preferencex.EditTextPreference in project RespawnIRC-Android by FranckRJ.

the class SettingsFragment method updatePrefDefaultValue.

/* Le but de la clef temporaire est de ne pas sauvegarder l'option par défaut si c'est celle ci
     * qui est retourné par "PrefsManager.getX()". La clef temporaire n'est pas vide pour empêcher
     * des possibles crash (des histoires de requireKey() etc). Elle est unique par type de pref pour
     * ne pas causer de crash lors de l'assignation d'un string à ce qui était précédement un bool.
     * La persistance est temporairement à false pour plus de sécurité, au cas où, dans le doute,
     * mais ça reste plutôt assez moche comme solution au final. */
private static void updatePrefDefaultValue(Preference pref) {
    String realPrefKey = pref.getKey();
    pref.setPersistent(false);
    if (pref instanceof CheckBoxPreference) {
        pref.setKey("tmpKeyBool");
        CheckBoxPreference checkBoxPref = (CheckBoxPreference) pref;
        checkBoxPref.setChecked(PrefsManager.getBool(realPrefKey));
    } else if (pref instanceof SwitchPreferenceCompat) {
        pref.setKey("tmpKeyBool");
        SwitchPreferenceCompat switchPref = (SwitchPreferenceCompat) pref;
        switchPref.setChecked(PrefsManager.getBool(realPrefKey));
    } else if (pref instanceof EditTextPreference) {
        pref.setKey("tmpKeyString");
        EditTextPreference editTextPref = (EditTextPreference) pref;
        editTextPref.setText(PrefsManager.getString(realPrefKey));
    } else if (pref instanceof ListPreference) {
        pref.setKey("tmpKeyString");
        ListPreference listPref = (ListPreference) pref;
        listPref.setValue(PrefsManager.getString(realPrefKey));
    }
    pref.setPersistent(true);
    pref.setKey(realPrefKey);
}
Also used : CheckBoxPreference(androidx.preference.CheckBoxPreference) SwitchPreferenceCompat(androidx.preference.SwitchPreferenceCompat) EditTextPreference(com.takisoft.preferencex.EditTextPreference) ListPreference(androidx.preference.ListPreference)

Aggregations

EditTextPreference (com.takisoft.preferencex.EditTextPreference)3 CheckBoxPreference (androidx.preference.CheckBoxPreference)2 ListPreference (androidx.preference.ListPreference)2 Preference (androidx.preference.Preference)1 SwitchPreferenceCompat (androidx.preference.SwitchPreferenceCompat)1