@Override public void onTextChanged(String text) { if (mCardInputListener != null && ViewUtils.isCvcMaximalLength (mCardNumberEditText.getCardBrand(), text)) { mCardInputListener.onCvcComplete(); } updateIconCvc(mCardNumberEditText.getCardBrand(), mCvcNumberEditText.hasFocus(), text); } });
@Override public void onTextChanged(String text) { if (isPostalCodeMaximalLength(true, text) && mCardInputListener != null) { mCardInputListener.onPostalCodeComplete(); } mPostalCodeEditText.setShouldShowError(false); } });
/** * Enable or disable text fields * * @param isEnabled boolean indicating whether fields should be enabled */ public void setEnabled(boolean isEnabled) { mCardNumberEditText.setEnabled(isEnabled); mExpiryDateEditText.setEnabled(isEnabled); mCvcNumberEditText.setEnabled(isEnabled); }
/** * Clear all text fields in the CardInputWidget. */ public void clear() { if (mCardNumberEditText.hasFocus() || mExpiryDateEditText.hasFocus() || mCvcNumberEditText.hasFocus() || this.hasFocus()) { mCardNumberEditText.requestFocus(); } mCvcNumberEditText.setText(""); mExpiryDateEditText.setText(""); mCardNumberEditText.setText(""); }
/** * 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); }
/** * Set the card number. Method does not change text field focus. * * @param cardNumber card number to be set */ public void setCardNumber(String cardNumber) { mCardNumberEditText.setText(cardNumber); setCardNumberIsViewed(!mCardNumberEditText.isCardNumberValid()); }
/** * Override of {@link View#isEnabled()} that returns {@code true} only * if all three sub-controls are enabled. * * @return {@code true} if the card number field, expiry field, and cvc field are enabled, * {@code false} otherwise */ @Override public boolean isEnabled() { return mCardNumberEditText.isEnabled() && mExpiryDateEditText.isEnabled() && mCvcNumberEditText.isEnabled(); }
private void onShippingInfoSubmitted() { ShippingInfoWidget shippingInfoWidget = findViewById(R.id.shipping_info_widget); ShippingInformation shippingInformation = shippingInfoWidget.getShippingInformation(); if (shippingInformation != null) { mShippingInformationSubmitted = shippingInformation; setCommunicatingProgress(true); broadcastShippingInfoSubmitted(shippingInformation); } }
@Override public void onClick(View view) { if (!maskedCardView.isSelected()) { maskedCardView.toggleSelected(); updateSelectedIndex(index); } } });
@Override public void onExpiryDateComplete() { mCvcNumberEditText.requestFocus(); if (mCardInputListener != null) { mCardInputListener.onExpirationComplete(); } } });
private void initTextInputLayoutErrorHandlers( TextInputLayout cardInputLayout, TextInputLayout expiryInputLayout, TextInputLayout cvcTextInputLayout, TextInputLayout postalInputLayout) { mCardNumberEditText.setErrorMessageListener(new ErrorListener(cardInputLayout)); mExpiryDateEditText.setErrorMessageListener(new ErrorListener(expiryInputLayout)); mCvcEditText.setErrorMessageListener(new ErrorListener(cvcTextInputLayout)); if (mPostalCodeEditText == null) { return; } mPostalCodeEditText.setErrorMessageListener(new ErrorListener(postalInputLayout)); }
private void initDeleteEmptyListeners() { mExpiryDateEditText.setDeleteEmptyListener( new BackUpFieldDeleteListener(mCardNumberEditText)); mCvcEditText.setDeleteEmptyListener( new BackUpFieldDeleteListener(mExpiryDateEditText)); // It doesn't matter whether or not the postal code is shown; // we can still say where you go when you delete an empty field from it. if (mPostalCodeEditText == null) { return; } mPostalCodeEditText.setDeleteEmptyListener( new BackUpFieldDeleteListener(mCvcEditText)); }
@Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { mExpiryDateEditText.setHintDelayed( R.string.expiry_date_hint, COMMON_HINT_DELAY); if (mCardInputListener != null) { mCardInputListener.onFocusChange(FOCUS_EXPIRY); } } else { mExpiryDateEditText.setHint(""); } } });
@Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { mCardNumberEditText.setHintDelayed( R.string.card_number_hint, CARD_NUMBER_HINT_DELAY); if (mCardInputListener != null) { mCardInputListener.onFocusChange(FOCUS_CARD); } } else { mCardNumberEditText.setHint(""); } } });
private void initErrorMessages() { mCardNumberEditText.setErrorMessage(getContext().getString(R.string.invalid_card_number)); mExpiryDateEditText.setErrorMessage(getContext().getString(R.string.invalid_expiry_year)); mCvcEditText.setErrorMessage(getContext().getString(R.string.invalid_cvc)); mPostalCodeEditText.setErrorMessage(getContext().getString(R.string.invalid_zip)); }
@Override protected void onActionSave() { if (mPaymentFlowPagerAdapter.getPageAt( mViewPager.getCurrentItem()).equals(PaymentFlowPagerEnum.SHIPPING_INFO)) { onShippingInfoSubmitted(); } else { onShippingMethodSave(); } }
@Override public void onCardNumberComplete() { mExpiryDateEditText.requestFocus(); if (mCardInputListener != null) { mCardInputListener.onCardComplete(); } } });
@Override protected void setCommunicatingProgress(boolean communicating) { super.setCommunicatingProgress(communicating); if (mCardMultilineWidget != null) { mCardMultilineWidget.setEnabled(!communicating); } }
/** * Expose a text watcher to receive updates when the expiry date is changed. */ public void setExpiryDateTextWatcher(TextWatcher expiryDateTextWatcher) { mExpiryDateEditText.addTextChangedListener(expiryDateTextWatcher); }
@Override public void onExpiryDateComplete() { mCvcEditText.requestFocus(); if (mCardInputListener != null) { mCardInputListener.onExpirationComplete(); } } });