I know that It's very too late, still I will give my answer.
I used this line of code to check the inputted Email format:
!TextUtils.isEmpty(getEmail) && android.util.Patterns.EMAIL_ADDRESS.matcher(getEmail).matches();
The problem is, it will only check for the FORMAT not the SPELLING.
When I entered @gmal.com missing i ,and @yaho.com missing another o .
It return true. Since it satisfies the condition for Email Format.
What I did is, I used the code above. Since it will give / return true if
the if the user inputted @gmail.com ONLY, no text at the start.
FORMAT CHECKER

If I enter this email it will give me: true but the spelling is wrong. In
my textInputLayout error

EMAIL ADDRESS @yahoo.com , @gmail.com, @outlook.com CHECKER
//CHECK EMAIL
public boolean checkEmailValidity(AppCompatEditText emailFormat){
String getEmail = emailFormat.getText().toString();
boolean getEnd;
//CHECK STARTING STRING IF THE USER
//entered @gmail.com / @yahoo.com / @outlook.com only
boolean getResult = !TextUtils.isEmpty(getEmail) && android.util.Patterns.EMAIL_ADDRESS.matcher(getEmail).matches();
//CHECK THE EMAIL EXTENSION IF IT ENDS CORRECTLY
if (getEmail.endsWith("@gmail.com") || getEmail.endsWith("@yahoo.com") || getEmail.endsWith("@outlook.com")){
getEnd = true;
}else {
getEnd = false;
}
//TEST THE START AND END
return (getResult && getEnd);
}
RETURN: false


RETURN:true

XML:
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextEmailAddress"
android:inputType="textEmailAddress|textWebEmailAddress"
android:cursorVisible="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:maxLength="50"
android:theme="@style/EditTextCustom"/>
Note: I tried to get the value from EditText and used split on it and even StringTokenizer. Both return false to me.