Skip to content

Commit dd811ad

Browse files
committed
fix#1252:Display error message if the expiry date is invalid
1 parent 857a4bf commit dd811ad

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

mifospay/src/main/java/org/mifos/mobilewallet/mifospay/bank/BankContract.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ interface DebitCardView extends BaseView<DebitCardPresenter> {
5050

5151
void verifyDebitCardSuccess(String otp);
5252

53-
void verifyDebitCardError(String message);
53+
void verifyDebitCardError(String message, int viewNumber);
5454
}
5555

5656
interface UpiPinPresenter extends BasePresenter {

mifospay/src/main/java/org/mifos/mobilewallet/mifospay/bank/fragment/DebitCardFragment.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,16 @@ public void verifyDebitCardSuccess(String otp) {
9494
}
9595

9696
@Override
97-
public void verifyDebitCardError(String message) {
97+
public void verifyDebitCardError(String message, int viewNumber) {
9898
hideProgressDialog();
99-
mEtDebitCardNumber.requestFocusFromTouch();
10099
showToast(message);
100+
if (viewNumber == 1) {
101+
mEtDebitCardNumber.requestFocusFromTouch();
102+
} else if (viewNumber == 2) {
103+
mPeMonth.requestFocusFromTouch();
104+
} else if (viewNumber == 3) {
105+
mPeYear.requestFocusFromTouch();
106+
}
101107
}
102108

103109
public void showToast(String message) {

mifospay/src/main/java/org/mifos/mobilewallet/mifospay/bank/presenter/DebitCardPresenter.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.mifos.mobilewallet.mifospay.bank.BankContract;
55
import org.mifos.mobilewallet.mifospay.base.BaseView;
66

7+
import java.util.Calendar;
8+
79
import javax.inject.Inject;
810

911
import static org.mifos.mobilewallet.mifospay.MifosPayApp.getContext;
@@ -30,9 +32,22 @@ public void attachView(BaseView baseView) {
3032
@Override
3133
public void verifyDebitCard(String s, String s1, String s2) {
3234
String otp = "0000";
35+
int expiryMonth = Integer.parseInt(s1);
36+
int expiryYear = Integer.parseInt(s2);
37+
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
38+
int currentMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
3339
if ((s.length() < 12) || (s.length() > 19)) {
3440
mDebitCardView.verifyDebitCardError(getContext()
35-
.getString(R.string.debit_card_error_message));
41+
.getString(R.string.debit_card_error_message), 1);
42+
} else if (expiryMonth < 01 || expiryMonth > 12) {
43+
mDebitCardView.verifyDebitCardError(getContext()
44+
.getString(R.string.expiry_month_error_message), 2);
45+
} else if (expiryYear < currentYear || expiryYear > currentYear + 10) {
46+
mDebitCardView.verifyDebitCardError(getContext()
47+
.getString(R.string.expiry_year_error_message), 3);
48+
} else if (expiryMonth < currentMonth && expiryYear <= currentYear) {
49+
mDebitCardView.verifyDebitCardError(getContext()
50+
.getString(R.string.expiry_month_error_message), 2);
3651
} else {
3752
mDebitCardView.verifyDebitCardSuccess(otp);
3853
}

mifospay/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@
160160
<string name="log_out">Log out</string>
161161
<string name="debit_card_details">Debit Card Details</string>
162162
<string name="debit_card_error_message">Invalid Debit Card Number</string>
163+
<string name="expiry_month_error_message">Invalid Expiry Month</string>
164+
<string name="expiry_year_error_message">Invalid Expiry Year</string>
163165
<string name="one_time_password">One Time Password</string>
164166
<string name="upi_pin_setup">UPI PIN Setup</string>
165167
<string name="all_fields_are_mandatory">All fields are mandatory.</string>

0 commit comments

Comments
 (0)