Fix TalkBack announces disruptive announcement in PIN/PWD page.
Set the description state to A11y Node info for "Must be at least 4 characters" when enter "Set a password", "Must be fewer than 17 digits" in the "Set a PIN" or "Set a password" and "PIN must be at least 4 digit, but a 6-digit PIN is recommended for adding security" Flag: EXEMPT bugfix Bug: 384588020 Bug: 384604918 Bug: 384619356 Test: local build and verify Talkback announcement in PIN/PWD page. Change-Id: Ib81abdc41dba1eeb854f2c7361362b5d55f8c7c7
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user