Add fingerprint name to delete button content description.

Test: atest FingerprintPreferenceTest
Bug: 308671557

Change-Id: I5a7d402835124a50fd1268745eca1e28c865dc18
This commit is contained in:
Hao Dong
2023-11-08 21:56:25 +00:00
parent 6584f32b6a
commit f2d2de494d
2 changed files with 24 additions and 6 deletions

View File

@@ -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);
}
});
}

View File

@@ -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);