Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(779)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java

Issue 1964323002: Reland: Test dismissing CVC prompt for PaymentRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
index 477ace63216f6f84cce8a3ef117d9f707e22c4d6..370e70eb668c27c23e471c6d59985bf813f5cd29 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/CardUnmaskPrompt.java
@@ -11,6 +11,7 @@ import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
+import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler;
import android.support.v4.view.MarginLayoutParamsCompat;
@@ -50,8 +51,6 @@ public class CardUnmaskPrompt
private final CardUnmaskObserverForTest mObserverForTest;
private final AlertDialog mDialog;
private boolean mShouldRequestExpirationDate;
- private final int mThisYear;
- private final int mThisMonth;
private final View mMainView;
private final TextView mInstructions;
@@ -70,6 +69,10 @@ public class CardUnmaskPrompt
private final ProgressBar mVerificationProgressBar;
private final TextView mVerificationView;
+ private int mThisYear;
+ private int mThisMonth;
+ private boolean mValidationWaitsForCalendarTask;
+
/**
* An interface to handle the interaction with an CardUnmaskPrompt object.
*/
@@ -164,8 +167,26 @@ public class CardUnmaskPrompt
mDialog.setOnDismissListener(this);
mShouldRequestExpirationDate = shouldRequestExpirationDate;
- mThisYear = Calendar.getInstance().get(Calendar.YEAR);
- mThisMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
+ mThisYear = -1;
+ mThisMonth = -1;
+ if (mShouldRequestExpirationDate) new CalendarTask().execute();
gone 2016/05/11 17:47:46 Do you need to disable the button until the date h
please use gerrit instead 2016/05/11 17:58:56 It's disabled on lines 199-200: Button verifyBu
+ }
+
+ /**
+ * Avoids disk reads for timezone when getting the default instance of Calendar.
+ */
+ private class CalendarTask extends AsyncTask<Void, Void, Calendar> {
+ @Override
+ protected Calendar doInBackground(Void... unused) {
+ return Calendar.getInstance();
+ }
+
+ @Override
+ protected void onPostExecute(Calendar result) {
+ mThisYear = result.get(Calendar.YEAR);
+ mThisMonth = result.get(Calendar.MONTH) + 1;
+ if (mValidationWaitsForCalendarTask) validate();
+ }
}
public void show() {
@@ -252,6 +273,10 @@ public class CardUnmaskPrompt
@Override
public void afterTextChanged(Editable s) {
+ validate();
+ }
+
+ private void validate() {
mDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(areInputsValid());
}
@@ -352,6 +377,11 @@ public class CardUnmaskPrompt
private boolean areInputsValid() {
if (mShouldRequestExpirationDate) {
+ if (mThisYear == -1 || mThisMonth == -1) {
+ mValidationWaitsForCalendarTask = true;
+ return false;
+ }
+
int month = -1;
try {
month = Integer.parseInt(mMonthInput.getText().toString());
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698