Allow Talkback to speak the permission name in the bar chart.

Bug: 127237805
Test: Enable Talkback, click on access
Change-Id: Ib8d5d3b0fe25e1d3ea4f0b969ff03b663ce716f4
This commit is contained in:
Joel Galenson
2019-03-05 14:16:24 -08:00
parent 76b70687e7
commit ca75538d0c

View File

@@ -167,7 +167,8 @@ public class PermissionBarChartPreferenceController extends BasePreferenceContro
barViewInfos[index] = new BarViewInfo( barViewInfos[index] = new BarViewInfo(
getPermissionGroupIcon(permissionGroupInfo.getName()), getPermissionGroupIcon(permissionGroupInfo.getName()),
permissionGroupInfo.getAppAccessCount(), permissionGroupInfo.getAppAccessCount(),
R.string.storage_detail_apps); R.string.storage_detail_apps,
getPermissionGroupLabel(permissionGroupInfo.getName()));
// Set the click listener for each bar view. // Set the click listener for each bar view.
// The listener will navigate user to permission usage app. // The listener will navigate user to permission usage app.
@@ -194,6 +195,18 @@ public class PermissionBarChartPreferenceController extends BasePreferenceContro
return icon; return icon;
} }
private CharSequence getPermissionGroupLabel(CharSequence permissionGroup) {
CharSequence label = null;
try {
label = mPackageManager.getPermissionGroupInfo(permissionGroup.toString(), 0)
.loadLabel(mPackageManager);
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "Cannot find group label for " + permissionGroup, e);
}
return label;
}
private boolean areSamePermissionGroups(List<RuntimePermissionUsageInfo> newUsageInfos) { private boolean areSamePermissionGroups(List<RuntimePermissionUsageInfo> newUsageInfos) {
if (newUsageInfos.size() != mOldUsageInfos.size()) { if (newUsageInfos.size() != mOldUsageInfos.size()) {
return false; return false;