From f2d2de494dcc55f5dc272506ae1161122c60de3b Mon Sep 17 00:00:00 2001 From: Hao Dong Date: Wed, 8 Nov 2023 21:56:25 +0000 Subject: [PATCH] Add fingerprint name to delete button content description. Test: atest FingerprintPreferenceTest Bug: 308671557 Change-Id: I5a7d402835124a50fd1268745eca1e28c865dc18 --- .../fingerprint/FingerprintSettings.java | 14 ++++++++------ .../fingerprint/FingerprintPreferenceTest.java | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 594cf7a43af..308b3d50e2a 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -1399,12 +1399,14 @@ public class FingerprintSettings extends SubSettings { super.onBindViewHolder(view); mView = view.itemView; mDeleteView = view.itemView.findViewById(R.id.delete_button); - mDeleteView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (mOnDeleteClickListener != null) { - mOnDeleteClickListener.onDeleteClick(FingerprintPreference.this); - } + if (mFingerprint != null) { + mDeleteView.setContentDescription( + mDeleteView.getContentDescription() + + " " + mFingerprint.getName().toString()); + } + mDeleteView.setOnClickListener(v -> { + if (mOnDeleteClickListener != null) { + mOnDeleteClickListener.onDeleteClick(FingerprintPreference.this); } }); } diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java index 116591d758a..c8c867c6bb7 100644 --- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintPreferenceTest.java @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import android.content.Context; +import android.hardware.fingerprint.Fingerprint; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; @@ -59,6 +60,21 @@ public class FingerprintPreferenceTest { assertThat(mPreference.getSecondTargetResId()).isEqualTo(R.layout.preference_widget_delete); } + @Test + public void deleteContentDescription() { + final FrameLayout layout = new FrameLayout(mContext); + LayoutInflater.from(mContext).inflate(mPreference.getSecondTargetResId(), layout, true); + final String fingerprintName = "fingerprint test"; + mPreference.setFingerprint(new Fingerprint(fingerprintName, 0, 0)); + final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(layout); + mPreference.onBindViewHolder(holder); + + final View view = layout.findViewById(R.id.delete_button); + String expectedContentDescription = + mContext.getString(R.string.delete) + " " + fingerprintName; + assertThat(view.getContentDescription().toString()).isEqualTo(expectedContentDescription); + } + @Test public void bindAndClickDeleteButton_shouldInvokeOnDeleteListener() { final FrameLayout layout = new FrameLayout(mContext);