Remove page number announcement on carousel and set it on description
Others e.g. folder etc. will need to handle it separately, so, didn't
update pagedView.
Bug: 383252838
Test: Talkback
Flag: EXEMPT BUGFIX
Change-Id: I43f3818afcdaa4d4805df2af0890b970d71db9a7
diff --git a/src/com/android/launcher3/widget/picker/WidgetRecommendationsView.java b/src/com/android/launcher3/widget/picker/WidgetRecommendationsView.java
index d84a219..d042b1d 100644
--- a/src/com/android/launcher3/widget/picker/WidgetRecommendationsView.java
+++ b/src/com/android/launcher3/widget/picker/WidgetRecommendationsView.java
@@ -290,16 +290,28 @@
}
setCurrentPage(requestedPage);
mPageIndicator.setActiveMarker(requestedPage);
- mRecommendationPageTitle.setText(mCategoryTitles.get(requestedPage));
+ updatePageTitle(requestedPage);
}
}
@Override
+ protected boolean canAnnouncePageDescription() {
+ // Disable announcement as our page title reads out the needed page description
+ return false;
+ }
+
+ private void updatePageTitle(int requestedPage) {
+ String title = mCategoryTitles.get(requestedPage);
+ mRecommendationPageTitle.setText(title);
+ mRecommendationPageTitle.setContentDescription(title + ", " + getCurrentPageDescription());
+ }
+
+ @Override
protected void notifyPageSwitchListener(int prevPage) {
if (getPageCount() > 1) {
// Since the title is outside the paging scroll, we update the title on page switch.
int nextPage = getNextPage();
- mRecommendationPageTitle.setText(mCategoryTitles.get(nextPage));
+ updatePageTitle(nextPage);
mPageSwitchListeners.forEach(listener -> listener.accept(nextPage));
super.notifyPageSwitchListener(prevPage);
}