Added more Credit cards fields.
- Security Code on all credit card activities.
- Expiration Date pn MultiplePartitions.
Also call AFM.cancel() in the clear button of these activities.
Bug: 65384186
Test: manual verification
Change-Id: I205f29c132d1ef0302f4b1ec92c93b21dbaf946b
diff --git a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.java b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.java
index 2d336fb..e540a36 100644
--- a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.java
+++ b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardActivity.java
@@ -20,6 +20,7 @@
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import android.view.autofill.AutofillManager;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
@@ -38,6 +39,7 @@
private Spinner mCcExpirationMonthSpinner;
private Spinner mCcExpirationYearSpinner;
private EditText mCcCardNumber;
+ private EditText mCcSecurityCode;
public static Intent getStartActivityIntent(Context context) {
Intent intent = new Intent(context, CreditCardActivity.class);
@@ -52,6 +54,7 @@
mCcExpirationMonthSpinner = findViewById(R.id.expirationMonth);
mCcExpirationYearSpinner = findViewById(R.id.expirationYear);
mCcCardNumber = findViewById(R.id.creditCardNumberField);
+ mCcSecurityCode = findViewById(R.id.creditCardSecurityCode);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> dayAdapter = ArrayAdapter.createFromResource
@@ -85,6 +88,7 @@
findViewById(R.id.clear).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ getSystemService(AutofillManager.class).cancel();
resetFields();
}
});
@@ -95,6 +99,7 @@
mCcExpirationMonthSpinner.setSelection(0);
mCcExpirationYearSpinner.setSelection(0);
mCcCardNumber.setText("");
+ mCcSecurityCode.setText("");
}
/**
diff --git a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardCompoundViewActivity.java b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardCompoundViewActivity.java
index 9ff3a74..dc06454 100644
--- a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardCompoundViewActivity.java
+++ b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/CreditCardCompoundViewActivity.java
@@ -21,6 +21,7 @@
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import android.view.autofill.AutofillManager;
import android.widget.EditText;
import com.example.android.autofillframework.R;
@@ -29,6 +30,8 @@
private CreditCardExpirationDateView mCcExpDateView;
private EditText mCcExpNumber;
+ private EditText mCcSecurityCode;
+
public static Intent getStartActivityIntent(Context context) {
Intent intent = new Intent(context, CreditCardCompoundViewActivity.class);
return intent;
@@ -40,6 +43,7 @@
setContentView(R.layout.credit_card_compound_view_activity);
mCcExpDateView = findViewById(R.id.creditCardExpirationView);
mCcExpNumber = findViewById(R.id.creditCardNumberField);
+ mCcSecurityCode = findViewById(R.id.creditCardSecurityCode);
findViewById(R.id.submitButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -49,6 +53,7 @@
findViewById(R.id.clearButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ getSystemService(AutofillManager.class).cancel();
resetFields();
}
});
@@ -57,6 +62,7 @@
private void resetFields() {
mCcExpDateView.reset();
mCcExpNumber.setText("");
+ mCcSecurityCode.setText("");
}
/**
diff --git a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/MultiplePartitionsActivity.java b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/MultiplePartitionsActivity.java
index f3d212e..71542c5 100644
--- a/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/MultiplePartitionsActivity.java
+++ b/input/autofill/AutofillFramework/Application/src/main/java/com/example/android/autofillframework/app/MultiplePartitionsActivity.java
@@ -80,6 +80,11 @@
" ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH);
mCcPartition.addLine("ccYear", getString(R.string.credit_card_expiration_year_label),
" ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR);
+ // TODO: figure out why expiration date is not being autofilled
+ mCcPartition.addLine("ccDate", getString(R.string.credit_card_expiration_date_label),
+ " ", true, View.AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE);
+ mCcPartition.addLine("ccSecurityCode", getString(R.string.credit_card_security_code_label),
+ " ", true, View.AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE);
// TODO: add ComboBox that changes visibility of partitions
// mCcPartition.setVisibility(false);
diff --git a/input/autofill/AutofillFramework/Application/src/main/res/layout/activity_main.xml b/input/autofill/AutofillFramework/Application/src/main/res/layout/activity_main.xml
index abe6e08..cbe708a 100644
--- a/input/autofill/AutofillFramework/Application/src/main/res/layout/activity_main.xml
+++ b/input/autofill/AutofillFramework/Application/src/main/res/layout/activity_main.xml
@@ -64,15 +64,6 @@
app:imageColor="@android:color/holo_orange_dark"/>
<com.example.android.autofillframework.app.NavigationItem
- android:id="@+id/emailComposeButton"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:infoText="@string/email_compose_info"
- app:labelText="@string/navigation_button_email_compose_label"
- app:itemLogo="@drawable/ic_email_black_24dp"
- app:imageColor="@android:color/holo_purple"/>
-
- <com.example.android.autofillframework.app.NavigationItem
android:id="@+id/creditCardCompoundViewButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -82,6 +73,15 @@
app:itemLogo="@drawable/ic_view_module_black_24dp" />
<com.example.android.autofillframework.app.NavigationItem
+ android:id="@+id/emailComposeButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:infoText="@string/email_compose_info"
+ app:labelText="@string/navigation_button_email_compose_label"
+ app:itemLogo="@drawable/ic_email_black_24dp"
+ app:imageColor="@android:color/holo_purple"/>
+
+ <com.example.android.autofillframework.app.NavigationItem
android:id="@+id/multiplePartitionsButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_activity.xml b/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_activity.xml
index 7f78c4e..ca7e560 100644
--- a/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_activity.xml
+++ b/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_activity.xml
@@ -119,6 +119,30 @@
app:layout_constraintTop_toTopOf="@+id/expirationMonth" />
<TextView
+ android:id="@+id/creditCardSecurityCodeLabel"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/spacing_large"
+ android:importantForAutofill="no"
+ android:text="@string/credit_card_security_code_label"
+ app:layout_constraintEnd_toStartOf="@+id/expirationDate"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/creditCardExpirationLabel" />
+
+ <EditText
+ android:id="@+id/creditCardSecurityCode"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignBaseline="@+id/creditCardSecurityCodeLabel"
+ android:layout_marginEnd="8dp"
+ android:inputType="number"
+ android:autofillHints="creditCardSecurityCode"
+ app:layout_constraintBottom_toBottomOf="@+id/creditCardSecurityCodeLabel"
+ app:layout_constraintEnd_toEndOf="@+id/expirationMonth"
+ app:layout_constraintStart_toStartOf="@+id/expirationDay"
+ app:layout_constraintTop_toTopOf="@+id/creditCardSecurityCodeLabel" />
+
+ <TextView
android:id="@+id/clear"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
@@ -131,7 +155,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/creditCardExpirationLabel" />
+ app:layout_constraintTop_toBottomOf="@+id/creditCardSecurityCodeLabel" />
<TextView
android:id="@+id/submit"
diff --git a/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_compound_view_activity.xml b/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_compound_view_activity.xml
index e95d052..7fae6b6 100644
--- a/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_compound_view_activity.xml
+++ b/input/autofill/AutofillFramework/Application/src/main/res/layout/credit_card_compound_view_activity.xml
@@ -104,6 +104,32 @@
app:layout_constraintTop_toTopOf="@+id/creditCardExpirationLabel" />
<TextView
+ android:id="@+id/creditCardSecurityCodeLabel"
+ style="@style/TextAppearance.AppCompat.Body1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/spacing_large"
+ android:importantForAutofill="no"
+ android:text="@string/credit_card_security_code_label"
+ app:layout_constraintEnd_toStartOf="@+id/expirationDate"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/creditCardExpirationView" />
+
+ <!-- TODO: it's overlapping with @+id/creditCardExpirationView -->
+ <EditText
+ android:id="@+id/creditCardSecurityCode"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_alignBaseline="@+id/creditCardSecurityCodeLabel"
+ android:layout_marginEnd="8dp"
+ android:inputType="number"
+ android:autofillHints="creditCardSecurityCode"
+ app:layout_constraintBottom_toBottomOf="@+id/creditCardSecurityCodeLabel"
+ app:layout_constraintEnd_toEndOf="@+id/creditCardExpirationView"
+ app:layout_constraintStart_toStartOf="@+id/creditCardExpirationView"
+ app:layout_constraintTop_toTopOf="@+id/creditCardSecurityCodeLabel" />
+
+ <TextView
android:id="@+id/clearButton"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
@@ -116,7 +142,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/creditCardExpirationView" />
+ app:layout_constraintTop_toBottomOf="@+id/creditCardSecurityCodeLabel" />
<TextView
android:id="@+id/submitButton"
diff --git a/input/autofill/AutofillFramework/Application/src/main/res/values/strings.xml b/input/autofill/AutofillFramework/Application/src/main/res/values/strings.xml
index 35674e5..177c5e6 100644
--- a/input/autofill/AutofillFramework/Application/src/main/res/values/strings.xml
+++ b/input/autofill/AutofillFramework/Application/src/main/res/values/strings.xml
@@ -34,6 +34,7 @@
<string name="autofill_sign_in_prompt">Tap to sign in.</string>
<string name="credit_card_number_label">CC Number</string>
<string name="credit_card_expiration_label">CC Exp</string>
+ <string name="credit_card_expiration_date_label">CC Exp Date</string>
<string name="credit_card_expiration_day_label">CC Exp Day</string>
<string name="credit_card_expiration_month_label">CC Exp Month</string>
<string name="credit_card_expiration_year_label">CC Exp Year</string>