OSDN Git Service

Rate limit notification sounds/vibrations
authorJulia Reynolds <juliacr@google.com>
Mon, 19 Jun 2017 12:16:04 +0000 (08:16 -0400)
committerJulia Reynolds <juliacr@google.com>
Mon, 10 Jul 2017 16:46:53 +0000 (12:46 -0400)
1 alert per second.

Bug: 36662487
Test: runtest systemui-notification
Change-Id: I42c2342c7ccb86f5912d729c7c2a0074f3000ad2

services/core/java/com/android/server/notification/AlertRateLimiter.java
services/core/java/com/android/server/notification/NotificationUsageStats.java
services/tests/notification/src/com/android/server/notification/AlertRateLimiterTest.java
services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java

index e4a7934..2b01945 100644 (file)
@@ -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;
index c36a5f2..c8f4d31 100644 (file)
@@ -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++;
             }
index 5ed8210..faf6a9b 100644 (file)
@@ -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));
     }
 }
index b875b26..01a44d4 100644 (file)
@@ -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