Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4922aa00 authored by Beverly's avatar Beverly
Browse files

Notification history a11y fixes

- When clicking the expand/collapse button to see the posted
notifications from an app in the last 24 hours, refocus accessibility on
the button so the entire button (contentDescription + clickability) are
announced. Previously only the contentDescription update was being
announced.

- Fix local context menu of NotificationHistory elements by calling the
super method in performAccessibilityAction

Test: manual
Fixes: 153396313
Fixes: 153518629
Change-Id: I3d847ec1f2b72dcf411c6c7c7fe2dc061ccfde26
parent 0c99ecae
Loading
Loading
Loading
Loading
+12 −10
Original line number Original line Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.notification.history;


import static android.provider.Settings.Secure.NOTIFICATION_HISTORY_ENABLED;
import static android.provider.Settings.Secure.NOTIFICATION_HISTORY_ENABLED;


import static androidx.core.view.accessibility.AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED;

import android.app.Activity;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager;
import android.app.INotificationManager;
import android.app.INotificationManager;
@@ -96,7 +98,7 @@ public class NotificationHistoryActivity extends Activity {
                expand.setContentDescription(container.getVisibility() == View.VISIBLE
                expand.setContentDescription(container.getVisibility() == View.VISIBLE
                        ? getString(R.string.condition_expand_hide)
                        ? getString(R.string.condition_expand_hide)
                        : getString(R.string.condition_expand_show));
                        : getString(R.string.condition_expand_show));
                    expand.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE);
                expand.sendAccessibilityEvent(TYPE_VIEW_ACCESSIBILITY_FOCUSED);
            });
            });


            TextView label = viewForPackage.findViewById(R.id.label);
            TextView label = viewForPackage.findViewById(R.id.label);
@@ -108,7 +110,7 @@ public class NotificationHistoryActivity extends Activity {
            count.setText(getResources().getQuantityString(R.plurals.notification_history_count,
            count.setText(getResources().getQuantityString(R.plurals.notification_history_count,
                    nhp.notifications.size(), nhp.notifications.size()));
                    nhp.notifications.size(), nhp.notifications.size()));


            NotificationHistoryRecyclerView rv =
            final NotificationHistoryRecyclerView rv =
                    viewForPackage.findViewById(R.id.notification_list);
                    viewForPackage.findViewById(R.id.notification_list);
            rv.setAdapter(new NotificationHistoryAdapter(mNm, rv));
            rv.setAdapter(new NotificationHistoryAdapter(mNm, rv));
            ((NotificationHistoryAdapter) rv.getAdapter()).onRebuildComplete(
            ((NotificationHistoryAdapter) rv.getAdapter()).onRebuildComplete(
+2 −1
Original line number Original line Diff line number Diff line
@@ -91,11 +91,12 @@ public class NotificationHistoryAdapter extends
                        new AccessibilityNodeInfo.AccessibilityAction(
                        new AccessibilityNodeInfo.AccessibilityAction(
                                AccessibilityNodeInfo.ACTION_CLICK, description);
                                AccessibilityNodeInfo.ACTION_CLICK, description);
                info.addAction(customClick);
                info.addAction(customClick);
                //info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_DISMISS);
                info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_DISMISS);
            }
            }


            @Override
            @Override
            public boolean performAccessibilityAction(View host, int action, Bundle args) {
            public boolean performAccessibilityAction(View host, int action, Bundle args) {
                super.performAccessibilityAction(host, action, args);
                if (action == AccessibilityNodeInfo.AccessibilityAction.ACTION_DISMISS.getId()) {
                if (action == AccessibilityNodeInfo.AccessibilityAction.ACTION_DISMISS.getId()) {
                    onItemSwipeDeleted(position);
                    onItemSwipeDeleted(position);
                    return true;
                    return true;