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

Commit 887f2b51 authored by Daniel Norman's avatar Daniel Norman Committed by Android Build Coastguard Worker
Browse files

Do not send AccessibilityEvent if notification is for different user.

Bug: 237540408
Test: BuzzBeepBlinkTest#testA11yCrossUserEventNotSent
Change-Id: I62a875e26e214847ec72ce3c41b4f2fa8e597e07
Merged-In: I62a875e26e214847ec72ce3c41b4f2fa8e597e07
(cherry picked from commit 18f2ec86)
Merged-In: I62a875e26e214847ec72ce3c41b4f2fa8e597e07
parent e78a2b4a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5846,7 +5846,8 @@ public class NotificationManagerService extends SystemService {
        boolean sentAccessibilityEvent = false;
        // If the notification will appear in the status bar, it should send an accessibility
        // event
        if (!record.isUpdate && record.getImportance() > IMPORTANCE_MIN) {
        if (!record.isUpdate && record.getImportance() > IMPORTANCE_MIN
                && isNotificationForCurrentUser(record)) {
            sendAccessibilityEvent(record);
            sentAccessibilityEvent = true;
        }
+15 −0
Original line number Diff line number Diff line
@@ -1219,6 +1219,21 @@ public class BuzzBeepBlinkTest extends UiServiceTestCase {
        verify(mAccessibilityService, times(1)).sendAccessibilityEvent(any(), anyInt());
    }

    @Test
    public void testA11yCrossUserEventNotSent() throws Exception {
        final Notification n = new Builder(getContext(), "test")
                .setSmallIcon(android.R.drawable.sym_def_app_icon).build();
        int userId = mUser.getIdentifier() + 1;
        StatusBarNotification sbn = new StatusBarNotification(mPkg, mPkg, 0, mTag, mUid,
                mPid, n, UserHandle.of(userId), null, System.currentTimeMillis());
        NotificationRecord r = new NotificationRecord(getContext(), sbn,
                new NotificationChannel("test", "test", IMPORTANCE_HIGH));

        mService.buzzBeepBlinkLocked(r);

        verify(mAccessibilityService, never()).sendAccessibilityEvent(any(), anyInt());
    }

    @Test
    public void testLightsScreenOn() {
        mService.mScreenOn = true;