I'm using an onPreferenceChangeListener
attached to my EditTextPreference
that shows the value of the preference in the summary. Here's what it looks like:
public boolean onPreferenceChange(Preference prePreference, Object objValue) {
if (prePreference instanceof EditTextPreference) {
//TODO: Check if password type and show chacraters
prePreference.setSummary(objValue.toString());
}
return true;
}
If the field is a masked password field, I'd like to show the default password mask characters in the the summary. Here's an example of a masked field:
<EditTextPreference
android:inputType="textPassword"
android:key="password"
android:title="@string/password" />
Something like:
EditText edit = ((EditTextPreference) prePreference).getEditText();
String pref = edit.getTransformationMethod().getTransformation(objValue.toString(), edit).toString();
prePreference.setSummary(pref);
Easier yet, don't call the generated bindPreferenceSummaryToValue
(which in turn calls setSummary
) for the password preference.
Note that you shouldn't be storing passwords in the preferences, but instead prompt from a password when you need it, obtain a token from the service, and store the token instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With