From 8b29a9424510e8a6481a1cf88dffc88ea722bc9d Mon Sep 17 00:00:00 2001 From: Michael Shafrir Date: Wed, 28 Aug 2019 12:39:59 -0400 Subject: [PATCH] Add setters on Card widgets for card number, expiration, and CVC Fixes #532 --- .../java/com/stripe/android/view/CardInputWidget.java | 7 +++++-- .../com/stripe/android/view/CardMultilineWidget.java | 11 +++++++++++ .../main/java/com/stripe/android/view/CardWidget.java | 8 ++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/stripe/src/main/java/com/stripe/android/view/CardInputWidget.java b/stripe/src/main/java/com/stripe/android/view/CardInputWidget.java index 58a05ea5368..3b00936f588 100644 --- a/stripe/src/main/java/com/stripe/android/view/CardInputWidget.java +++ b/stripe/src/main/java/com/stripe/android/view/CardInputWidget.java @@ -213,7 +213,8 @@ public void setCardInputListener(@Nullable CardInputListener listener) { * * @param cardNumber card number to be set */ - public void setCardNumber(String cardNumber) { + @Override + public void setCardNumber(@Nullable String cardNumber) { mCardNumberEditText.setText(cardNumber); setCardNumberIsViewed(!mCardNumberEditText.isCardNumberValid()); } @@ -230,6 +231,7 @@ public void setCardNumber(String cardNumber) { * @param month a month of the year, represented as a number between 1 and 12 * @param year a year number, either in two-digit form or four-digit form */ + @Override public void setExpiryDate( @IntRange(from = 1, to = 12) int month, @IntRange(from = 0, to = 9999) int year) { @@ -242,7 +244,8 @@ public void setExpiryDate( * * @param cvcCode the CVC value to be set */ - public void setCvcCode(String cvcCode) { + @Override + public void setCvcCode(@Nullable String cvcCode) { mCvcNumberEditText.setText(cvcCode); } diff --git a/stripe/src/main/java/com/stripe/android/view/CardMultilineWidget.java b/stripe/src/main/java/com/stripe/android/view/CardMultilineWidget.java index c588d6812c4..99ec9b0d0d6 100644 --- a/stripe/src/main/java/com/stripe/android/view/CardMultilineWidget.java +++ b/stripe/src/main/java/com/stripe/android/view/CardMultilineWidget.java @@ -258,10 +258,21 @@ public void setShouldShowPostalCode(boolean shouldShowPostalCode) { * * @param cardNumber card number to be set */ + @Override public void setCardNumber(@Nullable String cardNumber) { mCardNumberEditText.setText(cardNumber); } + @Override + public void setExpiryDate(int month, int year) { + mExpiryDateEditText.setText(DateUtils.createDateStringFromIntegerInput(month, year)); + } + + @Override + public void setCvcCode(@Nullable String cvcCode) { + mCvcEditText.setText(cvcCode); + } + /** * Checks whether the current card number is valid */ diff --git a/stripe/src/main/java/com/stripe/android/view/CardWidget.java b/stripe/src/main/java/com/stripe/android/view/CardWidget.java index 6e1499be603..02d2d5749d6 100644 --- a/stripe/src/main/java/com/stripe/android/view/CardWidget.java +++ b/stripe/src/main/java/com/stripe/android/view/CardWidget.java @@ -1,5 +1,6 @@ package com.stripe.android.view; +import android.support.annotation.IntRange; import android.support.annotation.Nullable; import com.stripe.android.model.Card; @@ -31,4 +32,11 @@ interface CardWidget { void setCardInputListener(@Nullable CardInputListener listener); void clear(); + + void setCardNumber(@Nullable String cardNumber); + + void setExpiryDate(@IntRange(from = 1, to = 12) int month, + @IntRange(from = 0, to = 9999) int year); + + void setCvcCode(@Nullable String cvcCode); }