Add check to allow notification listener packages to post >50 notifications

Bug: 13433398
Change-Id: I77abf19982add240e1bbe8196fbe148d32884f68
This commit is contained in:
Justin Koh
2014-06-04 13:57:49 -07:00
parent b766edcea3
commit 2dbd36fc7f

View File

@@ -1729,14 +1729,15 @@ public class NotificationManagerService extends SystemService {
}
checkCallerIsSystemOrSameApp(pkg);
final boolean isSystemNotification = isUidSystem(callingUid) || ("android".equals(pkg));
final boolean isNotificationFromListener = mEnabledListenerPackageNames.contains(pkg);
final int userId = ActivityManager.handleIncomingUser(callingPid,
callingUid, incomingUserId, true, false, "enqueueNotification", pkg);
final UserHandle user = new UserHandle(userId);
// Limit the number of notifications that any given package except the android
// package can enqueue. Prevents DOS attacks and deals with leaks.
if (!isSystemNotification) {
// package or a registered listener can enqueue. Prevents DOS attacks and deals with leaks.
if (!isSystemNotification && !isNotificationFromListener) {
synchronized (mNotificationList) {
int count = 0;
final int N = mNotificationList.size();