From 3ff26d2739261a320c308d30cf4719979f49b314 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Mon, 19 Jun 2017 08:16:04 -0400 Subject: [PATCH] Rate limit notification sounds/vibrations 1 alert per second. Bug: 36662487 Test: runtest systemui-notification Change-Id: I42c2342c7ccb86f5912d729c7c2a0074f3000ad2 --- .../server/notification/AlertRateLimiter.java | 2 +- .../server/notification/NotificationUsageStats.java | 2 +- .../server/notification/AlertRateLimiterTest.java | 20 ++++++++++---------- .../notification/NotificationManagerServiceTest.java | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/services/core/java/com/android/server/notification/AlertRateLimiter.java b/services/core/java/com/android/server/notification/AlertRateLimiter.java index e4a79345a040..2b01945132a9 100644 --- a/services/core/java/com/android/server/notification/AlertRateLimiter.java +++ b/services/core/java/com/android/server/notification/AlertRateLimiter.java @@ -24,7 +24,7 @@ public class AlertRateLimiter { static final long ALLOWED_ALERT_INTERVAL = 1000; private long mLastNotificationMillis = 0; - boolean isRateLimited(long now) { + boolean shouldRateLimitAlert(long now) { final long millisSinceLast = now - mLastNotificationMillis; if (millisSinceLast < 0 || millisSinceLast < ALLOWED_ALERT_INTERVAL) { return true; diff --git a/services/core/java/com/android/server/notification/NotificationUsageStats.java b/services/core/java/com/android/server/notification/NotificationUsageStats.java index c36a5f23b155..c8f4d31c3726 100644 --- a/services/core/java/com/android/server/notification/NotificationUsageStats.java +++ b/services/core/java/com/android/server/notification/NotificationUsageStats.java @@ -595,7 +595,7 @@ public class NotificationUsageStats { } public boolean isAlertRateLimited() { - boolean limited = alertRate.isRateLimited(SystemClock.elapsedRealtime()); + boolean limited = alertRate.shouldRateLimitAlert(SystemClock.elapsedRealtime()); if (limited) { numAlertViolations++; } diff --git a/services/tests/notification/src/com/android/server/notification/AlertRateLimiterTest.java b/services/tests/notification/src/com/android/server/notification/AlertRateLimiterTest.java index 5ed8210a80bc..faf6a9b76434 100644 --- a/services/tests/notification/src/com/android/server/notification/AlertRateLimiterTest.java +++ b/services/tests/notification/src/com/android/server/notification/AlertRateLimiterTest.java @@ -42,31 +42,31 @@ public class AlertRateLimiterTest extends NotificationTestCase { @Test public void testFirstAlertAllowed() throws Exception { - assertFalse(mLimiter.isRateLimited(mTestStartTime)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime)); } @Test public void testAllowedAfterSecond() throws Exception { - assertFalse(mLimiter.isRateLimited(mTestStartTime)); - assertFalse(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL)); } @Test public void testAllowedAfterSecondEvenWithBlockedEntries() throws Exception { - assertFalse(mLimiter.isRateLimited(mTestStartTime)); - assertTrue(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1)); - assertFalse(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime)); + assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL)); } @Test public void testAllowedDisallowedBeforeSecond() throws Exception { - assertFalse(mLimiter.isRateLimited(mTestStartTime)); - assertTrue(mLimiter.isRateLimited(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime)); + assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime + ALLOWED_ALERT_INTERVAL - 1)); } @Test public void testDisallowedTimePast() throws Exception { - assertFalse(mLimiter.isRateLimited(mTestStartTime)); - assertTrue(mLimiter.isRateLimited(mTestStartTime - ALLOWED_ALERT_INTERVAL)); + assertFalse(mLimiter.shouldRateLimitAlert(mTestStartTime)); + assertTrue(mLimiter.shouldRateLimitAlert(mTestStartTime - ALLOWED_ALERT_INTERVAL)); } } diff --git a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java index b875b26d023f..01a44d4384ee 100644 --- a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java +++ b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java @@ -86,7 +86,6 @@ import com.android.server.lights.LightsManager; @RunWith(AndroidTestingRunner.class) @RunWithLooper public class NotificationManagerServiceTest extends NotificationTestCase { - private static final long WAIT_FOR_IDLE_TIMEOUT = 2; private static final String TEST_CHANNEL_ID = "NotificationManagerServiceTestChannelId"; private final int uid = Binder.getCallingUid(); private NotificationManagerService mNotificationManagerService; @@ -110,6 +109,7 @@ public class NotificationManagerServiceTest extends NotificationTestCase { private AudioManager mAudioManager; @Mock ActivityManager mActivityManager; + private NotificationChannel mTestNotificationChannel = new NotificationChannel( TEST_CHANNEL_ID, TEST_CHANNEL_ID, NotificationManager.IMPORTANCE_DEFAULT); @Mock -- 2.11.0