summaryrefslogtreecommitdiff
path: root/PermissionController/src/com/android/permissioncontroller/safetycenter
diff options
context:
space:
mode:
authorTyler Dewey <deweytyl@google.com>2023-04-13 09:59:45 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2023-04-13 09:59:45 +0000
commit3f2f0c948bf999e69cdb2a293b43dcede78ae088 (patch)
treea7364425ddc35687aa0d407609c1dbd151756036 /PermissionController/src/com/android/permissioncontroller/safetycenter
parent1ce83af7689755795a613c63cb2c9cb7a17d1ffc (diff)
parent53bf94c8770c54bf4c1a62ce46474a2170fd2999 (diff)
downloadPermission-3f2f0c948bf999e69cdb2a293b43dcede78ae088.tar.gz
Merge "Only override content description for first view in issue cards." into udc-dev
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/safetycenter')
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java74
1 files changed, 41 insertions, 33 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
index f11b912fb..16cd05dac 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/IssueCardPreference.java
@@ -114,46 +114,22 @@ public class IssueCardPreference extends Preference implements ComparablePrefere
configureDismissButton(holder.findViewById(R.id.issue_card_dismiss_btn));
- ((TextView) holder.findViewById(R.id.issue_card_title)).setText(mIssue.getTitle());
+ TextView titleTextView = (TextView) holder.findViewById(R.id.issue_card_title);
+ titleTextView.setText(mIssue.getTitle());
((TextView) holder.findViewById(R.id.issue_card_summary)).setText(mIssue.getSummary());
- CharSequence attributionTitle = SdkLevel.isAtLeastU() ? mIssue.getAttributionTitle() : null;
TextView attributionTitleTextView =
(TextView) holder.findViewById(R.id.issue_card_attribution_title);
- if (TextUtils.isEmpty(attributionTitle)) {
- attributionTitleTextView.setVisibility(View.GONE);
- } else {
- attributionTitleTextView.setText(attributionTitle);
- attributionTitleTextView.setVisibility(View.VISIBLE);
- }
- CharSequence subtitle = mIssue.getSubtitle();
+ maybeDisplayText(
+ SdkLevel.isAtLeastU() ? mIssue.getAttributionTitle() : null,
+ attributionTitleTextView);
+
TextView subtitleTextView = (TextView) holder.findViewById(R.id.issue_card_subtitle);
- CharSequence contentDescription;
- // TODO(b/257972736): Add a11y support for attribution title.
- if (TextUtils.isEmpty(subtitle)) {
- subtitleTextView.setVisibility(View.GONE);
- contentDescription =
- getContext()
- .getString(
- R.string.safety_center_issue_card_content_description,
- mIssue.getTitle(),
- mIssue.getSummary());
- } else {
- subtitleTextView.setText(subtitle);
- subtitleTextView.setVisibility(View.VISIBLE);
- int contentDescriptionResId =
- R.string.safety_center_issue_card_content_description_with_subtitle;
- contentDescription =
- getContext()
- .getString(
- contentDescriptionResId,
- mIssue.getTitle(),
- mIssue.getSubtitle(),
- mIssue.getSummary());
- }
- holder.itemView.setContentDescription(contentDescription);
+ maybeDisplayText(mIssue.getSubtitle(), subtitleTextView);
+
holder.itemView.setClickable(false);
+ configureContentDescription(attributionTitleTextView, titleTextView);
configureButtonList(holder);
configureSafetyProtectionView(holder);
maybeStartResolutionAnimation(holder);
@@ -163,6 +139,38 @@ public class IssueCardPreference extends Preference implements ComparablePrefere
.recordForIssue(Action.SAFETY_ISSUE_VIEWED, mIssue, mIsDismissed);
}
+ private void maybeDisplayText(@Nullable CharSequence maybeText, TextView textView) {
+ if (TextUtils.isEmpty(maybeText)) {
+ textView.setVisibility(View.GONE);
+ } else {
+ textView.setText(maybeText);
+ textView.setVisibility(View.VISIBLE);
+ }
+ }
+
+ private void configureContentDescription(
+ TextView attributionTitleTextView, TextView titleTextView) {
+ TextView firstVisibleTextView;
+ if (attributionTitleTextView.getVisibility() == View.VISIBLE) {
+ // Attribution title might not be present for an issue, title always is.
+ firstVisibleTextView = attributionTitleTextView;
+
+ // Clear the modified title description in case this view is reused.
+ titleTextView.setContentDescription(null);
+ } else {
+ firstVisibleTextView = titleTextView;
+ }
+
+ // We would like to say "alert" before reading the content of the issue card. Best way to
+ // do that is by modifying the content description of the first view that would be read
+ // in the issue card.
+ firstVisibleTextView.setContentDescription(
+ getContext()
+ .getString(
+ R.string.safety_center_issue_card_prefix_content_description,
+ firstVisibleTextView.getText()));
+ }
+
private void configureButtonList(PreferenceViewHolder holder) {
LinearLayout buttonList =
((LinearLayout) holder.findViewById(R.id.issue_card_action_button_list));