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

Commit c31ed39e authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Send accessibility notification events only for the current user.

1. The notification manager service is firing accessibility events
   for notification for a background user. Events for the current
   user's notifications should be sent.

bug:7326302

Change-Id: I00665385ba2106f161928dad1b76536c93c17f27
parent 96179213
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -991,6 +991,14 @@ public class NotificationManagerService extends INotificationManager.Stub
                        | Notification.FLAG_NO_CLEAR;
            }

            final int currentUser;
            final long token = Binder.clearCallingIdentity();
            try {
                currentUser = ActivityManager.getCurrentUser();
            } finally {
                Binder.restoreCallingIdentity(token);
            }

            if (notification.icon != 0) {
                final StatusBarNotification n = new StatusBarNotification(
                        pkg, id, tag, r.uid, r.initialPid, score, notification, user);
@@ -1015,7 +1023,10 @@ public class NotificationManagerService extends INotificationManager.Stub
                        Binder.restoreCallingIdentity(identity);
                    }
                }
                // Send accessibility events only for the current user.
                if (currentUser == userId) {
                    sendAccessibilityEvent(notification, pkg);
                }
            } else {
                Slog.e(TAG, "Ignoring notification with icon==0: " + notification);
                if (old != null && old.statusBarKey != null) {
@@ -1029,14 +1040,6 @@ public class NotificationManagerService extends INotificationManager.Stub
                }
            }

            final int currentUser;
            final long token = Binder.clearCallingIdentity();
            try {
                currentUser = ActivityManager.getCurrentUser();
            } finally {
                Binder.restoreCallingIdentity(token);
            }

            // If we're not supposed to beep, vibrate, etc. then don't.
            if (((mDisabledNotifications & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
                    && (!(old != null