| 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 b115b85eaa608c9dac00a7d048bfc41a97a79314..7a4995a3d7e1e064183b9006089740eee308911e 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
|
| @@ -23,6 +23,7 @@ import android.view.View;
|
| import android.view.View.OnLongClickListener;
|
| import android.view.ViewGroup;
|
| import android.view.ViewGroup.LayoutParams;
|
| +import android.view.accessibility.AccessibilityEvent;
|
| import android.view.inputmethod.InputMethodManager;
|
| import android.widget.Button;
|
| import android.widget.CheckBox;
|
| @@ -33,6 +34,7 @@ import android.widget.ProgressBar;
|
| import android.widget.RelativeLayout;
|
| import android.widget.TextView;
|
|
|
| +import org.chromium.base.ApiCompatibilityUtils;
|
| import org.chromium.chrome.R;
|
|
|
| import java.util.Calendar;
|
| @@ -168,8 +170,9 @@ public class CardUnmaskPrompt
|
| setInputsEnabled(false);
|
| setOverlayVisibility(View.VISIBLE);
|
| mVerificationProgressBar.setVisibility(View.VISIBLE);
|
| - mVerificationView.setText(
|
| - R.string.autofill_card_unmask_verification_in_progress);
|
| + mVerificationView.setText(R.string.autofill_card_unmask_verification_in_progress);
|
| + ApiCompatibilityUtils.announceForAccessibility(
|
| + mVerificationView, mVerificationView.getText());
|
| setInputError(null);
|
| }
|
|
|
| @@ -253,8 +256,9 @@ public class CardUnmaskPrompt
|
| private void setInitialFocus() {
|
| InputMethodManager imm = (InputMethodManager) mDialog.getContext().getSystemService(
|
| Context.INPUT_METHOD_SERVICE);
|
| - imm.showSoftInput(mShouldRequestExpirationDate ? mMonthInput : mCardUnmaskInput,
|
| - InputMethodManager.SHOW_IMPLICIT);
|
| + View view = mShouldRequestExpirationDate ? mMonthInput : mCardUnmaskInput;
|
| + imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
|
| + view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
|
| }
|
|
|
| private boolean areInputsValid() {
|
| @@ -309,6 +313,12 @@ public class CardUnmaskPrompt
|
| mErrorMessage.setText(message);
|
| mErrorMessage.setVisibility(message == null ? View.GONE : View.VISIBLE);
|
|
|
| + // A null message is passed in during card verification, which also makes an announcement.
|
| + // Announcing twice in a row may cancel the first announcement.
|
| + if (message != null) {
|
| + ApiCompatibilityUtils.announceForAccessibility(mErrorMessage, message);
|
| + }
|
| +
|
| // The rest of this code makes L-specific assumptions about the background being used to
|
| // draw the TextInput.
|
| if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) return;
|
| @@ -332,6 +342,7 @@ public class CardUnmaskPrompt
|
| private void setNoRetryError(String message) {
|
| mNoRetryErrorMessage.setText(message);
|
| mNoRetryErrorMessage.setVisibility(View.VISIBLE);
|
| + ApiCompatibilityUtils.announceForAccessibility(mNoRetryErrorMessage, message);
|
| }
|
|
|
| /**
|
|
|