/** * Checks whether the current card number is valid */ public boolean validateCardNumber() { boolean cardNumberIsValid = CardUtils.isValidCardNumber(mCardNumberEditText.getCardNumber()); mCardNumberEditText.setShouldShowError(!cardNumberIsValid); return cardNumberIsValid; }
@Override public void afterTextChanged(Editable s) { if (s.length() == mLengthMax) { boolean before = mIsCardNumberValid; mIsCardNumberValid = CardUtils.isValidCardNumber(s.toString()); setShouldShowError(!mIsCardNumberValid); if (!before && mIsCardNumberValid && mCardNumberCompleteListener != null) { mCardNumberCompleteListener.onCardNumberComplete(); } } else { mIsCardNumberValid = getText() != null && CardUtils.isValidCardNumber(getText().toString()); // Don't show errors if we aren't full-length. setShouldShowError(false); } } });
/** * Clear all entered data and hide all error messages. */ public void clear() { mCardNumberEditText.setText(""); mExpiryDateEditText.setText(""); mCvcEditText.setText(""); mPostalCodeEditText.setText(""); mCardNumberEditText.setShouldShowError(false); mExpiryDateEditText.setShouldShowError(false); mCvcEditText.setShouldShowError(false); mPostalCodeEditText.setShouldShowError(false); updateBrand(Card.UNKNOWN); }
/** * Validates all fields and shows error messages if appropriate. * * @return {@code true} if all shown fields are valid, {@code false} otherwise */ public boolean validateAllFields() { boolean cardNumberIsValid = CardUtils.isValidCardNumber(mCardNumberEditText.getCardNumber()); boolean expiryIsValid = mExpiryDateEditText.getValidDateFields() != null && mExpiryDateEditText.isDateValid(); boolean cvcIsValid = isCvcLengthValid(); mCardNumberEditText.setShouldShowError(!cardNumberIsValid); mExpiryDateEditText.setShouldShowError(!expiryIsValid); mCvcEditText.setShouldShowError(!cvcIsValid); boolean postalCodeIsValidOrGone; if (mShouldShowPostalCode) { postalCodeIsValidOrGone = isPostalCodeMaximalLength(true, mPostalCodeEditText.getText().toString()); mPostalCodeEditText.setShouldShowError(!postalCodeIsValidOrGone); } else { postalCodeIsValidOrGone = true; } return cardNumberIsValid && expiryIsValid && cvcIsValid && postalCodeIsValidOrGone; }