package me.ccrama.redditslide.util; import android.text.InputFilter; import android.text.Spanned; import android.widget.EditText; /** * Created by Fernando Barillas on 5/2/16. * * Allows easier validation of EditText input via the use of an InputFilter. This way invalid text * is not allowed to be input. */ public class EditTextValidator { private EditTextValidator() { } /** * Validates EditTexts intended for reddit username input. Valid characters include: * A-Z, a-z * 0-9 * - (hyphen) * _ (underscore) * * @param editText The EditText to validate a username for */ public static void validateUsername(final EditText editText) { if (editText == null) return; InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { for (int i = start; i < end; i++) { char character = source.charAt(i); if (!Character.isLetterOrDigit(character) && character != '_' && character != '-') { return ""; } } return null; } }; editText.setFilters(new InputFilter[]{filter}); } // TODO: Add validation for subreddits/multireddits }