Merge "Exclude autogrouping from rate limiter" into oc-mr1-dev am: 21bc812a25

am: ef2264e849

Change-Id: I6fa57c1d36f9a5d2467c3a2becbd83251184ac90
This commit is contained in:
Julia Reynolds
2017-08-18 18:52:49 +00:00
committed by android-build-merger

View File

@@ -3104,7 +3104,7 @@ public class NotificationManagerService extends SystemService {
}
}
if (summaryRecord != null && checkDisqualifyingFeatures(userId, MY_UID,
summaryRecord.sbn.getId(), summaryRecord.sbn.getTag(), summaryRecord)) {
summaryRecord.sbn.getId(), summaryRecord.sbn.getTag(), summaryRecord, true)) {
mHandler.post(new EnqueueNotificationRunnable(userId, summaryRecord));
}
}
@@ -3449,7 +3449,8 @@ public class NotificationManagerService extends SystemService {
user, null, System.currentTimeMillis());
final NotificationRecord r = new NotificationRecord(getContext(), n, channel);
if (!checkDisqualifyingFeatures(userId, notificationUid, id, tag, r)) {
if (!checkDisqualifyingFeatures(userId, notificationUid, id, tag, r,
r.sbn.getOverrideGroupKey() != null)) {
return;
}
@@ -3504,7 +3505,7 @@ public class NotificationManagerService extends SystemService {
* Has side effects.
*/
private boolean checkDisqualifyingFeatures(int userId, int callingUid, int id, String tag,
NotificationRecord r) {
NotificationRecord r, boolean isAutogroup) {
final String pkg = r.sbn.getPackageName();
final boolean isSystemNotification =
isUidSystemOrPhone(callingUid) || ("android".equals(pkg));
@@ -3525,7 +3526,8 @@ public class NotificationManagerService extends SystemService {
// rate limit updates that aren't completed progress notifications
if (mNotificationsByKey.get(r.sbn.getKey()) != null
&& !r.getNotification().hasCompletedProgress()) {
&& !r.getNotification().hasCompletedProgress()
&& !isAutogroup) {
final float appEnqueueRate = mUsageStats.getAppEnqueueRate(pkg);
if (appEnqueueRate > mMaxPackageEnqueueRate) {
@@ -3533,7 +3535,7 @@ public class NotificationManagerService extends SystemService {
final long now = SystemClock.elapsedRealtime();
if ((now - mLastOverRateLogTime) > MIN_PACKAGE_OVERRATE_LOG_INTERVAL) {
Slog.e(TAG, "Package enqueue rate is " + appEnqueueRate
+ ". Shedding events. package=" + pkg);
+ ". Shedding " + r.sbn.getKey() + ". package=" + pkg);
mLastOverRateLogTime = now;
}
return false;