Rate limit notification sounds/vibrations
1 alert per second.
Bug: 36662487
Test: runtest systemui-notification
Change-Id: I42c2342c7ccb86f5912d729c7c2a0074f3000ad2
diff --git a/services/core/java/com/android/server/notification/AlertRateLimiter.java b/services/core/java/com/android/server/notification/AlertRateLimiter.java
index e4a7934..2b01945 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 @@
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 c36a5f2..c8f4d31 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 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 5ed8210..faf6a9b 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 @@
@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 b875b26..01a44d4 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 @@
@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 @@
private AudioManager mAudioManager;
@Mock
ActivityManager mActivityManager;
+
private NotificationChannel mTestNotificationChannel = new NotificationChannel(
TEST_CHANNEL_ID, TEST_CHANNEL_ID, NotificationManager.IMPORTANCE_DEFAULT);
@Mock