Merge "Fix TalkBack announces disruptive announcement in PIN/PWD page." into main

This commit is contained in:
Jason Chang
2025-02-13 10:00:22 -08:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 6 deletions

View File

@@ -560,6 +560,7 @@ public class ChooseLockPassword extends SettingsActivity {
setupPasswordRequirementsView(headerLayout);
mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
mPasswordRestrictionView.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE);
mPasswordEntry = view.findViewById(R.id.password_entry);
mPasswordEntry.setOnEditorActionListener(this);
mPasswordEntry.addTextChangedListener(this);

View File

@@ -20,9 +20,9 @@ import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
@@ -66,15 +66,20 @@ public class PasswordRequirementAdapter extends
return mRequirements[position].hashCode();
}
@Override
public void onViewAttachedToWindow(@NonNull PasswordRequirementViewHolder holder) {
holder.mDescriptionText.announceForAccessibility(holder.mDescriptionText.getText());
}
@Override
public void onBindViewHolder(PasswordRequirementViewHolder holder, int position) {
final int fontSize = mContext.getResources().getDimensionPixelSize(
R.dimen.password_requirement_font_size);
final String requirement = mRequirements[position];
holder.mDescriptionText.setAccessibilityDelegate(new View.AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(host, info);
holder.mDescriptionText.setStateDescription(requirement);
}
});
holder.mDescriptionText.setText(mRequirements[position]);
if (mIsTooShortError) {
holder.mDescriptionText.setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyle);