TalkBack announce Expand/Collapse permission
1. Make sure to announce expand/collapse permissions 2. Announce the stats of current view(Exapnded/collapsed + permission) Test: CTS Fix: 278638141 Change-Id: I9634f6b757d6d8e41a6c051b5060cc8c6c8316d7
This commit is contained in:
@@ -58,6 +58,7 @@
|
||||
android:textSize="14sp"
|
||||
android:layout_marginTop="2dp"
|
||||
style="@style/TextAppearance"
|
||||
android:focusable="true"
|
||||
android:textColor="?android:attr/textColorSecondary"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -113,17 +113,11 @@
|
||||
<!-- Back button for the helper consent dialog [CHAR LIMIT=30] -->
|
||||
<string name="consent_back">Back</string>
|
||||
|
||||
<!-- Action when permission list view is expanded CHAR LIMIT=30] -->
|
||||
<string name="permission_expanded">Expanded</string>
|
||||
<!-- Expand permission in the list CHAR LIMIT=30] -->
|
||||
<string name="permission_expand">Expand <xliff:g id="permission_type" example="Notification">%1$s</xliff:g></string>
|
||||
|
||||
<!-- Expand action permission list CHAR LIMIT=30] -->
|
||||
<string name="permission_expand">Expand</string>
|
||||
|
||||
<!-- Action when permission list view is collapsed CHAR LIMIT=30] -->
|
||||
<string name="permission_collapsed">Collapsed</string>
|
||||
|
||||
<!-- Collapse action permission list CHAR LIMIT=30] -->
|
||||
<string name="permission_collapse">Collapse</string>
|
||||
<!-- Collapse permission int the list CHAR LIMIT=30] -->
|
||||
<string name="permission_collapse">Collapse <xliff:g id="permission_type" example="Notification">%1$s</xliff:g></string>
|
||||
|
||||
<!-- ================== System data transfer ==================== -->
|
||||
<!-- Title of the permission sync confirmation dialog. [CHAR LIMIT=NONE] -->
|
||||
|
||||
@@ -124,7 +124,7 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
|
||||
}
|
||||
|
||||
setAccessibility(view, viewType,
|
||||
AccessibilityNodeInfo.ACTION_CLICK, R.string.permission_expand);
|
||||
AccessibilityNodeInfo.ACTION_CLICK, R.string.permission_expand, 0);
|
||||
|
||||
// Add expand buttons if the permissions are more than PERMISSION_SIZE in this list also
|
||||
// make the summary invisible by default.
|
||||
@@ -137,18 +137,16 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
|
||||
viewHolder.mExpandButton.setImageResource(R.drawable.btn_expand_less);
|
||||
viewHolder.mPermissionSummary.setVisibility(View.VISIBLE);
|
||||
viewHolder.mExpandButton.setTag(R.drawable.btn_expand_less);
|
||||
view.setContentDescription(mContext.getString(R.string.permission_expanded));
|
||||
setAccessibility(view, viewType,
|
||||
AccessibilityNodeInfo.ACTION_CLICK, R.string.permission_collapse);
|
||||
viewHolder.mPermissionSummary.setFocusable(true);
|
||||
AccessibilityNodeInfo.ACTION_CLICK,
|
||||
R.string.permission_collapse, R.string.permission_expand);
|
||||
} else {
|
||||
viewHolder.mExpandButton.setImageResource(R.drawable.btn_expand_more);
|
||||
viewHolder.mPermissionSummary.setVisibility(View.GONE);
|
||||
viewHolder.mExpandButton.setTag(R.drawable.btn_expand_more);
|
||||
view.setContentDescription(mContext.getString(R.string.permission_collapsed));
|
||||
setAccessibility(view, viewType,
|
||||
AccessibilityNodeInfo.ACTION_CLICK, R.string.permission_expanded);
|
||||
viewHolder.mPermissionSummary.setFocusable(false);
|
||||
AccessibilityNodeInfo.ACTION_CLICK,
|
||||
R.string.permission_expand, R.string.permission_collapse);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@@ -200,14 +198,20 @@ class PermissionListAdapter extends RecyclerView.Adapter<PermissionListAdapter.V
|
||||
}
|
||||
}
|
||||
|
||||
private void setAccessibility(View view, int viewType, int action, int resourceId) {
|
||||
final String actionString = mContext.getString(resourceId);
|
||||
private void setAccessibility(View view, int viewType, int action, int statusResourceId,
|
||||
int actionResourceId) {
|
||||
final String permission = mContext.getString(sTitleMap.get(viewType));
|
||||
|
||||
if (actionResourceId != 0) {
|
||||
view.announceForAccessibility(
|
||||
getHtmlFromResources(mContext, actionResourceId, permission));
|
||||
}
|
||||
|
||||
view.setAccessibilityDelegate(new View.AccessibilityDelegate() {
|
||||
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
|
||||
super.onInitializeAccessibilityNodeInfo(host, info);
|
||||
info.addAction(new AccessibilityNodeInfo.AccessibilityAction(action,
|
||||
actionString + permission));
|
||||
getHtmlFromResources(mContext, statusResourceId, permission)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user