package android.support.design.widget; import android.content.Context; import android.support.annotation.Nullable; import android.text.method.PasswordTransformationMethod; import android.util.AttributeSet; import org.wikipedia.R; public class PasswordTextInput extends TextInputLayout { public interface OnShowPasswordClickListener { void onShowPasswordClick(boolean visible); } @Nullable private OnShowPasswordClickListener onShowPasswordClickListener; public PasswordTextInput(Context context) { super(context); init(); } public PasswordTextInput(Context context, AttributeSet attrs) { super(context, attrs); init(); } public PasswordTextInput(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public void setOnShowPasswordListener(@Nullable OnShowPasswordClickListener listener) { onShowPasswordClickListener = listener; } public boolean isPasswordVisible() { return getEditText() != null && !(getEditText().getTransformationMethod() instanceof PasswordTransformationMethod); } @Override void passwordVisibilityToggleRequested() { super.passwordVisibilityToggleRequested(); if (onShowPasswordClickListener != null) { onShowPasswordClickListener.onShowPasswordClick(isPasswordVisible()); } } private void init() { inflate(getContext(), R.layout.view_password_text_input, this); } }