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

Commit 0e1af057 authored by Evan Chen's avatar Evan Chen Committed by Android (Google) Code Review
Browse files

Merge "Do not allow setting notification access across users." into udc-dev

parents 067e7f38 12bb4ed9
Loading
Loading
Loading
Loading
+3 −5
Original line number Original line Diff line number Diff line
@@ -685,8 +685,7 @@ public class CompanionDeviceManagerService extends SystemService {
        public PendingIntent requestNotificationAccess(ComponentName component, int userId)
        public PendingIntent requestNotificationAccess(ComponentName component, int userId)
                throws RemoteException {
                throws RemoteException {
            String callingPackage = component.getPackageName();
            String callingPackage = component.getPackageName();
            checkCanCallNotificationApi(callingPackage);
            checkCanCallNotificationApi(callingPackage, userId);
            // TODO: check userId.
            if (component.flattenToString().length() > MAX_CN_LENGTH) {
            if (component.flattenToString().length() > MAX_CN_LENGTH) {
                throw new IllegalArgumentException("Component name is too long.");
                throw new IllegalArgumentException("Component name is too long.");
            }
            }
@@ -712,7 +711,7 @@ public class CompanionDeviceManagerService extends SystemService {
        @Deprecated
        @Deprecated
        @Override
        @Override
        public boolean hasNotificationAccess(ComponentName component) throws RemoteException {
        public boolean hasNotificationAccess(ComponentName component) throws RemoteException {
            checkCanCallNotificationApi(component.getPackageName());
            checkCanCallNotificationApi(component.getPackageName(), getCallingUserId());
            NotificationManager nm = getContext().getSystemService(NotificationManager.class);
            NotificationManager nm = getContext().getSystemService(NotificationManager.class);
            return nm.isNotificationListenerAccessGranted(component);
            return nm.isNotificationListenerAccessGranted(component);
        }
        }
@@ -908,8 +907,7 @@ public class CompanionDeviceManagerService extends SystemService {
            createNewAssociation(userId, packageName, macAddressObj, null, null, false);
            createNewAssociation(userId, packageName, macAddressObj, null, null, false);
        }
        }


        private void checkCanCallNotificationApi(String callingPackage) {
        private void checkCanCallNotificationApi(String callingPackage, int userId) {
            final int userId = getCallingUserId();
            enforceCallerIsSystemOr(userId, callingPackage);
            enforceCallerIsSystemOr(userId, callingPackage);


            if (getCallingUid() == SYSTEM_UID) return;
            if (getCallingUid() == SYSTEM_UID) return;