Skip to content

Commit 35ab7ce

Browse files
committed
[Refactor] Improve accessibility by updating the content description of action items
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
1 parent dbe1539 commit 35ab7ce

15 files changed

Lines changed: 69 additions & 21 deletions

app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsComponentsFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,7 @@ public ViewHolder(@NonNull View itemView) {
371371
super(itemView);
372372
this.itemView = (MaterialCardView) itemView;
373373
imageView = itemView.findViewById(R.id.icon);
374+
imageView.setContentDescription(itemView.getContext().getString(R.string.icon));
374375
labelView = itemView.findViewById(R.id.label);
375376
nameView = itemView.findViewById(R.id.name);
376377
processNameView = itemView.findViewById(R.id.process_name);

app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsOtherFragment.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ private void getSharedLibsView(@NonNull Context context, @NonNull ViewHolder hol
306306
sb.append("\n").append(item.path);
307307
holder.launchBtn.setVisibility(View.VISIBLE);
308308
holder.launchBtn.setIconResource(io.github.muntashirakon.ui.R.drawable.ic_information);
309+
holder.launchBtn.setContentDescription(holder.itemView.getContext().getString(R.string.app_info));
309310
holder.launchBtn.setOnClickListener(v -> {
310311
Intent intent = AppDetailsActivity.getIntent(context, Paths.get(item.path), false);
311312
startActivity(intent);
@@ -331,6 +332,7 @@ private void getSharedLibsView(@NonNull Context context, @NonNull ViewHolder hol
331332
holder.textView2.setText(sb);
332333
holder.launchBtn.setVisibility(View.VISIBLE);
333334
holder.launchBtn.setIconResource(R.drawable.ic_open_in_new);
335+
holder.launchBtn.setContentDescription(holder.itemView.getContext().getString(R.string.open));
334336
holder.launchBtn.setOnClickListener(openAsFolderInFM(context, item.path.getParent()));
335337
break;
336338
}

app/src/main/java/io/github/muntashirakon/AppManager/details/AppDetailsPermissionsFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ public ViewHolder(@NonNull View itemView) {
426426
switch (mRequestedProperty) {
427427
case PERMISSIONS:
428428
imageView = itemView.findViewById(R.id.icon);
429+
imageView.setContentDescription(itemView.getContext().getString(R.string.icon));
429430
textView1 = itemView.findViewById(R.id.label);
430431
textView2 = itemView.findViewById(R.id.name);
431432
textView3 = itemView.findViewById(R.id.taskAffinity);

app/src/main/java/io/github/muntashirakon/AppManager/details/info/AppInfoFragment.java

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1698,33 +1698,47 @@ private void setPathsAndDirectories(@NonNull AppInfoViewModel.AppInfo appInfo) {
16981698
mListItems.add(ListItem.newGroupStart(getString(R.string.paths_and_directories)));
16991699
// Source directory (apk path)
17001700
if (appInfo.sourceDir != null) {
1701-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.source_dir), appInfo.sourceDir,
1702-
openAsFolderInFM(requireContext(), appInfo.sourceDir)));
1701+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.source_dir),
1702+
appInfo.sourceDir, openAsFolderInFM(requireContext(), appInfo.sourceDir));
1703+
listItem.setActionContentDescription(R.string.open);
1704+
mListItems.add(listItem);
17031705
}
17041706
// Data dir
17051707
if (appInfo.dataDir != null) {
1706-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.data_dir), appInfo.dataDir,
1707-
openAsFolderInFM(requireContext(), appInfo.dataDir)));
1708+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.data_dir),
1709+
appInfo.dataDir, openAsFolderInFM(requireContext(), appInfo.dataDir));
1710+
listItem.setActionContentDescription(R.string.open);
1711+
mListItems.add(listItem);
17081712
}
17091713
// Device-protected data dir
17101714
if (appInfo.dataDeDir != null) {
1711-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.dev_protected_data_dir), appInfo.dataDeDir,
1712-
openAsFolderInFM(requireContext(), appInfo.dataDeDir)));
1715+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.dev_protected_data_dir),
1716+
appInfo.dataDeDir, openAsFolderInFM(requireContext(), appInfo.dataDeDir));
1717+
listItem.setActionContentDescription(R.string.open);
1718+
mListItems.add(listItem);
17131719
}
17141720
// External data dirs
17151721
if (appInfo.extDataDirs.size() == 1) {
1716-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.external_data_dir), appInfo.extDataDirs.get(0),
1717-
openAsFolderInFM(requireContext(), appInfo.extDataDirs.get(0))));
1722+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.external_data_dir),
1723+
appInfo.extDataDirs.get(0), openAsFolderInFM(requireContext(),
1724+
appInfo.extDataDirs.get(0)));
1725+
listItem.setActionContentDescription(R.string.open);
1726+
mListItems.add(listItem);
17181727
} else {
17191728
for (int i = 0; i < appInfo.extDataDirs.size(); ++i) {
1720-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.external_multiple_data_dir, i),
1721-
appInfo.extDataDirs.get(i), openAsFolderInFM(requireContext(), appInfo.extDataDirs.get(i))));
1729+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.external_multiple_data_dir, i),
1730+
appInfo.extDataDirs.get(i), openAsFolderInFM(requireContext(),
1731+
appInfo.extDataDirs.get(i)));
1732+
listItem.setActionContentDescription(R.string.open);
1733+
mListItems.add(listItem);
17221734
}
17231735
}
17241736
// Native JNI library dir
17251737
if (appInfo.jniDir != null) {
1726-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.native_library_dir), appInfo.jniDir,
1727-
openAsFolderInFM(requireContext(), appInfo.jniDir)));
1738+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.native_library_dir), appInfo.jniDir,
1739+
openAsFolderInFM(requireContext(), appInfo.jniDir));
1740+
listItem.setActionContentDescription(R.string.open);
1741+
mListItems.add(listItem);
17281742
}
17291743
}
17301744
}
@@ -1735,7 +1749,7 @@ private void setMoreInfo(AppInfoViewModel.AppInfo appInfo) {
17351749
// Set more info
17361750
mListItems.add(ListItem.newGroupStart(getString(R.string.more_info)));
17371751

1738-
// Set installer version info
1752+
// Set installed version info
17391753
if (mIsExternalApk && mInstalledPackageInfo != null) {
17401754
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.installed_version),
17411755
getString(R.string.version_name_with_code, mInstalledPackageInfo.versionName,
@@ -1745,6 +1759,7 @@ private void setMoreInfo(AppInfoViewModel.AppInfo appInfo) {
17451759
mActivity.startActivity(intent);
17461760
});
17471761
listItem.setActionIcon(io.github.muntashirakon.ui.R.drawable.ic_information);
1762+
listItem.setActionContentDescription(R.string.app_info);
17481763
mListItems.add(listItem);
17491764
}
17501765

@@ -1786,6 +1801,7 @@ private void setMoreInfo(AppInfoViewModel.AppInfo appInfo) {
17861801
getString(R.string.installer_app), appInfo.installerApp,
17871802
v -> displayInstallerDialog(Objects.requireNonNull(appInfo.installSource)));
17881803
installerItem.setActionIcon(R.drawable.ic_information_circle);
1804+
installerItem.setActionContentDescription(R.string.more_info);
17891805
mListItems.add(installerItem);
17901806
}
17911807
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.user_id), String.format(Locale.getDefault(), "%d",
@@ -1812,8 +1828,10 @@ private void setMoreInfo(AppInfoViewModel.AppInfo appInfo) {
18121828
final ComponentName launchComponentName = appInfo.mainActivity.getComponent();
18131829
if (launchComponentName != null) {
18141830
final String mainActivity = launchComponentName.getClassName();
1815-
mListItems.add(ListItem.newSelectableRegularItem(getString(R.string.main_activity), mainActivity,
1816-
view -> startActivity(appInfo.mainActivity)));
1831+
ListItem listItem = ListItem.newSelectableRegularItem(getString(R.string.main_activity),
1832+
mainActivity, view -> startActivity(appInfo.mainActivity));
1833+
listItem.setActionContentDescription(R.string.open);
1834+
mListItems.add(listItem);
18171835
}
18181836
}
18191837
}

app/src/main/java/io/github/muntashirakon/AppManager/filters/FinderFilterAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ public ViewHolder(View itemView) {
9696
subtitleView = itemView.findViewById(R.id.item_subtitle);
9797
actionButton = itemView.findViewById(R.id.item_open);
9898
actionButton.setIcon(ContextCompat.getDrawable(itemView.getContext(), io.github.muntashirakon.ui.R.drawable.ic_clear));
99+
actionButton.setContentDescription(itemView.getContext().getString(R.string.item_remove));
99100
}
100101
}
101102
}

app/src/main/java/io/github/muntashirakon/AppManager/fm/FmActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ public void getLabelView(@NonNull ViewHolder holder, FmDrawerItem item) {
431431
// Locations
432432
holder.actionView.setVisibility(View.VISIBLE);
433433
holder.actionView.setIconResource(R.drawable.ic_add);
434+
holder.actionView.setContentDescription(holder.itemView.getContext().getString(R.string.add));
434435
holder.actionView.setOnClickListener(v -> {
435436
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
436437
.putExtra("android.provider.extra.SHOW_ADVANCED", true);

app/src/main/java/io/github/muntashirakon/AppManager/fm/dialogs/OpenWithDialogFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ public ViewHolder(@NonNull View itemView) {
388388
title = itemView.findViewById(android.R.id.title);
389389
summary = itemView.findViewById(android.R.id.summary);
390390
icon = itemView.findViewById(android.R.id.icon);
391+
icon.setContentDescription(itemView.getContext().getString(R.string.icon));
391392
}
392393
}
393394
}

app/src/main/java/io/github/muntashirakon/AppManager/intercept/ActivityInterceptor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,6 +1164,7 @@ public ViewHolder(@NonNull View itemView) {
11641164
super(itemView);
11651165
title = itemView.findViewById(R.id.item_title);
11661166
actionIcon = itemView.findViewById(R.id.item_action);
1167+
actionIcon.setContentDescription(itemView.getContext().getString(R.string.item_remove));
11671168
}
11681169
}
11691170
}
@@ -1217,6 +1218,7 @@ public ViewHolder(@NonNull View itemView) {
12171218
super(itemView);
12181219
title = itemView.findViewById(R.id.item_title);
12191220
actionIcon = itemView.findViewById(R.id.item_action);
1221+
actionIcon.setContentDescription(itemView.getContext().getString(R.string.item_remove));
12201222
}
12211223
}
12221224
}
@@ -1280,6 +1282,7 @@ public ViewHolder(@NonNull View itemView) {
12801282
subtitle = itemView.findViewById(R.id.item_subtitle);
12811283
actionIcon = itemView.findViewById(R.id.item_open);
12821284
actionIcon.setIconResource(R.drawable.ic_trash_can);
1285+
actionIcon.setContentDescription(itemView.getContext().getString(R.string.item_remove));
12831286
icon = itemView.findViewById(R.id.item_icon);
12841287
icon.setVisibility(View.GONE);
12851288
}
@@ -1344,6 +1347,7 @@ public ViewHolder(@NonNull View itemView) {
13441347
title = itemView.findViewById(R.id.item_title);
13451348
subtitle = itemView.findViewById(R.id.item_subtitle);
13461349
actionIcon = itemView.findViewById(R.id.item_open);
1350+
actionIcon.setContentDescription(itemView.getContext().getString(R.string.open));
13471351
icon = itemView.findViewById(R.id.item_icon);
13481352
}
13491353
}

app/src/main/java/io/github/muntashirakon/AppManager/logcat/LogFilterAdapter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public ViewHolder(View itemView) {
8383
super(itemView);
8484
textView = itemView.findViewById(R.id.item_title);
8585
actionButton = itemView.findViewById(R.id.item_action);
86+
actionButton.setContentDescription(itemView.getContext().getString(R.string.item_remove));
8687
}
8788
}
8889
}

app/src/main/java/io/github/muntashirakon/AppManager/profiles/AppsBaseProfileActivity.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public abstract class AppsBaseProfileActivity extends BaseActivity implements Na
4545
protected static final String EXTRA_STATE = "state";
4646

4747
private ViewPager2 mViewPager;
48-
private NavigationBarView mBottomNavigationView;
48+
NavigationBarView bottomNavigationView;
4949
private MenuItem mPrevMenuItem;
5050
private final Fragment[] mFragments = new Fragment[3];
5151
private final ViewPager2.OnPageChangeCallback mPageChangeCallback = new ViewPager2.OnPageChangeCallback() {
@@ -54,10 +54,10 @@ public void onPageSelected(int position) {
5454
if (mPrevMenuItem != null) {
5555
mPrevMenuItem.setChecked(false);
5656
} else {
57-
mBottomNavigationView.getMenu().getItem(0).setChecked(false);
57+
bottomNavigationView.getMenu().getItem(0).setChecked(false);
5858
}
59-
mBottomNavigationView.getMenu().getItem(position).setChecked(true);
60-
mPrevMenuItem = mBottomNavigationView.getMenu().getItem(position);
59+
bottomNavigationView.getMenu().getItem(position).setChecked(true);
60+
mPrevMenuItem = bottomNavigationView.getMenu().getItem(position);
6161
}
6262
};
6363
private final OnBackPressedCallback mOnBackPressedCallback = new OnBackPressedCallback(false) {
@@ -132,8 +132,8 @@ protected void onAuthenticated(@Nullable Bundle savedInstanceState) {
132132
mViewPager.setOffscreenPageLimit(2);
133133
mViewPager.registerOnPageChangeCallback(mPageChangeCallback);
134134
mViewPager.setAdapter(new ProfileFragmentPagerAdapter(this));
135-
mBottomNavigationView = findViewById(R.id.bottom_navigation);
136-
mBottomNavigationView.setOnItemSelectedListener(this);
135+
bottomNavigationView = findViewById(R.id.bottom_navigation);
136+
bottomNavigationView.setOnItemSelectedListener(this);
137137
// Observers
138138
model.getProfileModifiedLiveData().observe(this, modified -> {
139139
mOnBackPressedCallback.setEnabled(modified);

0 commit comments

Comments
 (0)