package com.smartandroid.sa.verifi; import java.util.regex.Matcher; import java.util.regex.Pattern; import android.content.Context; public class EmailVerifior extends AbstractVerifior { private int mErrorMessage; private String mDomainName = ""; public EmailVerifior(Context c) { super(c); mErrorMessage = c.getResources().getIdentifier("validator_email", "string", c.getPackageName()); } public EmailVerifior(Context c, int errorMessage) { super(c); mErrorMessage = errorMessage; } @Override public boolean isValid(String charseq) { if (charseq.length() > 0) { boolean matchFound = false; // Input the string for validation String email = charseq.toString(); if (mDomainName != null && mDomainName.length() > 0) { // Test avec le domaine // Set the email pattern string Pattern p = Pattern.compile(".+@" + mDomainName); // Match the given string with the pattern Matcher m = p.matcher(email); // check whether match is found matchFound = m.matches(); if (matchFound) return true; else return false; } else { // test sans le domaine // Set the email pattern string Pattern p = Pattern.compile(".+@.+\\.[a-z]+"); // Match the given string with the pattern Matcher m = p.matcher(email); // check whether match is found matchFound = m.matches(); } if (matchFound) return true; else return false; } else { return true; } } @Override public String getMessage() { return mContext.getString(mErrorMessage); } /** * Lets say that the email address must be valid for such domain. This * function only accepts strings of Regexp * * @param name * Regexp Domain Name * * example : gmail.com */ public void setDomainName(String name) { mDomainName = name; } }