Mridang Agarwalla Mridang Agarwalla - 21 days ago 11
Android Question

How can I mask the summary of an EditTextPreference when it is a masked password field?

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" />

Answer

Something like:

EditText edit = ((EditTextPreference) prePreference).getEditText();
String pref = edit.getTransformationMethod().getTransformation(objValue.toString(), edit).toString();
prePreference.setSummary(pref);