diff options
3 files changed, 19 insertions, 20 deletions
diff --git a/packages/CompanionDeviceManager/res/layout/list_item_permission.xml b/packages/CompanionDeviceManager/res/layout/list_item_permission.xml index 6bfcd82b0a4a..8c35da13e2c4 100644 --- a/packages/CompanionDeviceManager/res/layout/list_item_permission.xml +++ b/packages/CompanionDeviceManager/res/layout/list_item_permission.xml @@ -58,6 +58,7 @@ android:textSize="14sp" android:layout_marginTop="2dp" style="@style/TextAppearance" + android:focusable="true" android:textColor="?android:attr/textColorSecondary"/> </LinearLayout> diff --git a/packages/CompanionDeviceManager/res/values/strings.xml b/packages/CompanionDeviceManager/res/values/strings.xml index 74072e9d4ec3..2502bbf7b40b 100644 --- a/packages/CompanionDeviceManager/res/values/strings.xml +++ b/packages/CompanionDeviceManager/res/values/strings.xml @@ -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] --> diff --git a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/PermissionListAdapter.java b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/PermissionListAdapter.java index b86ef649331a..f594bf270d29 100644 --- a/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/PermissionListAdapter.java +++ b/packages/CompanionDeviceManager/src/com/android/companiondevicemanager/PermissionListAdapter.java @@ -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))); } }); } |